![]() |
никак не могу removeEventListener
Вот такая вот конструкция лежит в классе:
Код:
private var act; |
Код:
removeEventListener(Event.ENTER_FRAME,act); |
не помогает
он походу не хочет понимать что act является объектом-слушателем... |
Код:
private var act; |
это не страшно :)
|
А вы не создавайте слушателей, да и функции вообще в теле другой функции (ибо все ссылки на них потруться когда функция отработает), и будет вам счастье =)
Вот как вы себе представляете, вы создали локальную переменныю в функции А, а в функции Б хотите теперь ее увидеть? Переменная должна быть в зоне видимости обеих функций. |
так я делаю если есть какие то быстрые вычисления или там загрузки...
но в данном случае очень важно удалить слушателя, ибо действия в act "вечные", а вот сам объект к которому они привязаны может "исчезнуть" по желанию юзера, и тогда резко начинаются проблемы, потому как слушатель висит тока слушать ему нечего. |
Ну вот и не нужно делать "быстро", а нужно хорошо =) Не сможете вы из одной функции добраться до локальной переменной другой функции... это как пересечение параллельных прямых =) Объявите act вне первой функции, и все будет замечательно работать.
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false) Соответственно, поменять на true Это на всякий случай. Не самый лучий вариант, т.как слушатель будет удален безконтрольно, но тоже может пригодиться. |
Блин, короче мне дико стыдно, всё работает. Полуношная паника была зря, просто пытался удалить ещё не созданную лису.
|
wvxvw: А кстати переменная ведь объявленна вначале класса, область видимости позволяет лазать к ней через разные функции, это примерно... как дохлая корова на параллельных рельсах, полюбому доступ есть
|
Не, то другая переменная, она к функции созданной внутри addFrameEvent не имеет никакого отношения. Флеш не проверяет идентичность имен локальных переменных функции и переменных класса (ФД помоему ругнулся бы на такое).
Код:
var a:String = 'foo'; |
Хитрец, ты в функции объявил новую переменную с тем же именем, а я нет. У меня используется одна и таже, поэтому и trace(a) и trace(this.a) выводин одинаковое значение.
|
Цитата:
Чтобы это было ссылкой нужно наоборот: Код:
private var act:Function; |
вот низ - это моё =)
|
| Часовой пояс GMT +4, время: 21:24. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.