Это хитрая задача, сказали бы пуристы, чтобы использовать метод зацикливания массивов, так как с помощью этого метода можно было бы исключить «представление» из MVC и при этом система работать (что является хороший тест любой системы). Однако, если вы работаете с событиями, вы можете срезать некоторые углы с помощью всплытия событий и строгой типизации.
Например, если мы предполагаем, что вы создаете пользовательское событие с именем CloudEvent
, у которого есть свойство с именем cloud
, которое содержит ссылку на диспетчеризацию CloudSprite
, то пока событие по умолчанию вспыхивает, вам не нужно добавлять слушатель событий для каждого, просто для DisplayObjectContainer
, который их содержит (который я образно называю CloudContainer
). Таким образом, событие всплывает, и вам нужно добавить только одного слушателя, и вам не нужно беспокоиться об управлении слушателями для дочерних элементов.
public function CloudContainer()
{
super();
addEventListener(CloudEvent.CHANGE, cloudChangeHandler);
}
private function cloudChangeHandler(evt:CloudEvent):void
{
var cloud:CloudSprite = evt.cloud;
cloud.update();
}
Надеюсь, это поможет