Форум 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)
-   -   Как разослать событие всем инстанциям одного класса? (http://www.flasher.ru/forum/showthread.php?t=81426)

mushi_mushi 19.06.2006 19:11

Как разослать событие всем инстанциям одного класса?
 
Как разослать событие всем инстанциям одного класса?
Или одно событие одна реакция? Может быть цепной механизм?..
Но хочется не цепной, а параллельный.

Это общая формулировка. Частный случай:
Есть меню. Каждый элемент меню - экземпляр класса, обрабатывающего события и рутину. onRollOver меню загорается, и не должно гаснуть, пока не загорится другое меню.
Запоминать, какое меню подсвечивается в данны момент, чтобы его тушить, когда будет гореть другое - не хочу, т.к... не знаю почему, из спортивного интереса.

Madasan 19.06.2006 20:16

AsBroadcaster

NeZnayKa 19.06.2006 20:17

Код:

_root.lastClickedBut = null;
function switchBtn(){
_root.lastClickedBut.туши
_root.lastClickedBut = this;
_root.lastClickedBut.зажигай

}
  for (awr=1; awr<5; awr++){
  _root["b" + awr].onRelease = switchBtn;
                }

p.s.кто то где то написал этот простенький код

etc 19.06.2006 20:39

Цитата:

Сообщение от Madasan
AsBroadcaster

Или EventDispatcher

Nirth 19.06.2006 20:59

Мне кажеться то что хочет сделать автор, нужно сделать через некий менеджер, который будет получать события и форвардить их тем кому нужно.

silin 19.06.2006 21:32

да пусть всем инстансам класса и шлет, но с параметром на кого наехали:
Код:

class But extends MovieClip{
        static var broadcaster={};
        public function But(){
                if(!broadcaster._listeners)AsBroadcaster.initialize(broadcaster);
                broadcaster.addListener(this);
               
        }
        function onRollOver(){
                broadcaster.broadcastMessage("changeState",this);
        }
       
        function changeState(but:MovieClip){
                gotoAndStop(but==this?2:1);//если, например, в мувике два кадра
        }
}


mushi_mushi 20.06.2006 13:24

greate thnx
 
Цитата:

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

Да, теперь я именно так себе это и представляю ;)

2silin: Static... не понимал и не использовал. Спасибо)
И вообще!.. Это именно то, что нужно.

Homo Sapiens 21.06.2006 02:28

Посмотри здесь

mushi_mushi 21.06.2006 13:24

Homo Sapiens, Спасибо - всегда знал, что все велосипеды уже изобрели.
Там - шаблон - реализует тот же принцип, что и код от silin, за исключением, что код от silin работает именно в рамках объектов одного класса (что и требовалось).
А тот шаблон - это реализация типа "клиент-сервер"... я писал о "клиент-сервере" с досадой - т.к. он не совсем правильно реализует то, что я хотел, но кто-то стер это сообщение ;.)


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

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