Flex 이벤트 메커니즘
13624 단어 Flex
<?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>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
⭐️ Flex & OpacityThe flex CSS shorthand property sets how a flex item will grow or shrink to fit the space available in its flex containe...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.