ActionScript3.0概要
ActionScript 3.0 演變成一門強大的面向對象的編程語言意味著flash平臺的重大變革。這種變化也意味著 ActionScript 3.0 將創造性地將語言理想地迅速地建立出適應網絡的豐富應用程序, 成為豐富網絡應用(Rich Internet Application)項目的本質部分。比較早期的ActionScript版本就已經提供了這種要求為創造真實地參與在線體驗的力量和靈活性。ActionScript 3.0 將促進和發展這種性能, 提供發展強大表現和舒適的先進的高度復雜應用, 結合大型數據庫以及可移值性的面象對象的代碼。擁有 ActionScript 3.0, 開發者可能達到高效執行效率和表現同一的平臺。
ActionScript 3.0 基于ECMAScript, ECMAScript是所有編程語言的國際規范化的語言。ActionScript 3.0 同樣遵從ECMAScript語言規范。
ActionScript 由嵌入在flash player的ActionScript虛擬機 (AVM)執行。AVM1, 是執行以前版本的ActionScript的虛擬機, 今天變的更加強大的flash平臺使得可能創造出交互式媒體和豐富的網絡應用。然而, AVM1卻在擠壓著開發者們的極限―― 他們的項目現在到了要求它變革的時刻了。ActionScript 3.0 帶來了一個更加高效的ActionScript 執行虛擬機―AVM2, 它將徹底的脫胎換骨于AVM1 。 它將意味著, ActionScript 3.0執行效率將比以前的ActionScript執行效率高出至少10倍。
新的AVM2 虛擬機將會嵌入于flash player8.5當中, 它將成為執行ActionScript的首先虛擬機。當然舊的AVM1將繼續嵌入在flash player8.5當中以兼容以前的ActionScript。
有眾多的產品把自身的展示和應用表現于flash player當中,這些產品的動畫也經常應用到ActionScript 以增加互動和行為表現他們的產品。 在Macromedia 產品家族, 專業設計師和也許使用 ActionScript 在幾個產品當中, 譬如Macromedia flash, Flex, 和Flash media servers創造出內容和應用表現在flash player當中。在Flex2 產品家族, 包括最新的基于Eclipe―的Flex Builder 2 IDE,會是系列產品中第一個應用ActionScript 3.0 的新體驗的產品。
ActionScript 3.0的目標
我們需要ActionScript 3.0 提供一個先進的, 與編程模型一致的, 服從業界標準, 以及表現將數量級大于我們過去的執行效能。雖然ActionScript 3.0 代表著flash平臺一個新的編程模型,它也將會是一個讓開發者熟悉的基礎的面對對象的編程語言。
ActionScript3.0的出現將展現出如下目標
安全 ? 它支持一定的安全以使得能夠讓開發者寫出明白的, 容易的可維護的代碼。
樸素 - 這種語言的直觀程度使開發者能夠直接讀和寫項目,而不需要經常參考手冊
表現 - 這種語言使開發者寫出高效率的和表現性強的復雜項目。
兼容性 - 這種語言拋棄不規范的語言標準以及提供向前兼容以及有意義的交替以符合業界標準。ActionScript 3.0 是規范化了的ActionScript 2.0, 增 加了ECMAScript 其中的XML應用(E4X) ,使得這 種語言融入ECMAScript整體連為一貫。
ActionScript 3.0的特征
ActionScript 3.0 包括二部分: 核心語言和flash player API 。核心語言用于定義編程語言的結構, 譬如聲明, 表示, 條件, 循環, 和類型 。flash player API是 由一系列精確定義flash player功能的類組成。
ActionScript 3.0 擁有盡可能的挖掘出計算機剩余性能的新特點。規則表示支持使操作性更加強大的XML。 ECMAScript for XML (E4X) 使得XML 成為通用數據類型, 將大大地簡化XML 處理。新的Display ListAPI將使虛擬對象更加的協調一致。 規范化的DOM 事件模型使得那些對象的表示和響應結合的更加強勁。當然這些只是ActionScript3.0許多新的體驗當中的一部分。
actionscript3.0語言特點
ActionScript 3.0 的出現是ActionScript 2.0 的核心語言方面融入ECMAScript 以遵守其標準和引入新的改進的一些功能區域的結合。所有這些特點在ActionScript 3.0 語言參考中都有詳細的介紹和討論, 可得到試用版正在Macromedia 實驗室。下面是一些其開發者對其方便的地方和用法總結的一些新特點。
增強處理運行錯誤的能力
應用ActionScript 2.0時, 許多表面上“完美無暇”的運行錯誤無法得到記載。這使得flash player無法彈出提示錯誤的對話框, 就象javascript語言在早期的瀏覽器中所表現的一樣。也就是說, 這些缺少的錯誤報告使得我們不得不花更多精力去調試ActionScript 2.0程序。ActionScript 3.0 引入在編譯當中容易出現的更加廣泛的錯誤的情形, 改進的調試方式使得能夠健壯地處置應用項目當中的錯誤。提示的運行錯誤提供足夠的附注(例出出錯的源文件)和以數字提示的時間線, 幫助開發者迅速的定位產生錯誤的位置。
對運行錯誤的處理方式
在ActionScript 2.0中,運行錯誤的注釋主要提供給開發者一個幫助,所有的幫助方式都是動態的。而在ActionScript且是3.0中, 這些信息將被保存到一定的數量,Flash player將提供時間型檢查以提高系統的運行安全。這些信息將記錄下來用于監視變量在電腦中的運行情況, 以使得開發者能夠讓自己的應用項目得到改進以減少對內存的使用。
密封的類
ActionScript 3.0 將引入密封的類的概念。在編譯時間內的的密封類擁有唯一固定的特征和方法,其它的特征和方法不可能被加入。這使得比較嚴密的編譯時間檢查成為可能, 創造出健壯的項目。因而它當然可以提高對內存的使用效率, 因為不需要為每一個對象實例增加內在的雜亂指令。當然動態類依然可以使用只要聲明為dynamic的關鍵字。
代理方式
在ActionScript 3.0中事件處理變的更加簡化歸功于它的嵌入式代理方式。而在ActionScript 2.0中, 方法關閉后并沒有記住什么對象事例引用了它們, 當調用已經關閉的方法時將導致意想不到的后果。 Mx.utils.Delegate 類經常被使用,使用它時, 你寫了代碼如下:
myButton.addEventListener(“click”, Delegate.create(this, someMethod)); Delegate.create(this, someMethod)
在AS3.0中,這個類不再需要被引入, 當方法關閉時將自動地記住它的原始對象實例。現在, 你可以簡單地寫為: myButton.addEventListener(“click”, someMethod);
ECMAScript 中的 XML (E4X)
ActionScript 3.0 特點之一是全面支持ECMAScript中的 XML (E4X), 最新的規范標準為ECMA-357 。E4X 提供一種自然, 流利的語言使得能夠快速的構造XML 。而不是象傳統XML的解析接口一樣, E4X使得XML成為通用的數據類型。E4X 簡化操作XML將大大的減少相當 數量的代碼以適用應用項目需要的發展。在這個網站你能學到更多關于E4X 的規格:
www.ecma-international.org/publications/files/ECMA-ST/ECMA-357.pdf
規范的表達方式
ActionScript 3.0 引入支持通用規則使得能夠迅速搜尋和快速的操作字符(串)。ActionScript 3.0實施規則定義在第三版的ECMAScript 語言說明書當中(ECMA-262) 。
命名空間(Namespaces)
Namespaces 是一種創新新機制用以控制聲明的可見性。 Namespaces 與傳統通過指定類型用以控制聲明(公開的, 私有的, 保護的)是相似的 。他們本質是通過自定義路徑, 能夠使用你所選擇的名字。Flex, 例如, 使用一mx_internal 命名空間為它的內部數據來源。命名空間使用統一的資源標識符(URI)以避免沖突 ,當與E4X一起使用時同樣可以使用XML命名空間。
新的整數類型
ActionScript 2.0用Number定義有單精度數字類型和雙精度浮點數字類型。受歡迎的新的Int數據類型將加入到ActionScript3.0當中。int是一個32位有符號整型數據類型, 使得CPU將提高ActionScript代碼中處理整數運算的能力,int將提高循環運算以及幾乎其它不帶小數點的整數運算。另一個新的數據類型是uint, 一個與int相似的無符號32位整數型 。uint 主要用于表現象索顏色和其它一些int所不能很好工作的領域。
Flash Player 接口的特點
Flash player API 由一組類和功能組成以增強flash player容納actionscript語言的能力。這種功能是在ActionScript 核心語言和空余的flash平臺間建立起了一座橋梁。這將能大大的提高flash應用程序的能力以及對于核心語言來說將起到重要的補充作用。這里沒有足夠的空間來對API的細節進行詳細的描述, 但這里有一張短名單列出一些新的和有趣的功能:
(1):DOM3 Event Model
DOM3事件模型提供一個標準方式發生和處置事件消息以使得對象在應用之間能夠互動和通信, 維護狀態和對變化產生回應。仿造 W3C DOM3 事件規格, 這個事件模型能夠帶來比早期的ActionScript版本中的系統事件更加清晰和高效的機制。 Flex程序構架應用和flash player API相同的DOM3事件模型,以至于系統事件從flash平臺的頂端走到了末路。
(2):Display List API
顯示屏的接口(API)由一組相關的能夠表現出簡單而生動flash動畫的類組成。
新的(Sprite:調皮的,精靈之意。暫且譯為閃靈) 閃靈類是一個輕量級選手,與MovieClip類相似,但比較適合于作為UI組件的基本類。新的形狀類將取代舊的矢量形狀。這些新的類能夠應用新的操作方式自然的表現并且能夠在任何時候都比自己的前輩(指舊的類和舊的方式)展現的更加有活力。
不再需要為對象指定深度。深度管理現在在flash player當中是自動建立的。新方法提供了可以為對象指定和管理Z軸。
當然, 這個ActionScript 3.0 概要只概述一些扣人心弦 的API的介紹 以及語言特色。當你更加深入學習AS3.0的時候你將發現更多 。當你想學習ActionScrip3.0如何實現應用項目設計時<<ActionScript 3.0編程 >>一書里將是你好的開始。 當然<<ActionScript 3.0 語言參考>> ActionScript 3.0 Language Reference )是AS3.0核心語言完整描述和flash player API細述的權威資料. 當然, 如果你已經對 ActionScript 1.0 或2.0比較熟悉,請查閱《學習ActionScript3.0捷徑》(( Tips for Learning ActionScript 3.0. ) 。
Flash player的開發者非常興奮能夠在第一時間傳遞出這份語言預覽, 它的新能力和改進的表現性能通過了Macromedia 實驗室的試驗。你能夠嗅覺到 ActionScript 3.0將帶入到Flex Builder 2,Flex Framework以及Flash Player 8.5當中。