Руководство по actionscript. часть 2, стр. 114
Следующий код демонстрирует цикл for-each-in, который используется для обращения к значениям элементов массива:
var games:Array = ["Project Gotham Racing", "Shadow of the Colossus", "Legend of Zelda"]:
for each (var game:* in games) { trace(game);
}
Приведенный цикл выполняется трижды, по одному разу для каждого из трех элементов массива games. При выполнении цикла в первый раз переменной game присваивается значение «Project Gotham Racing» (то есть значение первого элемента). При выполнении цикла во второй раз переменная game принимает значение «Shadow of the Colossus», а на третий раз — значение «Legend of Zelda». Таким образом, выводимая информация выглядит следующим образом:
Project Gotham Racing Shadow of the Colossus Legend of Zelda
Цикл for-each-in является напарником цикла for-in языка ActionScript. Тогда как цикл for-each-in перечисляет значения переменных, цикл for-in — имена переменных. Например, следующий цикл for-in перечисляет имена динамических переменных экземпляра объекта, на который ссылается переменная info:
for (var detailName:* in info) { trace(detailName);
}
// Вывод: // city // country
Обратите внимание, что предыдущий код выводит имена переменных city и country, а не их значения. Для обращения к значениям этих свойств мы могли бы использовать оператор [ ], который рассматривается далее, в разд. «Динамические обращения к переменным и методам». Это демонстрирует следующий код:
for (var detailName:* in info) { trace(i nfo[detai1 Name]);
}
// Вывод:
// Toronto // Canada
Чтобы исключить перечисление динамической переменной экземпляра в циклах for-in и for-each-in, используется метод setPropertylsEnumerable ( ) класса Ob j ect, показанный в следующем коде:
info. setPropertylsEnumerableC’city», false);
for (var detailName:* in info) { trace(info[detailName]);
}
// Выводит: Canada
// (переменная «city» не была обработана в цикле for-in)
Мы рассмотрим применение цикла for-each-in на практическом примере в разд. «Использование динамических переменных экземпляра для создания справочных таблиц».