![]() |
Как вызвать функцию класса из анонимной функции этого же класса?
Привет!
Прошу срочной помощи! Есть класс: Код:
class ConnectorClass {Как правильно вызвать ее из анонимной функции function(target_mc:MovieClip)? Мне надо по окончании загрузки клипа сообщить об этом в алерт!!! Спасибо. |
Нужно использовать Delegate, так как fmessage в анонимной функции function(target_mc:MovieClip) вызывается в области видимости page_mclListener.
|
Вот так
Код:
class ConnectorClass { |
iNils, супер! Спасибо. Повторю чьи-то слова: "Ты, добрый фей!"
2udaaff. Если не трудно, хотел бы увидеть вариант с Делегатом. Я пытался прикрутить его, но.... |
Тут делегат не нужен, так как класс подписан на получения событий от page_mc_loader и область видимости указана правильно.
|
Привет!
С успехом применил поправки к коду, но просил бы пролить свет по вопросу "листенерства". Локальным объектом var page_mc_loader был подписан собственно класс (this). Но, функцию loadPage я буду использовать сотни раз в единственном объекте этого класса. Так как я нигде не отписываюсь, не загрузиться ли память неудаленными листенерами, несмотря на лакальность page_mc_loader? И есль это так, где мне применять removeListener? А также теоретический вопрос: можно ли узнать, есть ли, и сколько листенеров у определенного объекта? Спасибо. |
Тогда стоит page_mc_loader сделать свойством класса и вынести создание в конструктор.
А узнать количество подписчиков можно так Код:
trace (page_mc_loader["_listeners"].length); |
Спасибо, iNils.
По первому вопросу так и поступлю. В принципе, думал так сделать, но имел надежду, что с локальной переменной умрет и подписка. Теперь сомненья прочь! А "теоретический" вопрос возник из-за проблем в подгружаемом мувики - там создавался листенер. После перезагрузки нового мувика и создания такого же листенера встала проблема ссылки - старый объект был удален, но листенер держал его еще в памяти, отсюда сбой в работе. Теперь стало все ясно - откуда ноги росли. Я тогда обошел эту проблему так: Код:
Key.removeListener(userKey); |
Немного продолжу тему таким вопросом - есть класс, примерно такой:
Код:
class MyClass { |
Dr.OH, это уже другая тема, незачем постить в чужой топик
по вопросу: у MyClass (если он наследник Object, а не MovieClip) нет onMouseMove и как следствие obj_move изначально провальный как метод MyClass если нужно передать его obj.caller' у, то держать его надо в виде свойства как анонимную функцию: Код:
class MyClass |
| Часовой пояс GMT +4, время: 02:27. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.