Latest News

Home » Action Script語法 » Flash Action Script 3.0 (Flash動畫製作)

Flash Action Script 3.0 (Flash動畫製作)

在Flash動畫製作中 Action Script 3.0 是一種強大的面向物件寫程式語系
Action Script標誌著 Flash Player Runtime 演化過程中的一個重要階段。

設計 ActionScript 3.0 的意圖是建立一種適合快速地構建效果豐富的網際網路應用程式的語系,這種應用程式已經成為 Web 體驗的重要部分。

ActionScript 3.0的歷史:
ActionScript 是一種基於 ECMAScript 的寫程式語系,用來編寫 Adobe Flash 電影和應用程式。
ActionScript 1.0 最初隨 Flash 5 一起發佈,這是第一個完全可寫程式的版本。
Flash 6 增加了幾個內建函數,容許通過程式更好地控制動畫元素。
在 Flash 7 中引入了 ActionScript 2.0,這是一種強類型的語系,支援基於類的寫程式特性,比如繼承、介面和嚴格的資料類型。
Flash 8 進一步延伸了 ActionScript 2,加入了新的類庫以及用於在運行時控制點陣圖資料和檔案上傳的 API。
Flash Player 中內建的 ActionScript Virtual Machine(AVM1)執行 ActionScript。通過使用新的虛擬機ActionScript Virtual Machine(AVM2)
Flash 9(附帶 ActionScript 3)大大提高了效能。

ActionScript 3.0 簡介:

ActionScript 的老版本(ActionScript 1.0 和 2.0)提供了建立效果豐富的 Web應用程式所需的功能和彈性。ActionScript 3 現在為基於 Web 的應用程式提供了更多的可能性。它進一步增強了這種語系,提供了出色的效能,簡化了開發的過程,因此更適合高度複雜的 Web應用程式和大資料集。ActionScript 3 可以為以 Flash Player 為目的的內容和應用程式提供高效能和開發效率。
ActionScript 3 符合 ECMAScript Language Specification 第三版。它還內含基於 ECMAScript Edition 4 的功能,比如類、包和名稱空間;可選的靜態類型;生成器和迭代器;以及非結構化賦值(destructuring assignments)。隨著 Web應用程式項目需求的增長,也要求 ActionScript 引擎有重大的突破。ActionScript 3 引入了一個新的高度改善的 ActionScript Virtual Machine(AVM2),與 AVM1 相比,AVM2 的效能有了顯著的提高。這使 ActionScript 3 代碼的執行速度幾乎比以前的 ActionScript 代碼快了 10 倍。Flash Player 9 中內含 AVM2(ActionScript 3.0 的腳本語係引擎),設計它的目的是提供網際網路應用程式開發人員所需的效能和特性。為了向後相容現有的內容,Flash Player 將繼續支援 AVM1。

能夠利用 ActionScript 3 的產品:
有許多產品都生成以 Flash Player Runtime 為目的的內容和應用程式,內含 YouTube、Flickr、SWiSH 和 ScreenTime。這些產品能夠利用 ActionScript 在自己的輸出中加入互動和行為。在 Adobe 產品系列中,專業設計人員可以在幾種工具和伺服器中使用 ActionScript,比如 Flash、Flex 和 Flash Media Server,從而為 Flash Player Runtime 建立內容和應用程式。Flex 產品系列(內含基於 Eclipse 的新的 Flex Builder 2 IDE)是第一個能夠使用 ActionScript 3.0 的新功能的產品系列。

