![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Привет.Пишу некий Класс. Нужно создать слушателя в этом Классе.
На пример ели переменная i == 0 вызывается слушатель. Примеры: Как можно подобное реализовать? Что по читать? Спасибо! |
|
|||||
|
слушатель это метод, который вызывается при опреленных условиях
в данном случае когда i==0 чтобы отследить это, i должна быть геттером/сеттером простейший случай - собственный метод: в сеттере проверяем, вызываем метод class PropWatcher { private var _i:Number; private function onZero() { trace( "onZero listener " ); } public function get i():Number { return _i; } public function set i(value:Number):Void { if (_i != value) { _i = value; if (_i == 0) onZero() } } } /////////////////////// var test:PropWatcher = new PropWatcher(); test.i = 0; если нужно вызывать одноименные обрабочики в других объектах, то можно воспользоваться методами AsBroadcaster (добавив их к экземпляру через AsBroadcaster.initialize), тогда у всех объектов, подписанных на прослушку экземпляра PropWatcher срабоатет метод onZero class PropWatcher { private var _i:Number; private var broadcastMessage:Function; public var addListener:Function; public var removeListener:Function; public function PropWatcher() { AsBroadcaster.initialize(this); } public function get i():Number { return _i; } public function set i(value:Number):Void { if (_i != value) { _i = value; if (_i == 0) broadcastMessage("onZero"); } } } ////////////////////////////////////// var test:PropWatcher = new PropWatcher(); test.addListener(this); test.i = 0; function onZero() { trace( "onZero listener " ); } в целом схема такая же как и с AsBroadcaster, но подписывается на прослушку не объект, имеющий одноименный событию метод, а вообще любой метод, что бывает удобнее |
|
|||||
|
Регистрация: Jul 2011
Сообщений: 29
|
мне этот метод сегодня спас жизню! Спасибо silin!
|
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
а можно и почти AS3 события использовать.
__________________
Отряд Котовскага |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|