actionscript3.0

actionscript3.0

1. actionscript是一種腳本語言, 在flash中有廣泛的使用。


有很多flash組件是用純actionscript寫成,比如open-flash-chart。也有用actionscript來實現框架中的一部分的,比如Flex
actionscript運行在虛擬機中:
ActionScript 1.0 (Flash 1.0-6.0) 對應的虛擬機為 AVM1 , 基於 ECMA-262 V2 (相當於JavaScript 1.3)
ActionScript 2.0 (Flash 7.0-8.0) 對應的虛擬機為 AVM1 , 基於 ECMA-262 V3 (相當於JavaScript 1.5)
ActionScript 3.0 (Flash 9.0-?) 對應的虛擬機為 AVM2,基於 ECMA-262 V4 (相當於JavaScript 2.0,更多關於JS2.0, 見http://www.mozilla.org/projects/tamarin/)

2. actionscript開發工具


可以用Adobe Flash CS系列、Flex Builder系列等。
我們這裡使用Flex Builder3.0.
Flex builder在2.0以後是一個基於Eclipse的Flex開發IDE,所以熟悉Eclipse的可以更快的上手。
下載Flex Builder3.0, 地址http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex3email
安裝Flex Builder3.0。(無論是windows版、mac版還是linux版,都可以雙擊安裝,具體就不多說了)
運行Flex Builder,會有60天的試用期。
新建一個Action script 3.0 項目。
默認情況下會通過項目名生成一個actionscript文件,我們這裡把項目名定為HelloWorld
寫個簡單的hello world.
package {
import flash.display.Sprite;
public class HelloWorld extends Sprite
{
private var _hello_world:String = “Hello world!!!”;
private static const _CLASS_HELLO_WORLD:String = “Hello world!!!”;
private const _INSTANCE_HELLO_WORLD:String = “Hello world!!!”;
public function HelloWorld()
{
trace(_hello_world);
trace(HelloWorld._CLASS_HELLO_WORLD);
trace(this._INSTANCE_HELLO_WORLD);
}
}
}
Debug運行(一定要debug的Flash Player)
輸出:

3. 安裝debug版本的Flash player


.
安裝Flex builder的時候,其會提示是否安裝debug版的Flash player。
假如當時沒有安裝,可以到這裡下載。
http://www.adobe.com/support/flashplayer/downloads.html
為什麼用debug版本?
可以在Flex Builder中看到trace信息,並且能開啟Flex Builder的debug功能。

4. 對demo源碼的一點解釋。


package(包)的概念。
actionscript3.0中包的概念就像java中的一樣,每個包定義了一組類,是一種物理結構上的隔離。
class(類)的概念。
actionscript3.0中類的概念也像java中的類,這個就不說了。
引入其它類。
要在actionscript中引入其它類,通過import來實現。
如上例中import flash.display.Sprite;
進入了flash api中的Sprite類。
這些概念就像java中的一樣,所以有java基礎的,會更加容易上手寫actionscript3.0。

5. actionscript3.0中的變數定義。


和其他的編程語言一樣, as也有自己的變數定義格式。
比如:
var _username:String = “test name”;
上面定義了一個變數名為_username,值為test name,類型為String的變數。
所以,在as3.0中通用的變數定義為:
var 變數名:變數類型; // = 值; 也可以不初始化。
類常量的定義:static const TEST_CLASS_VAR:int = 10;
上面定義了一個類常量。
實例常量(本地常量)的定義:const TEST_INSTANCE_VAR:int = 10;
上面定義了一個實例(本地)常量
actionscript3.0中的變數類型聲明和java不一樣,但是也很容易理解,因為很像UML中的形式。