Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   общее событие для всех потомков MovieClip (http://www.flasher.ru/forum/showthread.php?t=92126)

dacino 16.02.2007 11:34

общее событие для всех потомков MovieClip
 
есть, класс, наследник MovieClip, у него есть собитие onEvent, программно создается множество расположенных друг на друге(каким образом это будет определяет пользователь) экземпляров этого класса,
как сделать, так чтоб если на одном из мувов наступило это событие его бы слышали и все экземпляры данного класса....
както не очень хочется, при добавлении нового мува переберать все существующие и добавлять их в массив Listener, мож еще способ предложите?

etc 16.02.2007 12:37

Сделать класс-вещатель, который будет подписан на события каждого мувика и каждый мувик будет подписан на события вещателя.
Один из мувиков шлет событие вещателю, а тот, в свою очередь, оповещает остальных.

dacino 16.02.2007 13:13

спасиб за идею..., попробую реализовать...

dacino 16.02.2007 17:46

вот тока есть один трабл, мне надо что б при addListener слушатель добавлялся в начало массива слушателей а не в конец
(делал все бродкастом, на семерке)

etc 16.02.2007 18:05

Код:

trace(this['_listeners']);
Тебе надо его просто развернуть после добавления слушателя.

dacino 16.02.2007 19:39

да вот не совсем, представь, добавил раз - развернул массив, все путем, добавил еще раз, разворачивать назад и добавлять, потом опять разворот, так голова закружится, забыл что книжка есть, посмотрю чего там пишут...

...unshift() и вся любовь

etc 16.02.2007 21:31

Ну можешь pop>unshift. Только тогда тебе не addListener пользовать надо, а какой-нибудь другой метод, в котором уже делать addListener и смещать слушателей через pop>unshift.

wvxvw 17.02.2007 14:36

листенеры - точно такой же массив, как и любой другой, т.е. код типа:
Код:

Mouse['_listeners'].unshift('new_listener');
добавит new_listener в начало массива. При этом даже не проверит, что же такое этот самый new_listener =)

etc 17.02.2007 14:39

Ну да, можно свой addListener написать. Тогда AsBroadcaster вообще можно убрать.


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

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