ActionScript3 程序的編譯流程
ActionScript3 代碼將被編譯器編譯成 Flash Player 運行時可以理解的 ActionScript bytecode(字節(jié)碼)
簡稱 ABC 文件 但是 ABC 文件不可以單獨運行 必須放入到 SWF(.swf)文件中才可以被 FLash PLayer 執(zhí)
行
第一個 AS3 文檔類 HelloWorld
//新建 flash 文件
//新建類文件 HelloWorld
//在 flash 中屬性面板綁定 HelloWorld 類
//Ctrl+Enter 測試影片
//HelloWorld 類文件
package{
//每個類中必須定義包
import flash.display.Sprite;
public class HelloWorld extends Sprite{
//每個類都繼承自MovieClip類或Sprite類
//類名必須和文件名一致
public function HelloWorld(){
//public function HelloWorld():void{
trace("HelloWorld!");
}
}
}
ActionScript 3 是面向?qū)ο蟮恼Z言 (Object-oriented Language)
[ ActionScript3 語言基本元素 ]-----------------------------------------------------
一切都是對象(Everythings is an Object) ActionScript3 中所有的數(shù)據(jù)都是對象
ActionScript3 中所有類都是 Object 類的子類和子類的衍生類
數(shù)據(jù)類型 (data type) :
1 基本數(shù)據(jù)類型 (primitive data type) {
[值類型]
Boolean //布爾值 true false 默認(rèn)值 false
// 注意 ActionScript 3 中如果表達式的值不是布爾型 自動轉(zhuǎn)換
int //有符號整數(shù)
uint //無符號整數(shù) 處理顏色值優(yōu)先
Number //浮點數(shù)
String //字符串
}
2 復(fù)雜數(shù)據(jù)類型 (complex data type){
[引用類型]
Array
Date
Error
Function
RegExp
XML
XMLList
...
//我們自己定義的類也全部屬于復(fù)雜數(shù)據(jù)類型
}
3 * (通用匹配) {
var i:* = 1;
trace(typeof(i));
i="Tigerz";
trace(typeof(i));
}
值類型和引用類型的區(qū)別{
值類型{
直接儲存值 不因為其他變量值得改變而改變
}
引用類型{
存儲值得引用
}
}
String (字符串)
字符串的幾種聲明格式{
1 var s:String="Test";
2 var s:String=new String("Test"); // 效果與語法1相同
3 var s:String='Test'; // 也可以使用單引號聲明
}
Array (數(shù)組) //ActionScript3中數(shù)組是以非負(fù)整數(shù)為索引值的非類型化數(shù)組(typed array)
的稀疏數(shù)組 (sparse array)數(shù)組 最多容納 232-1 個元素 (4294 967 295個) 第1個元素的索
引值為0
所謂非類型化數(shù)組 意思是并不限制所有合資都要放同一種類型的數(shù)據(jù)
var myArray:Array=new Array(1,true,"test");
所謂稀疏數(shù)組是指不要求每個盒子都要放東西 比如我們可以讓第1個和第3個裝東西 其他留空
var myArray:Array=new Array(1,null,"test");
數(shù)組的幾種聲明格式{
var myArray:Array=new Array(1,2,3);
var myArray:Array=[1,2,3];
var myArray:Array=new Array(3); //聲明長度為3的空數(shù)組
}
二維數(shù)組
多維數(shù)組
變量(variable) //先聲明 后使用 變量持有引用 (Reference) 而引用則指向要操作的對象
var 變量名:數(shù)據(jù)類型 = 值; //賦值的類型必須和變量的類型一致
變量命名規(guī)范 {
1 盡量使用有含義的引文單詞作為變量名
2 駱駝命名法{
混合使用大小寫字母組成變量和函數(shù)的名字
首字母小寫 第二個單詞首字母大寫 比如 highLevelFlag
}
3 (min-length && max-information){
變量名長度應(yīng)當(dāng)越短越好
變量名代表得含義秒素得越清晰越好
}
4 盡量避免出現(xiàn)數(shù)字編號
}
常量() //聲明時必須賦值 賦值后不可更改
const 常量名:數(shù)據(jù)類型 = 值; //賦值的類型必須和常量的類型一致
{
const foo:Array = [1,2];
var b:Array = foo;
b[1] = 100;
trace(foo); //輸出 1,100
//foo 指向的數(shù)組內(nèi)容被改變了
foo = [2,3] //err 常量不能改變
}
Object (對象) (//這里指實例不是類)
成員{
1:屬性(Property) 存儲數(shù)據(jù)
2:方法(Method) 存儲函數(shù)
}
聲明Object的兩種方法{
1 var foo:Object = new Object();
2 var bar:Object = {}; //效果相同
var foo:Object = {name:"kingda",web:"www.kinda.org"};
//初始化 寫入多個屬性 屬性名和屬性值以英文分號“:”隔開
//屬性之間以英文逗號“,”隔開
var bar:Object = {
//初始化 寫入多個方法
hello:function(){trace("Hello,guys!");},
ok:function():String{return "that's ok";}
}
//bar.hello();
2.2 //等同于
var foo:Object = {};
foo.name="kingda";foo.web="www.kingda.org";
//等同于 foo["name"]="kingda";foo["web"]="www.kingda.org";
var bar:Object = {};
bar.hello = function(){
trace("Hello,guys!");
}
bar.ok=function():String{
return "that's ok";
}
}
由于我們確切的知道成員的名字 所以可以直接使用點符號運算符(.)來添加或訪問他們
但如果是在程序運行時要訪問一個成員 而這個成員的名字到了運行時才會知道 那么就
需要用到數(shù)組運算符 [] 了 !!---------------------------------------------
多維數(shù)組 !!-----------------------------------------------------------
Null Nan underfined 及各類型變量的默認(rèn)值 {
var a:int, //trace(a) 默認(rèn)值 0
b:uint, //0
c:Number, //NaN
d:String, //null
e:Boolean, //false
f:Array, //null
g:Object, //null
h, //underfined
i:*; //underfined
}
類型轉(zhuǎn)換 !!------------------------------------------------------------
{
var n:number=0.1;
var i:int=n;
}
運算符 (Operator) {
//算術(shù)運算符
+
-
*
/
%
- //求反運算符
//算術(shù)賦值運算符
+=
-=
*=
/=
%=
//關(guān)系運算符
== //值類型比較值是否相等 引用類型比較引用是否相等(是否指向同一個對象)
//當(dāng)類型不同時自動進行轉(zhuǎn)換
!=
=== //全等運算符 不進行類型轉(zhuǎn)換
!=== //不全等運算符
>
<
>=
<=
//當(dāng)兩邊的值是NaN和underfined時 == 比較結(jié)果相等 === 比較結(jié)果不相等
//邏輯運算符
&& //邏輯AND
|| //邏輯OR
! //邏輯NOT
//三元運算符
(條件表達式)?(表達式2):(表達式3);
++ -- 自增和自減運算符
}
如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答!! 點擊進入論壇