Пример ниже о том, как реагирует ли (например Button) на какое-нибудь событие
например (FlexEvent.BUTTON_DOWN)
при помощи методов hasEventListener() и willTrigger()
Согласно документации Flex 3, разница между методами hasEventListener() и willTrigger() состоит в том, что метод hasEventListener() рассматривает только объект которому он принадлежит,
а метод willTrigger() рассматривает всю схему обработки событий заданного типа
View CodeMXML | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | <?xml version="1.0" encoding="utf-8"?> <mx:Application name="Button_willTrigger_buttonDown_test" xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white"> <mx:Script> <![CDATA[ import mx.controls.Alert; import mx.events.FlexEvent; import mx.utils.StringUtil; private function verify_click():void { var listener:Boolean = btn.hasEventListener(FlexEvent.BUTTON_DOWN); var trigger:Boolean = btn.willTrigger(FlexEvent.BUTTON_DOWN); var str:String = "hasEventListener() = {0}{1}willTrigger() = {2}"; Alert.show(StringUtil.substitute(str, listener, "n", trigger)); } private function addEventListener_click():void { btn.addEventListener(FlexEvent.BUTTON_DOWN, btn_buttonDown); verify_click(); } private function removeEventListener_click():void { btn.removeEventListener(FlexEvent.BUTTON_DOWN, btn_buttonDown); verify_click(); } private function btn_buttonDown(evt:FlexEvent):void { Alert.show(evt.type); } ]]> </mx:Script> <mx:ApplicationControlBar dock="true"> <mx:Button label="Verify listeners" click="verify_click();" /> <mx:Spacer width="100%" /> <mx:Button label="addEventListener()" click="addEventListener_click();" /> <mx:Button label="removeEventListener()" click="removeEventListener_click();" /> </mx:ApplicationControlBar> <mx:Button id="btn" label="Button" /> </mx:Application> |

0 Отзывов на “Как определить слушает ли элемент какое-то событие”
Оставить отзыв