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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.05.2008, 02:38
me2 вне форума Посмотреть профиль Отправить личное сообщение для me2 Найти все сообщения от me2
  № 1  
Ответить с цитированием
me2

Регистрация: Jan 2008
Сообщений: 84
По умолчанию никак не могу removeEventListener

Вот такая вот конструкция лежит в классе:
Код:
private var act;
...
private function addFrameEvent(){
	act=function(e:Event){trace('aaa')}
	addEventListener(Event.ENTER_FRAME,act);
}
private function killFrameEvent(){
	removeEventListener('enterFrame',act);
}
Не могу удалить listener. Что не так?

Старый 12.05.2008, 02:45
koresh& вне форума Посмотреть профиль Отправить личное сообщение для koresh& Найти все сообщения от koresh&
  № 2  
Ответить с цитированием
koresh&

Регистрация: Jul 2007
Сообщений: 21
Код:
removeEventListener(Event.ENTER_FRAME,act);
м?


Последний раз редактировалось koresh&; 12.05.2008 в 02:57.
Старый 12.05.2008, 02:49
me2 вне форума Посмотреть профиль Отправить личное сообщение для me2 Найти все сообщения от me2
  № 3  
Ответить с цитированием
me2

Регистрация: Jan 2008
Сообщений: 84
не помогает
он походу не хочет понимать что act является объектом-слушателем...

Старый 12.05.2008, 02:56
koresh& вне форума Посмотреть профиль Отправить личное сообщение для koresh& Найти все сообщения от koresh&
  № 4  
Ответить с цитированием
koresh&

Регистрация: Jul 2007
Сообщений: 21
Код:
private var act;
...
private function addFrameEvent(){
	addEventListener(Event.ENTER_FRAME,act);
	function act(e:event)
        {
            trace('aaa')
        }
}
private function killFrameEvent(){
	removeEventListener(Event.ENTER_FRAME,act); 
}
а ничего, что они private?

Старый 12.05.2008, 03:05
me2 вне форума Посмотреть профиль Отправить личное сообщение для me2 Найти все сообщения от me2
  № 5  
Ответить с цитированием
me2

Регистрация: Jan 2008
Сообщений: 84
это не страшно

Старый 12.05.2008, 03:08
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А вы не создавайте слушателей, да и функции вообще в теле другой функции (ибо все ссылки на них потруться когда функция отработает), и будет вам счастье =)
Вот как вы себе представляете, вы создали локальную переменныю в функции А, а в функции Б хотите теперь ее увидеть? Переменная должна быть в зоне видимости обеих функций.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 12.05.2008 в 03:11.
Старый 12.05.2008, 03:17
me2 вне форума Посмотреть профиль Отправить личное сообщение для me2 Найти все сообщения от me2
  № 7  
Ответить с цитированием
me2

Регистрация: Jan 2008
Сообщений: 84
так я делаю если есть какие то быстрые вычисления или там загрузки...
но в данном случае очень важно удалить слушателя, ибо действия в act "вечные", а вот сам объект к которому они привязаны может "исчезнуть" по желанию юзера, и тогда резко начинаются проблемы, потому как слушатель висит тока слушать ему нечего.


Последний раз редактировалось me2; 12.05.2008 в 03:21.
Старый 12.05.2008, 03:23
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 8  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ну вот и не нужно делать "быстро", а нужно хорошо =) Не сможете вы из одной функции добраться до локальной переменной другой функции... это как пересечение параллельных прямых =) Объявите act вне первой функции, и все будет замечательно работать.

addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false)
Соответственно, поменять на true
Это на всякий случай. Не самый лучий вариант, т.как слушатель будет удален безконтрольно, но тоже может пригодиться.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 12.05.2008 в 03:31.
Старый 12.05.2008, 03:26
me2 вне форума Посмотреть профиль Отправить личное сообщение для me2 Найти все сообщения от me2
  № 9  
Ответить с цитированием
me2

Регистрация: Jan 2008
Сообщений: 84
Блин, короче мне дико стыдно, всё работает. Полуношная паника была зря, просто пытался удалить ещё не созданную лису.

Старый 12.05.2008, 03:32
me2 вне форума Посмотреть профиль Отправить личное сообщение для me2 Найти все сообщения от me2
  № 10  
Ответить с цитированием
me2

Регистрация: Jan 2008
Сообщений: 84
wvxvw: А кстати переменная ведь объявленна вначале класса, область видимости позволяет лазать к ней через разные функции, это примерно... как дохлая корова на параллельных рельсах, полюбому доступ есть

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

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

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


 


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


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