Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.01.2014, 15:39
gin_sea вне форума Посмотреть профиль Отправить личное сообщение для gin_sea Найти все сообщения от gin_sea
  № 1  
Ответить с цитированием
gin_sea
[+6 30.10.12]

Регистрация: Jul 2005
Сообщений: 35
По умолчанию Прекращение выполнения всех событий

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

Старый 13.01.2014, 16:12
ObOs вне форума Посмотреть профиль Отправить личное сообщение для ObOs Найти все сообщения от ObOs
  № 2  
Ответить с цитированием
ObOs
 
Аватар для ObOs

Регистрация: Jul 2009
Сообщений: 149
Храните ссылки на объекты в списке, например в массиве. В Ваш "определенный момент" пробегитесь по списку и отписываете все объекты от события.
Код AS3:
for(var i:int = 0; i < objectsList.length; i++){
     var obj:MyObject = objectsList[i];
     obj.removeEventListener("MY_EVENT", eventHandler);
}
Таким же образом можно обратно повесить слушатели.

Старый 13.01.2014, 16:24
gin_sea вне форума Посмотреть профиль Отправить личное сообщение для gin_sea Найти все сообщения от gin_sea
  № 3  
Ответить с цитированием
gin_sea
[+6 30.10.12]

Регистрация: Jul 2005
Сообщений: 35
Цитата:
Сообщение от ObOs Посмотреть сообщение
Храните ссылки на объекты в списке, например в массиве. В Ваш "определенный момент" пробегитесь по списку и отписываете все объекты от события.
Код AS3:
for(var i:int = 0; i < objectsList.length; i++){
     var obj:MyObject = objectsList[i];
     obj.removeEventListener("MY_EVENT", eventHandler);
}
Таким же образом можно обратно повесить слушатели.
Флешка уже сделана, сейчас все объекты заносить в массив очень проблематично.

Старый 13.01.2014, 16:38
ObOs вне форума Посмотреть профиль Отправить личное сообщение для ObOs Найти все сообщения от ObOs
  № 4  
Ответить с цитированием
ObOs
 
Аватар для ObOs

Регистрация: Jul 2009
Сообщений: 149
Заведите флаг(переменную) отвечающий за ваш "определенный момент". В обработчике события проверяйте флаг если он false выполняем код обработчика, если true выходим из него
Код AS3:
private function eventHandler(e:Event):void{
	if(flag){
		return;
	}
	//handler code....
}
Вам так или иначе вносить изменения в код. Так, я думаю, лучше сделать все по уму, чем выдумывать костыли.

Старый 14.01.2014, 23:23
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 5  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от gin_sea Посмотреть сообщение
Есть много объектов, которые реагируют на разные события. Возможно ли сделать так, чтобы на определенное время все объекты перестали реагировать на все события, а потом все события восстановились?
Возможно. Достаточно понять из-за чего возникают события и перекрыть им кислород.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 00:28.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.