Actionscript中的數組

來源:互聯網
上載者:User
數組 難度: 中級
軟體環境: Flash 5


如果你對數組感性趣的話,那麼你也一定瞭解變數吧。變數是裝著資料的容器,資料可以是數字、字串或者是個布爾值。

數組與變數相似同樣是做為資料的容器,但它還能包含更多的資料,每一個元素(資料中的一部分)都被附於一個索引。

數組可以用來儲存你的指令碼和組織圖,它們通常用來去組織一些在某些方面有些關聯的數值,這些數值採用一個索引值
與數組中其它的元素區分開來。你可以用下面這個方法 去定義 3個變數::

quote1="Flash is cool!"
quote2="Flash is my favourite program"
quote3="Flash rules"

顯然有一個更好的方法 去實現上面的例子 那就是 使 用 數組。有很多的方法可以建立 一個數組,但我首先展示的是最簡單的方法:

name_of_array=new Array()

所以我們想去引用一個數組的話,就用這個:

quotes=new Array()

很好,現在我們有了一個數組了,但問題是那裡面沒有任何的資料,它是沒有用處的,所以我們現在把資料放到我們的數組裡面,我們
用一個索引號碼去定義它在數組中的位置。


我們可以用下面的方法 把第一個元素放到數組中:

quotes[0]="Flash is cool!"

我要說的是在Flash 5中數組索引下標是基於0的,意思是在數組中的第一個元素它的索引值為0。
因此我們可以在我們的數組中的第二個元素中放入一個資料:

quotes[1]="Flash is my favourite program"

使用如下文法可以添滿數組內所有元素:

name_of_array[index]=value

說明:上面的name_of_array是你數組的名子,index是你想要增加到你的數組中資料的位置。
因此我們更早的建立了使用變數的代碼:

quote1="Flash is cool!"
quote2="Flash is my favourite program"
quote3="Flash rules"


也可以被寫成這樣:

quotes=new Array()
quotes[0]="Flash is cool!"
quotes[1]="Flash is my favourite program"
quotes[2]="Flash rules"

我們還可以采有如下的文法去建立:

name_of_array=new Array("value1","value2","value3")
這是一個在一行代碼中 實現的,value1 是數組中第一個元素 value2是數組中第二個元素,以此類推。
我們使用如下文法建立我們引用的數組:

quotes=new Array("Flash is cool!","Flash is my favourite program","Flash rules")

現在我們知道該如何建立數組,並且如何去使用,在下面的這個文法中同樣可以去建立 一個數姐:

name_of_array=["value1","value2","value3"]

這個與前面不同的是 沒有使用數組對像(new Array())
所以我們可以這樣建立引用的數組 代碼如下:

quotes=["Flash is cool!","Flash is my favourite program","Flash rules"]

我不管你用什麼方法做做,但我還是喜歡用這最後一個方法去建立數組,它是如此的簡單。
現在我們知道 怎麼創造數組,但是有時你想在指令碼中訪問你的數組,嗯 幸運的是還有一種方法可以實現它:

mynewvariable=name_of_array[index]

那麼我們想去為一個新的變數附值為數組中第一個元素的值話 請這樣做:

firstquote=quotes[0]

這個名為firstquote的新變數值就是“Flash is cool!”

在指令碼中數組的實現
設想一下 如果我們想得出數組中所有的元素,但是我們並不知道數組中有多少個元素啊,還好的是Flash中為
數組對像設定了若干屬性與方法,其中有一個屬性為Length可以得出該數組中元素的個數。

文法如下:

myarraylength=name_of_array.length

上面的這段代碼建立了一個新變數,裡面的值 就是你所指定的數組對像(name_of_array)元素的個數。
在我們引用數組的情況中,使用下面的代碼得到數組中元素的個數:
假如quotes是一個數組的話那麼
len=quotes.length 這個len變數 的值 就是該數組的長度

數組的長度等於它的最高索引值加1。最高索引值如果是2的話那麼這個數組的長度就是3,也就是說它裡面有
3個元素,原因就在於Flash 5中 數組下標是基於0的。

現在我們知道了如何去用數組的Length屬性了,採用下面的指令碼可以得出數級中所有元素的值。

for(z=0;z<name_of_array.length;++z){
write(name_of_array[z])
}

讓我們逐步來分析一下上面的代碼。
首先建立了一個臨時的變數 z

z=0

下列的代碼是一個迴圈的條件,當變數z小於數組的元素長度就迴圈

z<name_of_array.length

然後 再作變數z的增量 使它本身加1 ;
++z

你可以在這裡面放入你需要的代碼 它們會被執行(name_of_array.length的值)次

for(z=0;z<quotes.length;++z){
...
}


Associative arrays:

關聯陣列可以提供另一種儲存資訊的方法,用它你可以實現採用字串做為數組的下標而不是一個數字,這樣會更容易記憶。
這樣的不便是在迴圈中不能被採用,因為它不是一個數值。

關聯陣列的定義與變通數組是相同的,而唯一不同的是它採用字串 作為索引下標

請看下面的例子,我們定義一個汽車的數組:

mycars=new Array()
mycars[0]="peugoet 306"
mycars[1]="citreon saxo"
mycars[2]="ford fiesta"

這是關聯陣列的格式:

mycars=new Array()
mycars["fast"]="peugoet 306"
mycars["sporty"]="citreon saxo"
mycars["old"]="ford fiesta"

用字元做索引值有時會很有用,但當在迴圈中檢索數組是非常的不便。

現在當要得到這種類型數組中的值,你就得用字串做為索引了,參照上面的例子寫出:

mysportycar=mycars["sporty"]

結果就是變數mysportyca的值 就是"citreon saxo"

如果有任何疑問,請直接於作者聯絡! mailto:flashguru@flashkit.com

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。