Flex 이벤트 메커니즘

13624 단어 Flex
ActionScript 의 클릭 이벤트 예제 사용 하기
<?xml version="1.0" encoding="utf-8"?>

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 

               xmlns:s="library://ns.adobe.com/flex/spark" 

               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" applicationComplete="init()">

    <fx:Script>

        <![CDATA[          

            import mx.controls.Alert;

            protected function init():void

            {

                test3.addEventListener(MouseEvent.CLICK,onClick)

            }

            protected function onClick(event:Event):void

            {

                Alert.show(event.target.label+"clicked","    ");

            }

        ]]>

    </fx:Script>

    <fx:Declarations>

        <!--       (    、   )     -->

    </fx:Declarations>

    <s:Button     id="test3" x="493" y="62" width="112" height="44" label="  "/>

</s:Application>

귀속 이벤트
언제든지 특정한 변수 에 대한 바 인 딩 을 만 들 면 이벤트 모니터 를 등록 하고 모니터 는 변수 가 수정 되 었 을 때 응답 합 니 다.
ActionScript 는 ChangeWatcher 클래스 에 의존 하여 데이터 바 인 딩 을 실현 합 니 다.
<?xml version="1.0" encoding="utf-8"?>

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 

               xmlns:s="library://ns.adobe.com/flex/spark" 

               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"

               applicationComplete="init()">

    <fx:Script>

        <![CDATA[

            import mx.binding.utils.ChangeWatcher;

            import mx.events.FlexEvent;

            import mx.events.PropertyChangeEvent;

            

            protected var _watcher:ChangeWatcher;

            

            protected function init():void

            {

                toggleWatch();

            }

            protected function toggleWatch():void

            {

                if(_watcher&&_watcher.isWatching())//       

                {

                    _watcher.unwatch();//        

                    test3.label="Watch";

                }

                else

                {

                _watcher=ChangeWatcher.watch(input,"text",onChange);

                test3.label="Stop Watching!";

                }

            }

            protected function onChange(event:Event):void

            {

                label1.text=input.text;

            }

            

        ]]>

    </fx:Script>

    <s:Button     id="test3" x="338" y="176" width="112"

                  height="44" label="Watch Text" click="toggleWatch()"/>

    <s:Label id="label1" x="510" y="176" width="176" height="53" />    

    <s:TextInput id="input" x="510" y="239" width="176" height="53" text="start text"/>

</s:Application>

 
우리 가 방금 본 것 은 unwatch () 방법의 용법 입 니 다. 이 방법 은 변 수 를 감시 하 는 행 위 를 취소 할 수 있 습 니 다.사건 감청 기 를 사용 한 상황 에서 도 이 를 할 수 있다.이벤트 모니터 가 실 행 될 때 ActionScript 를 통 해 추 가 된 경우 removeEventListener () 방법 으로 제거 할 수 있 습 니 다.Unwatch () 방법 은 removeEventListener 를 사용 하여 이벤트 의 할당 을 중단 합 니 다.
이벤트 모니터 를 제거 하 는 방법 보기:
<?xml version="1.0" encoding="utf-8"?>

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 

               xmlns:s="library://ns.adobe.com/flex/spark" 

               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">

    <s:layout>

        <s:VerticalLayout/>

    </s:layout>

    <fx:Script>

        <![CDATA[

            import mx.events.DragEvent;

            protected function toggleListener():void

            {

               if(box.hasEventListener(MouseEvent.CLICK))

               {

                 log("Listeners removeed");

                 //       

                 box.removeEventListener(MouseEvent.MOUSE_OVER,onEvent);

                 box.removeEventListener(MouseEvent.MOUSE_OUT,onEvent);

                 box.removeEventListener(MouseEvent.MOUSE_MOVE,onEvent);

                 box.removeEventListener(MouseEvent.CLICK,onEvent);      

               }

              else

              {

                log("Listeners added")

                //       

                box.addEventListener(MouseEvent.CLICK,onEvent);

                box.addEventListener(MouseEvent.MOUSE_MOVE,onEvent);

                box.addEventListener(MouseEvent.MOUSE_OUT,onEvent);

                box.addEventListener(MouseEvent.MOUSE_OVER,onEvent);

              }

           }

          protected function log(text:String):void//    String    

          {

              logField.text=text+"
"+logField.text; } protected function onEvent(event:Event):void { log("Event triggered:"+event.type); }
]]> </fx:Script> <s:Button label="Toggle Listener" click=" toggleListener()"/> <s:Group id="box"> <s:Rect width="200" height="50"> <s:fill> <s:SolidColor color="0x979797"/> </s:fill> </s:Rect> </s:Group> <s:TextArea id="logField" width="400" height="400"/> </s:Application>

 
 
 

좋은 웹페이지 즐겨찾기