Просмотр полной версии : for each внутри контейнера
Godwarlock
26.06.2018, 03:22
Подскажите пожалуйста, почему не работает такой способ получения чилда через for each?
var container:Sprite = new Sprite();
addChild(container);
var test_sprite:MyClassSprite = new MyClassSprite();
container.addChild(test_sprite);
for each(var myClass:MyClassSprite in container)
{
trace(myClass);
}
alexandrratush
26.06.2018, 10:17
Потому что этот тип цикла перечисляет все свойства объекта container (numChildren, alpha, visible...) Используйте for.
RedHead90
26.06.2018, 13:56
Потому что этот тип цикла перечисляет все свойства объекта container (numChildren, alpha, visible...) Используйте for.
Из документации (https://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/statements.html#for_each..in): Инструкция цикла for each..in выполняет итерацию только через динамические, а не фиксированные, свойства объекта.
Godwarlock
26.06.2018, 14:21
RedHead90 объявил класс dynamic. Результата нет.
alexandrratush Да походу так и придется
RedHead90
26.06.2018, 14:42
Godwarlock, а какого результата ты ждал? Моё сообщение о том, что цикл for each..in не перечисляет такие поля, как numChildren, alpha, visible, как пишет alexandrratush.
alexandrratush
26.06.2018, 15:31
Да, RedHead90 правду говорит. Ошибся я. :(
Используйте цикл for в связке с numChildren и getChildAt(). Так можно перебрать все объекты в контейнере.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.