• <acronym id="danlv"><form id="danlv"></form></acronym>
  • <dd id="danlv"><rt id="danlv"></rt></dd>
      <var id="danlv"><rt id="danlv"><big id="danlv"></big></rt></var>
      1. <code id="danlv"><ol id="danlv"></ol></code>
        <var id="danlv"><rt id="danlv"></rt></var>
          1. <code id="danlv"></code>
            返回首頁

            flash ActionScript中Array和Object的異同

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

            正在擴展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基礎教程
            ------分隔線----------------------------
            推薦內容
            猜你感興趣
            日韩在线av免费视久久