Просмотр полной версии : Как создать своего слушателя - вернее своё событие
Вопрос абсолютно не праздныЙ:
"Как создать своего слушателя - вернее своё событие"
Имеем переменную _mc.a =0;
Хочу при любом её изменении вызывать функцию
a_onChange=function () {_mc.b=_mc.a}
Есть ли такие события для обычных переменных или всё ограничено предустановленными событиями? как создавать свои события?
addProperty
Т.е. если в классах, то сеттер..
Хм.. может быть, но идея несколько в другом.
Ведь есть, например в IDE динамическое текстовое поле, в нем параметр var, в нем переменная (пусть будет _mc.a), при изменении которой изменяется text текстового поля.
пусть у меня есть непустой мувик с muvik._x =_mc.a. Так вот как установить слежение за переменной _mc.a
(onEnterFrame не предлагать, т.к. мувиков много)
Идея не делать проверку а вызывать ф-цию присваивания ПО ИЗМЕНЕНИЮ.
watch
Уже (еще) лучше))) Будем дальше копать... Хотелось бы вызывать множество ф-ций обработчиков (независимых от _mc.watch("a",...)
Но:За каждым свойством может "наблюдать" только один отслеживающий объект . Повторные вызовы Object.watch() для того же самого свойства заменяют предыдущие отслеживающие объекты.
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;
terbooter, зачем тебе массивы?
terbooter
01.11.2007, 11:23
А это от лени.
Массив он же тоже объект
Сенки за всё.. просто как-то со слушателями проблемы..именно концепцию догнать.. вроде в чистом с++ этого не было, а ООП я с него изучал (давно правда, но все понятия очень живо отложились)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.