ActionScript 3.0概述:
從 ActionScript 3 的一般特性開始,我將討論一下目的、語系特性和 Flash Player API 特性。還要討論 ActionScript 3 中的新特性和不太為人所知的特性。在 2006 年 11 月 7 日,在舊金山召開的 WEB 2.0 會議上,Adobe Systems 宣佈將 ActionScript Virtual Machine 的原始碼捐獻給 Mozilla Foundation。Mozilla 啟動了一個新的開放源程式碼項目 Tamarin,其目的是促進這種建立 Web應用程式的標準化方法的開發。
ActionScript 3 有兩類特性:語系特性和 Flash Player API 特性。語系特性基本上是在 ActionScript 2 之上構建的,但是還有一些效能和功能方面的改進,內含:
許多運行時異常,用來改進常見的錯誤處理和除錯。這些運行時異常會顯示堆疊追蹤,可以說明開發人員輕鬆地找到錯誤的根源。以前的 ActionScript 版本會悄悄地掩蓋錯誤,以避免在 Flash 中出現錯誤訊息對話框。這在開發期間會造成困難,因為開發人員不瞭解可能出現的錯誤,就無法開發出好產品。
在運行時存儲類型細節,用來進行檢查並保護系統,因此 ActionScript 3 是強類型的。這還有助於減少記憶體使用量,因為類型資訊以本機機器表示法表示變量。
ActionScript 3 完全符合 ECMAScript 第四版規範,這可以簡化 XML 解析。

ActionScript 3 的 Flash Player API 特性內含:
DOM3 事件模型提供了生成和處理事件訊息的標準方法,這有助於在物件之間進行更好的通信和互動。
新的 Loader 類提供了載入 Shockwave Flash 和圖像的單一機制,並提供訪問關於被載入內容的詳細資訊的方法。URLLoader 類提供了在資料驅動應用程式中載入文字和二進位資料的單獨機制。
Socket 類提供了以任何格式對伺服器套接字讀寫二進位資料的方法。
ActionScript 3.0 內含一個 flash.text 包,它提供與文字關聯的所有 API。

ActionScript 3.0其他新功能:
Loader.loadBytes()
這個方法可以從二進位資料直接建立顯示清單中的條目。例如,在我的電子信件客戶機上,如果從 Pop3 伺服器上下載的一個電子信件內含附件,就檢查附件的 mime-type。如果這種類型是播放器支援的,那麼就可以將附件的二進位原始碼讀入 ByteArray,並在 Flash Player 中顯示這個附件。這意味著我的電子信件客戶機可以顯示 PNG、JPEG、GIF 和 SWF 附件。
Sound.computeSpectrum()
這個方法分析播放的所有音效並返回一個 ByteArray,其中內含 512 個歸一化的值(-1 到 1),可以使用它們顯示音效波形(256 個值用於左聲道,256 個值用於右聲道)。可以使用這些值為 Media Players 建立 Audio Equalizers 以及對播放的音效做出反應的視覺效果。
BitmapData.getPixels()
這個方法返回一個 ByteArray,其中內含點陣圖的指定矩形區功能變數中每個像素的十六進位彩色值。可以將這個方法與新的 ZLib 壓縮方法 ByteArray.compress() 結合使用,從而將點陣圖壓縮,然後再傳輸給伺服器,這樣就能夠將它轉換為一個適合下載的檔案。
Loader.close()
現在,可以停止播放器載入外部媒體的過程。在過去,如果將一個圖像載入進播放器,那麼在完成處理之前無法停止。現在可以這麼做了。


