Action script

Action script

ActionScript(簡稱AS)是由Macromedia(現已被Adobe收購)為其Flash產品開發的 ,最初是一種簡單的腳本語言,現在最新版本ActionScript3.0,是一種完全的面向對象的程式語言,功能強大,類庫豐富,語法類似JavaScript,多用於Flash互動性、娛樂性、實用性開發,網頁製作和RIA(豐富網際網路程式)開發。

定義

ActionScript開發工具 ActionScript開發工具

運用在flash上的腳本語言。

使用

ActionScript 動作腳本是遵循ECMAscript第四版 的Adobe Flash Player運行時環境的程式語言。它在 Flash 內容和應用程式中實現互動性、數據處理、以及其他功能。

* ActionScript 是由 Flash Player 地方gtr和中的 ActionScript虛擬機(AVM)來執行。

* ActionScript代碼通常被編譯成“位元組碼格式”。

* ActionScript 的主要 IDE(集成開發環境) 是Adobe公司的 Flash Builder,最新版本 4.7。

* ActionScript CS3(2007)後為更新為ActionScript 3.0,語言的系統結構完全改變,支持即時編譯,語言功能增強速度。

發展

從macromedia大刀闊斧對As1.0進行改革到AS2.0,這一段過程看上去還算長一些,從flashmx到flash mx2004到flash 7.2再到flash8. 它們的核心actionscript都是as2.0.在flash8剛剛發布不長時間,macromedia又緊羅密鼓的推出了flash9預覽版,Adobe發布的預覽版可以對AS3.0進行編譯,而As3.0經過測試它的速度可以說要比之前的as2.0快10倍.拿著as3.0與As2.0相對比,它看上去就象是重寫的一種新語言一樣.還有隨之推出的adobe的Flex 2.0 builder. Flex sdk.讓許多人一時不知所措。

·Flash Player2:第一個支持腳本的版本,包括控制時間軸的gotoAndPlay, gotoAndStop, nextFrame和nextScene等動作。

· Flash Player 3:增強了載入外部SWF檔案的基本腳本支持(loadMovie)。

· Flash Player 4:第一個完全實現腳本功能(稱為動作)的播放器。這些腳本擁有簡練的語法和對循環,條件,變數和其它基本語言結構的支持。

· Flash Player 5:第一個擁有真正意義上的ActionScript的版本。依據ECMAScript並採用基於原型編程,並允許完全的 過程式編程和面向對象編程。

· Flash Player 6:增加了事件處理模型,並且支持switch。

· Flash Player 7:Flash Player 7 提供一些新特性如支持CSS顯示文本和增強顯示效果。 Macromedia Flash編譯器和Flash Player 7同時支持基於ECMAScript 4 Netscape Proposal的類程式語言ActionScript 2.0。不過ActionScript 2.0能交叉編譯成ActionScript 1.0的位元組碼,因此它能運行於Flash Player 6。

· Flash Player 8:增加用於運行時圖象數據控制和檔案上傳的新類庫及APIs,ActionScript 2.0功能更為完善。

· Flash Player 8.5(計畫於2006春發布release版本,currently in public beta):增加ActionScript 3.0和一個稱為AVM2(ActionScript Virtual Machine 2)新的虛擬機,它可以與前版本AVM1共存以便支持舊內容。增強性能是該版本的主要目標。

· Flash Player 9 2007發表,這是adobe收購Macromedia後的第一個版本,並且也是Mac OS X上第一個Universal版本的Flash Player。

· Flash Player 10

基本記法

ActionScript 2.0

下面列印Hello World。值得注意的是這只能在整合環境下執行,因為trace函式只有支持整合環境。

trace("Hello world!");

下面代碼利用onMouseMove事件當滑鼠移動時輸出現行滑鼠位置。同樣的這隻有在整合環境下執行。

onMouseMove = function () {

trace("X: "+_root._xmouse);

trace("Y: "+_root._ymouse);

};

這個較先進的範例創造一個包括數字與字元串的數組,並利用原形函式(prototype function)與函式遞歸給變數名num指定一個數,給變數str指定一個字元串。然後,利用MovieClip應用程式接口,文字區域被顯示在螢幕上,文字區域裡頭寫入了變數值。

