97超精品视频在线观看_91人人在线_亚洲精品国产综合一线久久_日本最新免费二区

當前位置: 首頁 > 設計資訊 > 設計教程 > 正文

Flash AS3 相對于AS2 新的特性和改動

2006-08-05 2282 0

本文介紹了ActionScript 3 相對于 ActionScript 2 有哪些新的特性和改動。并在文章的最后一步步的教大家如何利用 Flex Builder 來編譯并運行第一個 AS3 程序。語法方面的增強和改動:

  • 引入了 package(包) 和 namespace(命名空間) 兩個概念。其中 package 用來管理類定義,防止命名沖突,而 namespace 則用來控制程序屬性方法的訪問。
  • 新增內置類型 int (32比特整數),uint(非負32比特整數),用來提速整數運算;
  • 新增 * 類型標識,用來標識類型不確定的變量,通常在運行時變量類型無法確定時使用。在 AS2 中這種情況下需要用 Object 賴作為類型表識;
  • 新增 is 和 as 兩個運算符來進行類型檢查。其中 is代替 AS2 中的 instanceof 來查詢類實例的繼承關系,而 as 則是用來進行不拋錯誤的類型轉換。
  • 新增 in 運算符來查詢某實例的屬性或其prototype中是否存在指定名稱的屬性。
  • 新增 for each語句來循環操作 Array 及 Object實例。
  • 新增 const 語句來聲明常量。
  • 新增 Bound Method 概念。當一個對象的方法被付值給另外一個函數變量時,此函數變量指向的是一個 Bound Method,以保證對象方法的作用域仍然維持在聲明此方法的對象上。這相當于 AS2 中的 mx.util.Delegate 類,在 AS3 中這個功能完全內置在語言中,不需要額外寫代碼。
  • AS3 的方法聲明中允許為參數指定默認值(實現可選參數)。
  • AS3 中方法如果聲明返回值,則必須明確返回。
  • AS2 中表示方法沒有返回值的 Void 標識,在 AS3 中變更為 void。
OOP方面的增強

通過類定義而生成的實例,在 AS3 中是屬于 Sealed 類型,即其屬性和方法無法在運行時修改。這部分屬性在 AS2 中是通過類的 prototype 對象來存儲,而在 AS3 中則通過被稱為 Trait 的概念對象存儲管理,無法通過程序控制。這種處理方式一方面減少了通過 prototype 繼承鏈查找屬性方法所耗費的時間(所有父類的實現方法和屬性都會被直接復制到對應的子類的 Trait 中),另一方面也減少了內存占用量,因為不用動態的給每一個實例創建 hashtable 來存儲變量。如果仍然希望使用 AS2 中類實例在運行時的動態特性,可以將類聲明為 dynamic。api方面的增強

  • 新增 Display API,使 AS3 可以控制包括 Shape, Image, TextField, Sprite, MovieClip, Video, SimpleButton, Loader在內的大部分 DisplayList 渲染單位。這其中 Sprite 類可以簡單理解為沒有時間軸的 MovieClip,適合用來作為組件等不需要時間軸功能的子類的基礎。而新版的 MovieClip 也比 AS2 多了對于 Scene(場景)和 Label(楨標簽)的程序控制。另外,渲染單位的創建和銷毀通過聯合 new 操作符以及 addChild/removeChild 等方法實現,類似 attachMovie 的舊方法已被舍棄,同時以后也無須去處理深度值。
  • 新增 DOM Event API,所有 在DisplayList 上的渲染單位都支持全新的三段式事件播放機制,以 Stage 為起點自上而下的播報事件到 target 對象(此過程稱為 Capture Phase),然后播報事件給 target 對象(此過程稱為 Target Phase),最后在自下而上的播報事件(此過程稱為 Bubbling Phase)。
  • 新增內置的 Regular Expressions (正則表達式)支持,使 AS3 能夠高效地創建、比較和修改字符串,以及迅速地分析大量文本和數據以搜索、移除和替換文本模式。
  • 新增 ECMAScript for XML (E4X)支持。 E4X 是 AS3 中內置的 XML 處理語法。在 AS3 中 XML 成為內置類型,而之前的 AS2 版本 XML 的處理 api 轉移到 flash.xml.*包中,以保持向下兼容。
  • 新增 Socket類,允許讀取和寫入二進制數據,使通過 AS 來解析底層網絡協議(比如 POP3, SMTP, IMAP, NNTP 等)成為可能,使 Flash Player 可以連接郵件服務器和新聞組。
  • 新增 Proxy 類來替代在 AS2 中的 Object.__resolve 功能。
  • 新增對于 Reflect (反射)的支持,相關方法在 flash.util.* 包中。
編寫第一個 AS3 程序

編譯 AS3 需要先安裝 Flex Builder 2(目前唯一支持 AS3 的 IDE),從 Adobe Labs 上下在最新版本的 Flex Builder。然后一路 Next 安裝成功之后,點擊快捷方式啟動 Flex Builder。(如圖一)

   

圖一 Flex Builder 2 啟動畫面

點選工具欄中的 New 按鈕,從彈出的菜單中選擇 ActionScript Project。(如圖二)

圖二 建立新的 ActionScript Project

在彈出的對話框中輸入 helloworld 作為項目名稱。然后按 Finish 確定。(如圖三)

圖三 輸入項目詳細信息

在新打開的 helloworld.as 文件中輸入下列代碼:(如圖四)

圖四 helloworld.as 代碼內容

按 Ctrl+S 保存文件,然后從工具欄中點擊 run 按鈕運行程序。(如圖五)

圖五 運行程序

最終在瀏覽器中的運行效果如圖六:

圖六 helloworld 程序運行結果


21
評論區(0)
正在加載評論...
相關推薦