PDA

Просмотр полной версии : Прекращение выполнения всех событий


gin_sea
13.01.2014, 15:39
Есть много объектов, которые реагируют на разные события. Возможно ли сделать так, чтобы на определенное время все объекты перестали реагировать на все события, а потом все события восстановились?

ObOs
13.01.2014, 16:12
Храните ссылки на объекты в списке, например в массиве. В Ваш "определенный момент" пробегитесь по списку и отписываете все объекты от события.

for(var i:int = 0; i < objectsList.length; i++){
var obj:MyObject = objectsList[i];
obj.removeEventListener("MY_EVENT", eventHandler);
}


Таким же образом можно обратно повесить слушатели.

gin_sea
13.01.2014, 16:24
Храните ссылки на объекты в списке, например в массиве. В Ваш "определенный момент" пробегитесь по списку и отписываете все объекты от события.

for(var i:int = 0; i < objectsList.length; i++){
var obj:MyObject = objectsList[i];
obj.removeEventListener("MY_EVENT", eventHandler);
}


Таким же образом можно обратно повесить слушатели.

Флешка уже сделана, сейчас все объекты заносить в массив очень проблематично.

ObOs
13.01.2014, 16:38
Заведите флаг(переменную) отвечающий за ваш "определенный момент". В обработчике события проверяйте флаг если он false выполняем код обработчика, если true выходим из него

private function eventHandler(e:Event):void{
if(flag){
return;
}
//handler code....
}

Вам так или иначе вносить изменения в код. Так, я думаю, лучше сделать все по уму, чем выдумывать костыли.

dimarik
14.01.2014, 23:23
Есть много объектов, которые реагируют на разные события. Возможно ли сделать так, чтобы на определенное время все объекты перестали реагировать на все события, а потом все события восстановились?

Возможно. Достаточно понять из-за чего возникают события и перекрыть им кислород.