——————————————————————————–
【文章標題】: Flash動畫製作(Flash Action Script)
【文章作者】: Flash 動畫製作教學密訓基地
【作者信箱】: ster168ster@gmail.com
【作者首頁】: http://por.tw/flash/
【Flash 動畫製作教學課程】: http://por.tw/flash/new-E_learning/index.php
【基地主機】: http://goto1688.com/flash/
【版權聲明】: (原創)Flash 動畫製作教學密訓基地,轉載必須保留完整標頭。刪除者依法追究!
——————————————————————————–
ActionScript 3 的優點:
這個新版本具有以下優點:
這種語系支援類型安全性,使代碼維護更輕鬆。
與其他語系相比,這種語系相當簡單,很容易編寫。
開發人員可以編寫具有高效能的響應性代碼。
這種語系向後相容ActionScript 2 並向前相容 ECMAScript for XML(E4X)。
Tamarin 簡介
在 2006 年 11 月 7 日,Adobe Systems 宣佈將 ActionScript Virtual Machine 的代碼捐獻給 Mozilla Foundation。因此,Mozilla 啟動了一個新的開放源程式碼項目 Tamarin。Adobe 和 Mozilla 希望以此促進這種建立 Web 應用程式的標準化語系的推廣。
Tamarin 的目的
Tamarin 項目的目的是實現一個高效能的開放源程式碼的 ECMAScript 第四版(ES4)語系規範實現。Mozilla 在SpiderMonkey中使用 Tamarin Virtual Machine,SpiderMonkey 是 Firefox 和其他基於 Mozilla 的產品中內嵌的核心 JavaScript 引擎。Adobe 將繼續在 Adobe Flash Player 中的 ActionScript Virtual Machine 中使用這些代碼。
Tamarin Virtual Machine 現用的實現 ECMAScript 第三版語系標準(這是 JavaScript、Adobe ActionScript 和 Microsoft Jscript 採用的標準),還支援 ES4 中建議的一些新語系特性。社區正在開發 ES4 的開放源程式碼實現,Adobe 和 Mozilla 希望以此促進這種建立 Web 應用程式的標準化語系的推廣。Tamarin 項目的目的是說明開發人員建立可以跨多個平台的效果豐富的高度互動性的使用者體驗。
Tamarin 的發展計劃
Tamarin 將支援 ECMAScript 第四版(或是說 「JavaScript 2」)語系,並將整合進 Mozilla 2 項目中的SpiderMonkey,預期在 2008 年發佈。
Mozilla 的開放源程式碼項目團隊剛剛開始開發 Tamarin,它的一些目的技術內含:
將 Tamarin VM 和垃圾收集器整合進SpiderMonkey中
使用 SpiderMonkey編譯器生成 Tamarin 的代碼
將即時編譯器移植到新的硬體平台
完成 ECMAScript 4編譯器
使用 ActionScript 3 的簡單示例
這個 ActionScript 示例顯示歡迎訊息 「Hello <Username>」。使用者可以在文字方塊中輸入使用者名。按換行時,就會顯示歡迎訊息。
清單 1. 示例代碼
package {
public class Greeter {
/**
* Defines the names that should receive a proper greeting.
*/
public static var validNames:Array = ["Sammy", "Frank", "Dean"];
/**
* Builds a greeting string using the given name
*/
public static function sayHello (userName:String = ""):String {
var greeting:String = "Hello World";
if (userName == ""){
greeting = "Hello, please type your name and then press the enter key";
}
else if(validName(userName)){
greeting = "Hello, " + userName + ".";
}
else {
greeting = "Sorry, " + userName + "Your name is not present in the list.";
}
return greeting;
}
/**
* Check whether a name is in the validNames list
*/
public static function validName(inputName:String = ""):Boolean {
if validNames.indexOf(inputName) > -1 {
return true;
}
else {
return false;
}
}
}
}
顯示清單 1 的起始視窗。它顯示最初的歡迎訊息 「Hello, please type your name and then press the enter key」,然後等待使用者在標籤為 User Name 的文字方塊中輸入使用者名。
ActionScript 3 中的歡迎示例
當使用者在 User Name 框中輸入 「Frank」 時,腳本會在預定義的 validNames陣列中尋找這個使用者名。因為 「Frank」 在 validNames陣列中,所以在歡迎區功能變數中會顯示 「Hello Frank」,見圖 2。
使用者輸入使用者名
如果使用者輸入的使用者名不在 validNames陣列中,例如 「Anitha」,那麼顯示訊息 「Sorry, Anitha, your name is not present in the list」。
在下面,我提供了關於 ActionScript寫程式的出色的參考資料。還可以找到一個論壇的連結,使用 ActionScript 的開發人員在這裡直接回答任何問題。新的 ActionScript Virtual Machine 和 Flash Player 有許多令人興奮的改進,但是這超出了本文的範圍。如果您還沒有下載最新的 Flash Player 版本,就請下載它,體會一下它的眾多優點。

——————————————————————————–
【Flash 動畫製作】你在摸索如何製作 Flash 動畫及發佈到網站嗎?有【技術顧問服務】可諮詢嗎?
當問題無法解決你要發很多時間處理(或許永遠找出答案)那就是自己摸索 Flash 動畫製作痛苦的開始!
購買【Flash動畫製作教學】DVD課程,就可獲得【Flash 動畫製作】技術【顧問諮詢服務】!

About

發佈留言