for
使用 for 循環可以循環訪問某個變量以獲得特定范圍的值。必須在 for 語句中提供 3 個表達式:一個設置了初始值的變量,一個
用於確定循環何時結束的條件語句,以及一個在每次循環中都更改變量值的表達式。例如,下面的代碼循環 5 次。變量 i 的值
從 0 開始到 4 結束,輸出結果是從 0 到 4 的 5 個數字,每個數字各占 1 行。
var i:int;
for (i = 0; i < 5; i++)
{
trace(i);
}
for..in
for..in 循環訪問對象屬性或數組元素。例如,可以使用 for..in 循環來循環訪問通用對象的屬性(不按任何特定的順序來保存對
象的屬性,因此屬性可能以看似隨機的順序出現):
FLASH ACTIONSCRIPT 3.0 編程64
ActionScript 語言及其語法
var myObj:Object = {x:20, y:30};
for (var i:String in myObj)
{
trace(i + ": " + myObj[i]);
}
// output:
// x: 20
// y: 30
還可以循環訪問數組中的元素:
var myArray:Array = ["one", "two", "three"];
for (var i:String in myArray)
{
trace(myArray[i]);
}
// output:
// one
// two
// three
如果對象是自定義類的一個實例,則除非該類是動態類,否則將無法循環訪問該對象的屬性。即便對於動態類的實例,也只能
循環訪問動態添加的屬性。
for each..in
for each..in 循環用於循環訪問集合中的項,這些項可以是 XML 或 XMLList 對象中的標簽、對象屬性保存的值或數組元素。如
下面這段摘錄的代碼所示,可以使用 for each..in 循環來循環訪問通用對象的屬性,但是與 for..in 循環不同的是, for each..in 循
環中的迭代變量包含屬性所保存的值,而不包含屬性的名稱:
var myObj:Object = {x:20, y:30};
for each (var num in myObj)
{
trace(num);
}
// output:
// 20
// 30
您可以循環訪問 XML 或 XMLList 對象,如下面的示例所示:
var myXML:XML = <users>
<fname>Jane</fname>
<fname>Susan</fname>
<fname>John</fname>
</users>;
for each (var item in myXML.fname)
{
trace(item);
}
/* output
Jane
Susan
John
*/
還可以循環訪問數組中的元素,如下面的示例所示:
FLASH ACTIONSCRIPT 3.0 編程65
ActionScript 語言及其語法
var myArray:Array = ["one", "two", "three"];
for each (var item in myArray)
{
trace(item);
}
// output:
// one
// two
// three
如果對象是密封類的實例,則您將無法循環訪問該對象的屬性。即使對於動態類的實例,也無法循環訪問任何固定屬性(即,
作為類定義的一部分定義的屬性)。