返回首頁

flash ActionScript中Array和Object的異同

時間:2012-06-07 22:26來源:知行網www.wtckvq.live 編輯:麥田守望者

正在擴展shikar的ASPService,想把Flash的Array和Object都直接傳給ASP,在ASP端,Flash的Array被轉換成ASP的Array,而Object被轉換成ASP的Dictionary。
在檢測Flash的數據類型時發現,Object和Array的數據類型都是“object”。代碼如下:


arr = [3,4,5];
obj ={a:3,b:4,c:5};
trace(arr);
trace(obj);
//返回 object
//返回 object

雖然這個問題早就知道,但一直沒有深究。現在要區分Array和Object,就要進一步研究了。
再測試:

for (var i in arr){
trace(typeof(i));
trace(i)
}

返回的值居然是:
string
2
string
1
string
0
這說明數組的索引在ActionScript看來實際上不是數字,而是字符串!也就是說,下面這兩句代碼是等價的:

var t = arr[0];
var t = arr["0"];

為了證明我這個觀點,繼續測試


for (var i in obj){
trace(typeof(i));
trace(i)
}

返回:
string
a
string
b
string
c
它于Array所不同的好像就是for in循環返回的順序,Array是從最大索引值開始遞減,而Object則是遞增。
這樣看來,在ActionScript中,Array和Object都是作為Object類型看待的,他們的結構應該相同,都使用字符串作為索引(Array可以使用數字索引讀取,但內部結構中,索引還是以字符串形式存儲的)。
回到文章開頭,要實現我需要的功能,發現Flash端無論是Array或者Object意義已經不大。我還是采用簡單的方法:將Array和Object都轉換成ASP端的二維數組,第一個是Object標識符,第二個是值。

------分隔線----------------------------
標簽(Tag):FLASH FLASH實例教程 flash技巧 flash源代碼 flash基礎教程
------分隔線----------------------------
推薦內容
猜你感興趣
深蓝海域APP