![]() |
как избежать лишнего создания копии объекта?
пусть в главном классе создан экземпляр class1 в котором приуствует слушатель на собственное событие
Код AS3:
Код AS3:
как этого избежать? |
ААААААА!! МОИ ГЛАЗА!!!
А если серьёзно, public function class1() это не класс, это функция. Вы видимо совсем запутались. Приводите весь код уж, я плохо понимаю что у вас происходит, второй кусок кода откуда вырван. Чего вы хотите добиться? Изучать архитектурные вещи можно тщательно изучив синтаксис, вы его не знаете, признайте уже очевидное. Прочитайте Колина Мука уже. |
Речь про экземпляр class1?
Вообще, всё плохо - события не стоит отправлять "кому-то", куда правильней рассылать от своего имени. Если 3 класса - родительский, class1 и class2, то лучше всего перебросить событие через родителя вот так: Код AS3:
|
все сделано для того, чтобы я мог вещать от одного класа- другому. задача стоит: чтобы один класс мог "сказать" напрямую другому- прими данные такие то и так далее.
как тогда это лучше сделать? Добавлено через 2 минуты без передачи в один класс(в конструктор) ссылки на другой класс, без использования того факта что все события дублируются на всех уровнях иерархии и оценки их через currenttarget чтобы один класс мог сказать другому классу: сделай то то! вот, возьми эти данные. |
Посмотрите на пост Тигры.
И классы в as3 не умеют рассылать события. А их экземпляры, если они наследуют все плюшечки EventDispatcher, да. Короче, экземпляр class1 диспатчит событие, другой экземпляр, который имеет ссылку на этот экземпляр, ловит событие и вызывает хендлер у экземпляра class2, на который в свою очередь тоже имеется ссылка в общем, так сказать, "родителе". |
Если Класс1 создал Класс2.
Классу1 нужно сказать что-то Классу2: напрямую дёргаем метод. Код AS3:
Код AS3:
Код AS3:
|
который имеет ссылку на этот экземпляр
----------- а как получить внутри класса ССЫЛКУ НА ЭТОТ ЭКЗЕМПЛЯР??? вот в чем проблема! |
viktorami
Приведите пожалуйста весь код который вы написали для этого теста, а то сейчас вся помощь строится на догадках. Добавлено через 32 секунды без ссылки нет взаимодействия, нет ничего плохого в передаче ссылок |
В смысле "как"? Вы же не просто вызываете конструктор класса. А пишете вот так?
Код AS3:
|
dispatchEvent(new Event('event'))
так не работает! уже пробовал. просто dispatchEvent не работает! должна быть указана его цель targetclass.dispatchEvent(new Event('event')) Добавлено через 1 минуту КорДум вот - сразу видно умного и понимающего человека) об этом и изначально была речь. если так сделать - все работает! но вопрос: получается у меня же class1 уже создан эземпляр - тот самый в котором и слушатель прописан а теперь я вынужден создавать ЕЩЕ ОДНУ ЕГО КОПИЮ КОТОРАЯ БУДЕТ ЖРАТЬ РЕСУРСЫ - ДУБЛЬ КЛАССА как же так??? |
| Часовой пояс GMT +4, время: 03:40. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.