Flex Примеры, Adobe Flex, Флекс

Изучаем Flex. Примеры, статьи, рецепты …


Как определить слушает ли элемент какое-то событие

Пример ниже о том, как реагирует ли (например Button) на какое-нибудь событие
например (FlexEvent.BUTTON_DOWN)
при помощи методов hasEventListener() и willTrigger()

Согласно документации Flex 3, разница между методами hasEventListener() и willTrigger() состоит в том, что метод hasEventListener() рассматривает только объект которому он принадлежит,
а метод willTrigger() рассматривает всю схему обработки событий заданного типа

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 Отзывов на “Как определить слушает ли элемент какое-то событие”


  1. Нет комментариев

Оставить отзыв