![]() |
ASBroadcaster. Генрация классом своих событий.
Не могу понять некоторые вещи связанные с объектом ASBroadcaster. Во первых, почему когда делаешь
trace(ASBroadcaster) выводится undefined? Ну каким бы скрытым и не документированным этот объект не был, но он же должен себя хоть как - то проявлять. И второй вопрос, у меня есть мувиклип и связаный с ним с помощью Linkage класс. Мне нужно, чтобы этот класс генерил события, как это сделать? Пробывал в конструкторе писать ASBroadcaster.initialize(this); но это понятно не катит по скольку объекта ASBroadcaster он просто не видит, передавал в класс этот объект как параметр, но не понятно тогда, что должно вызывать broadcastMessage, если this.broadcastMessage, то опять же будет ругаться, чтот такого метода нету, короче бред какой-то. Кстати пробывал трейсить передоваемый объект ASBroadcaster - выдаётся undefined, ну блин - это хитрая особенность или этот бродкастер нужно как то хитро подключать. Ах да, у меня Flash MX 2004, может в нём они вообще убрали этот бродкастер? |
trace(AsBroadcaster), ну и далее в том же духе..
|
Круто, надож было так купиться на ASBroadcaster. Блин а почему, на flash-rapper и в уроке здесь на сайте пишется именно ASBroadcaster?
Вообщем спасибо. |
Используй класс EventDispatcher
допустим твой класс: Код:
import mx.events.EventDispatcher;Код:
var chat:Babble = new Babble();Ты это имел ввиду? |
Цитата:
mx.events.EventDispatcher.initialize(this); это я так понимаю объявляется текущий класс генератором событий. dispatchEvent(eventObject); - это генерация события? или тут какой то другой принцип изпользуется? Не подскажешь, где можно прочитать про этот класс? |
EventDispatcher.initialize(this); -- методы класса EventDispatcher копируються в твой класс.
var dispatchEvent:Function; var addEventListener:Function; var removeEventListener:Function; собственно методы которые копируються dispatchEvent -- посылает обьект события всем зарегистрированным с твоим классом listener-ам. Где почитать не знаю, в хэлпе есть и собственно сам \Flash MX 2004\en\First Run\Classes\mx\events\EventDispatcher.as я его читал :) |
твой пример если взять так прямо работает без проблем, но я попытался вставить, туда куда мне нужно, и ноль реакций.
Щас опишу ситуацию. У меня есть класс, котоорый привязан к мувиклипу по средствам Linkage и наследуется от класса MovieClip. На главную сцену я его переношу посредством attachMovie. При этоом по идее создаётся объект этого класса автоматически. Но эвенты совсем не хотят работать. Вот пример класса (всё не относящееся к делу выкинуто) Код:
import mx.events.EventDispatcher;Код:
var obj:Object = new Object(); |
Блин всё работает, не знаю почему, но всё заработало.
Простот поменял имя у эвента и всё... |
Код:
_root.loader1.addEventListener(aObj); |
Да это верно, без этого параметра оно тооже не работает, это я просто добавил код, после определённых колдовских манипуляция с целью обеспечения его работы :). А в начале я с параметром передовал, но увы.. Сейчас всё работает, мне кажется что я толи букву неправильную где-то записал, тооли ещё что-то в этом роде.
Кстати может подскажешь, пытался в этоом классе dispatcherEvent раставлять trace, но они нифига не работали, получается, что флеш откудато скомпиленный вариант класса берёт, не знаешь как его можно пересобрать? |
| Часовой пояс GMT +4, время: 10:22. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.