Просмотр полной версии : отслеживание изменения переменной в другом классе
как? пробовал при помощи set/get, но получилось лишь при изменении переменной в классе, содержащем set/get (в основном классе документа).
Один из двух может подписаться на события другого.
iflamberg
14.08.2009, 20:34
другой класс, должен в сеттере переменной генерировать событие. Основной класс подписывается на это событие.
iflamberg, можно пример кода или ссылку? никак не могу подружиться с геттерами.
еще такой вопрос. в осноыном классе есть экземпляр другого класса, а в другом классе - экземпляр третьего. третийкласс генерирует событие. можно ли в основном классе его слушать не создавая экземпляр этого класса? или нужно создавать цепочку событий/листенеров?
как лучше передавать классу мувиклип с вложенными клипами если планируется обращение лишь к вложенным клипам? ссылкой на него или ссылками на его детей?
Felicast
14.08.2009, 22:36
можно пример кода
public class A extends EventDispatcher
{
private var _prop:int;
public function get prop():int
{
return _prop;
}
public function set prop(value:int):int
{
_prop = value;
dispathEvent(new Event(Event.CHANGED));
}
}
public class B
{
private var _a:A;
private function aChangedHandler(event:Event):void
{
trace("Свойство _a.prop изменилось");
}
public function B(a)
{
_a = a
if (_a)
{
_a.addEventListener(Event.CHANGED, aChangedHandler);
}
}
}
может где-то опечатался. писал в блокноте:)
еще такой вопрос
second.third.addEventListener......
Felicast, спасибо, разобрался.
поторопился с ответом ). т.е. public function B() обязательно должна иметь а параметрах (скобках) класс а?
как сделать, чтобы измменение переменной в другом классе рагистрировалось лишь в определенный момент? если лишь тогда добавить листенер, то, если событие уже произошло, это ни кчему не приведет. а при добавлении листенера в конструкторе класса функция листенера сработает слишком рано. получается, прийдется запускать таймер?
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.