Форум 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=103220)

Котяра 31.10.2007 23:11

Как создать своего слушателя - вернее своё событие
 
Вопрос абсолютно не праздныЙ:
"Как создать своего слушателя - вернее своё событие"
Имеем переменную
Код:

_mc.a =0;
Хочу при любом её изменении вызывать функцию

Код:

a_onChange=function () {_mc.b=_mc.a}
Есть ли такие события для обычных переменных или всё ограничено предустановленными событиями? как создавать свои события?

etc 31.10.2007 23:17

addProperty

Котяра 31.10.2007 23:45

Цитата:

Сообщение от __etc
addProperty

Т.е. если в классах, то сеттер..

Хм.. может быть, но идея несколько в другом.

Ведь есть, например в IDE динамическое текстовое поле, в нем параметр var, в нем переменная (пусть будет _mc.a), при изменении которой изменяется text текстового поля.

пусть у меня есть непустой мувик с muvik._x =_mc.a. Так вот как установить слежение за переменной _mc.a
(onEnterFrame не предлагать, т.к. мувиков много)
Идея не делать проверку а вызывать ф-цию присваивания ПО ИЗМЕНЕНИЮ.

etc 31.10.2007 23:48

watch

Котяра 01.11.2007 00:17

Цитата:

Сообщение от __etc
watch

Уже (еще) лучше))) Будем дальше копать... Хотелось бы вызывать множество ф-ций обработчиков (независимых от _mc.watch("a",...)
Но:
Цитата:

За каждым свойством может "наблюдать" только один отслеживающий объект . Повторные вызовы Object.watch() для того же самого свойства заменяют предыдущие отслеживающие объекты.

udaaff 01.11.2007 01:34

AsBroadcaster, EventDispatcher.

terbooter 01.11.2007 08:11

Код:

o = [];
o.a = 5;
o.watch("a", func);
broadcast = [];
AsBroadcaster.initialize(broadcast);
l1 = [];
l2 = [];
l3 = [];
broadcast.addListener(l1);
broadcast.addListener(l2);
broadcast.addListener(l3);
function func()
{
        broadcast.broadcastMessage("onEvent");
}
l1.onEvent = function()
{
        trace("l1");
};
l2.onEvent = function()
{
        trace("l2");
};
o.a = 10;


etc 01.11.2007 09:12

terbooter, зачем тебе массивы?

terbooter 01.11.2007 11:23

А это от лени.
Массив он же тоже объект

etc 01.11.2007 13:10

Памяти жрет больше.


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

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