![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 30
|
Доброго времени суток, прошу сильно не бить за тупые вопросы
, я только учусь.Предположим, имеется кастомный аналог NumericStepper'а у которого есть вот такой сеттер: public function set value (val:Number):void { if (val != _value) {dispatchEvent (new Event (Event.CHANGE));} _value = val; if (!correctValue ()) {updateText ();} } package main.engine.ui { import flash.display.Sprite; import flash.events.Event; import main.engine.ui.UISimpleStepper; public class A extends Sprite { protected var _stepper:UISimpleStepper; public function A () { _stepper = new UISimpleStepper (); addChild (_stepper); _stepper.addEventListener (Event.CHANGE, onStepperChange); } private function onStepperChange (e:Event):void { var someCondition:Boolean; // do something here if (someCondition) {dispatchEvent (new Event (Event.CHANGE));} } public function get stepper ():UISimpleStepper { return _stepper; } } } Теперь document class: package main { import flash.display.Sprite; import flash.events.Event; import main.engine.ui.A; import flash.utils.getQualifiedClassName; public class Events extends Sprite { public var a:A; public function Events () { addEventListener (Event.ADDED_TO_STAGE, initialize); } private function initialize (e:Event):void { removeEventListener (Event.ADDED_TO_STAGE, initialize); a = new A (); addChild (a); a.addEventListener (Event.CHANGE, onChange); } private function onChange (e:Event):void { trace (getQualifiedClassName (e.target), ":", e.eventPhase); } } } Цитата:
Подскажите плиз, как это сделать по-человечески? |
|
|||||
|
Modus ponens
|
Я как-то вообще не понимаю, как у вас событие от степпера попадает в Events... по-идее не должно, т.е. так себя ведут только всплывающие события, но ваше событие бе всплывающее... вы уверены, что степпер это событие больше нигде не диспатчит и что вы именно там подисались, как у вас в коде тут написано?
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 30
|
Вот исходник, проверьте пожалуйста, если вас не затруднит.
Ухххх, блин, сорри, у меня там в UISimpleStepper.enterFrameHandler() всякий мусор валялся И все из-за него...Вернее, мусор был в function set value (). Последний раз редактировалось dump13; 29.09.2009 в 00:01. |
|
|||||
|
Modus ponens
|
Ну так вы же везде диспатчите всплывающее событие, а не так, как у вас тут в примере написано... просто, если вам не нужно всплывающее событие - то не диспачте, а если нужно, то тогда проверяйте как вам удобнее, или event.target !== this, или так как вы до этого делали.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 30
|
Да, я там просто проверял и так и эдак, пробовал ставить bubbles и в true, и в false, а перед отправкой убрать забыл
А насчет Event.CHANGE, так в документации вроде пишут, что для него Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 05:40. |
|
|
« Предыдущая тема | Следующая тема » |
|
|