隨筆-17  評論-64  文章-79  trackbacks-1
          本文介紹了ActionScript 3 相對于 ActionScript 2 有哪些新的特性和改動。并在文章的最后一步步的教大家如何利用 Flex Builder 來編譯并運行第一個 AS3 程序。

            語法方面的增強和改動:

            引入了 package(包) 和 namespace(命名空間) 兩個概念。其中 package 用來管理類定義,防止命名沖突,而 namespace 則用來控制程序?qū)傩苑椒ǖ脑L問。

            新增內(nèi)置類型 int (32比特整數(shù)),uint(非負(fù)32比特整數(shù)),用來提速整數(shù)運算;

            新增 * 類型標(biāo)識,用來標(biāo)識類型不確定的變量,通常在運行時變量類型無法確定時使用。在 AS2 中這種情況下需要用 Object 賴作為類型表識;

            新增 is 和 as 兩個運算符來進(jìn)行類型檢查。其中 is 代替 AS2 中的 instanceof 來查詢類實例的繼承關(guān)系,而 as 則是用來進(jìn)行不拋錯誤的類型轉(zhuǎn)換。

            新增 in 運算符來查詢某實例的屬性或其prototype中是否存在指定名稱的屬性。

            新增 for each 語句來循環(huán)操作 Array 及 Object實例。

            新增 const 語句來聲明常量。

            新增 Bound Method 概念。當(dāng)一個對象的方法被付值給另外一個函數(shù)變量時,此函數(shù)變量指向的是一個 Bound Method,以保證對象方法的作用域仍然維持在聲明此方法的對象上。這相當(dāng)于 AS2 中的 mx.util.Delegate 類,在 AS3 中這個功能完全內(nèi)置在語言中,不需要額外寫代碼。

            AS3 的方法聲明中允許為參數(shù)指定默認(rèn)值(實現(xiàn)可選參數(shù))。

            AS3 中方法如果聲明返回值,則必須明確返回。

            AS2 中表示方法沒有返回值的 Void 標(biāo)識,在 AS3 中變更為 void。

            OOP方面的增強

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

            API方面的增強

            新增 Display API,使 AS3 可以控制包括 Shape, Image, TextField, Sprite, MovieClip, Video, SimpleButton, Loader在內(nèi)的大部分 DisplayList 渲染單位。這其中 Sprite 類可以簡單理解為沒有時間軸的 MovieClip,適合用來作為組件等不需要時間軸功能的子類的基礎(chǔ)。而新版的 MovieClip 也比 AS2 多了對于 Scene(場景)和 Label(楨標(biāo)簽)的程序控制。另外,渲染單位的創(chuàng)建和銷毀通過聯(lián)合 new 操作符以及 addChild/removeChild 等方法實現(xiàn),類似 attachMovie 的舊方法已被舍棄,同時以后也無須去處理深度值。

            新增 DOM Event API,所有 在DisplayList 上的渲染單位都支持全新的三段式事件播放機制,以 Stage 為起點自上而下的播報事件到 target 對象(此過程稱為 Capture Phase),然后播報事件給 target 對象(此過程稱為 Target Phase),最后在自下而上的播報事件(此過程稱為 Bubbling Phase)。

            新增內(nèi)置的 Regular Expressions (正則表達(dá)式)支持,使 AS3 能夠高效地創(chuàng)建、比較和修改字符串,以及迅速地分析大量文本和數(shù)據(jù)以搜索、移除和替換文本模式。

            新增 ECMAScript for XML (E4X) 支持。 E4X 是 AS3 中內(nèi)置的 XML 處理語法。在 AS3 中 XML 成為內(nèi)置類型,而之前的 AS2 版本 XML 的處理 api 轉(zhuǎn)移到 flash.xml.* 包中,以保持向下兼容。

            新增 Socket 類,允許讀取和寫入二進(jìn)制數(shù)據(jù),使通過 AS 來解析底層網(wǎng)絡(luò)協(xié)議(比如 POP3, SMTP, IMAP, NNTP 等)成為可能,使 Flash Player 可以連接郵件服務(wù)器和新聞組。

          posted on 2007-10-21 17:52 飛鳥 閱讀(222) 評論(0)  編輯  收藏 所屬分類: RIA
          主站蜘蛛池模板: 渝北区| 安顺市| 万宁市| 阿瓦提县| 行唐县| 塔河县| 陈巴尔虎旗| 额尔古纳市| 南城县| 荔浦县| 临泽县| 淳化县| 平远县| 织金县| 封丘县| 巴林左旗| 慈溪市| 久治县| 商丘市| 科技| 杭州市| 电白县| 清水河县| 衡阳市| 昌吉市| 睢宁县| 长垣县| 揭东县| 雅江县| 酒泉市| 石林| 多伦县| 绍兴县| 伊春市| 通许县| 长泰县| 土默特右旗| 定边县| 香格里拉县| 宣汉县| 象州县|