var my_Array:Array = new Array("Hello", "ActionScript", 3, 7, 11, "Flash");

Array.prototype.pickNumber = function():Number {

var rand:Number = random(this.length);

return (typeof (this[rand]) == "number") ? this[rand] : this.pickNumber();

};

Array.prototype.pickString = function():String {

var rand:Number = random(this.length);

return (typeof (this[rand]) == "string") ? this[rand] : this.pickString();

};

var num:Number = my_Array.pickNumber();

var str:String = my_Array.pickString();

_root.createTextField("txt", 1, 10, 10, 530, 390);

txt.text = "Array = "+my_Array+"\nRandom Number = "+num+"\nRandom String = "+str;

ActionScript 3.0

下面先進的Hello World程式需要在Flex 2.0公開Alpha測試版整合環境中編譯。

package {

import flash.text.TextField;

import flash.display.MovieClip;

import flash.filters.DropShadowFilter;

public class HelloWorld extends MovieClip {

public function HelloWorld() {

var shad:DropShadowFilter = new DropShadowFilter(2, 45, 0x000000, 25, 3, 3, 2, 2);

var txt:TextField = new TextField();

txt.textColor = 0xFFFFFF;

txt.filters = [shad];

txt.width = 120;

txt.x = Math.random()*300;

txt.y = Math.random()*300;

txt.selectable = false;

txt.text = "Hello World! ["+Math.round(txt.x)+","+Math.round(txt.y)+"]";

addChild(txt);

}

}

}

//-----ActionScript3.0----------------- //as3.0最重要的概念就是在效能方面的增進,平時所加入的任何事件都可以被監聽或從記憶體中移除 //以下例子就是監聽與移除記憶體占用,這是as3.0最重要的基礎概念。

bt1.addEventListener(MouseEvent.CLICK,bt1_click);

function bt1_click(e:MouseEvent):void{ //觸發的事件內容; }

//該按紐監聽不需要時則remove掉,增加效能 bt1.removeEventListener(MouseEvent.CLICK,bt1_click);

相關術語

1.Actions (動作):就是程式語句,它是actionscript腳本語言的靈魂和核心.

2.Events (事件):簡單的說,要執行某一個動作,必須提供一定的條件,如需要某一個事件對該動作進行的一種觸發,那么這個觸發功能的部分就是actionscript中的事件.

3.Class (類):是一系列相互之間有聯繫的數據的集合,用來定義新的對象類型.

4.Constructor (構造器):用於定義類的屬性和方法的函式.

5.Expressions (表達式):語句中能夠產生一個值的任一部分.

6.Function.(函式):指可以被傳送參數並能返回值的以及可重複使用的代碼塊.

7.Identifiers (標示符):用於識別某個變數,屬性,對象,函式或方法的名稱.

8.Instances (實例):實例是屬於某個類的對象,一個類的每一個實例都包含類的所有屬性和方法.

9.Variable (變數):變數是儲存任意數據類型的值的標示符.

10. Instancenames (實例名):是在腳本中指向影片剪輯實例的唯一名字.

11.Methods (方法):是指被指派給某一個對象的函式,一個函式被分配後,它可以作為這個對象的方法被調用.

12.Objects (對象):就是屬性的集合.每個對象都有自己的名字和值,通過對象可以自由訪問某一個類型的信息.

13.Property (特性):對象具有的獨特屬性.

Flash使用ActionScript給動畫添加互動性。在簡單動畫中,Flash按順序播放動畫中的場景和幀,而在互動動畫中,用戶可以使用鍵盤或滑鼠與動畫互動。例如,可以單擊動畫中的按鈕,然後跳轉到動畫的不同部分繼續播放;可以移動動畫中的對象;可以在表單中輸入信息等等。使用ActionScript可以控制Flash動畫中的對象,創建導航元素和互動元素,擴展Flash創作互動動畫和網路套用的能力。

相關詞條

相關搜尋

熱門詞條

聯絡我們