AcionScript的語言還在摸索中
目前會以Flex會用到的部分來寫
這回提到的是基礎部分
1.變數宣告
2.資料型別判斷
3.型別轉換
4.陣列使用方式
5.for迴圈與for each迴圈寫法
6.AS3的特殊操作符號
1.變數宣告
ActionScipt的變數宣告並不算太嚴謹
它的宣告方式是 var variable : type
例如: var name : String;
但如果不指定資料型別的話也可以,例如 var variable;
它的語法會等同於 var variable : *;
*類別與其他資料型別不一樣,它表示暫時不確定之後會寫入什麼型別
當然缺點就是處理*型別會比較花時間囉
2.資料型別判斷
ActionScript 3 的基底資料型別共有 int、Number、String、uint、Boolean
複雜資料型別則包含了 Array、Date、Error、Function、RegExp等
不同於Java的地方是,AS3的所有資料型別都是物件
var sth:int = 1; 會與 var sth:int = new int(1); 相同
AS3用關鍵字 is 來判斷變數的類別,並返回 boolean值表示結果
值得一提的是 AS3 提供了另一個關鍵字 as
在物件符合類別時會回傳物件本身,不符合時則回傳 null
trace(n1 as Number) //n1為Number型別時回傳n1,否則回傳null
3.型別轉換
ActionScript作型別轉換的函式就跟他類別的名稱一樣
三種型別:int, Number, uint 對應的轉換式分別為 int(), Number(), uint()
另外將字串轉換為數值還可以用parseint(), parseFloat()
若是無法轉換成數字的值,在int或是uint裡會回傳0,Number值則會回傳NaN
轉換成字串的方法為String(想轉換成字串的值)
轉換成Boolean則用Boolean(),0的值換轉成false,其餘則為true
4.陣列使用方式
使用array的方法為
var arr : Array = ["a", "b", "c"];
要得知陣列長度則可以使用 陣列名稱.length
例如:var num : int = arr.length;
它的Array比較像是java裡面的ArrayList
也可以像下面的方式使用
var nameList : Array = new Array();
nameList.push("John");
nameList.push("Allen");
push()是在陣列結尾加入元素,另外有一個ubshift()則是在陣列開頭加入元素
刪除元素的方法則有pop()和shift()
pop()刪除陣列最後面的元素,shift()刪除陣列最前面的元素
而陣列的index也會因為以上方式而跟著變動
陣列裡面也有sort()方法,他會依照unicode的大小來進行升冪排列
var arr : Array = ["22", "15", "a"];
arr.sort();
trace(arr);
排列結果會是15,22,a
此外也有一些常數可以調整排列順序
Array.DESCENDING會改使用降冪排列
Array.NUMERIC 會將元素視為數值
Array.CASEINSENSITIVE 沒有大小寫差異
Array.UNIQUESORT 陣列內有重複元素時,會停止排序並回傳0
Array.RETURNINDEXEDARRAY不替原本陣列排序,而傳回指定順序的新陣列
使用方式為 arr.sort(Array.DESCENDING);
有多重排序規則需求的話則使用 | 來區隔規則
例如 arr.sort(Array.DESCENDING | Array.NUMERIC);
sortOn方法則是可以依屬性值排列
例如可以依照現有物件的y軸位置來做排列
arr.sortOn("y ", Array.NUMERIC);
需要反轉陣列的時候則用reverse()函式,如:arr.reverse();
要確認陣列裡面是否已經存在要加入的值可以使用indexOf()和lastIndexOf()
使用方法為 arr.indexOf(要查詢的值);
indexOf會從陣列開頭開始找起,lastIndexOf則從陣列結尾開始找
找到之後會回傳該值的index值
若要將所有的元素結合成字串可以使用join()函式,以下範例:
var numList : Array = [10, 8, 5];
var message :String = numList.join("分和");
trace("結果是" + message + "。");
結果:結果是10分和8分和5
5.for迴圈與for each迴圈寫法
for迴圈使用範例:
var testArray:Array = ["1", "2", "3"];
for(var i:String in testArray){
trace(testArray[i]);
}
for each迴圈使用範例:
var testArray:Array = ["1", "2", "3"];
for(var num in testArray){
trace(num);
}
6.AS3的特殊操作符號
[] - 初始化陣列 {x:y} - 初始化對象 x.y or x[y] -訪問屬性
:: - 標識屬性、方法或 XML 屬性或特性的命名空間 @ - 標識 XML 或 XMLList 對象的屬性
.. - 定位到 XML 或 XMLList 對象的後代元素,或(結合使用 @ 運算符)查找匹配的後代屬性
* - 指定屬性是無類型的(特殊運用)
沒有留言:
張貼留言