2010. 3. 19. 10:48
[Flex help] Using Events - Using event subclasses 공부/developeGuide-Flex help2010. 3. 19. 10:48
Using event subclasses
리스너 함수에 이벤트 객체를 정의 할 때 이벤트 타입을 정할 수 있다. 또는 이벤트 객체의 하위클래스를 지정할 수 있다.
예를 들어, 다음은 MouseEvent타입의 이벤트 객체를 지정하였다.
public function performAction(e:mouseEvent):void{
}
대부분의 컨트롤들은 지정된 이벤트 타입에 대해 객체를 발생한다. 예를 들어, 마우스 클릭은 MouseEvent타입의 객체를 발생하는데 더 구체적인 이벤트 타입을 지정함으로써, 어떤 다른 이벤트 객체로 캐스팅할 필요 없이 특정한 프로퍼티에 접근할 수 있다. 또한 이벤트 객체의 몇 서브 클래스들은 유니크한 함수를 가지고 있다. 예를 들어, LogEvent 는 String타입의 log level을 반환하는 일반 이벤트 객체는 가지고 있지 않은 getLevelString() 함수를 가지고 있다.
런타임에 정의한 이벤트 객체는 컴파일타임 타입의 하위클래스가 될 수 있다. 이벤트 객체를 특정 타입으로 캐스팅하는 것 처럼 특정 이벤트를 정의하지 않아도 이벤트 리스너 안의 명시된 프로퍼티들에 접근 할 수 있다.
아래의 예에서, 함수는 이벤트타입으로 정의 되었다. 그런데 함수안에 MouseEvent 클래스로 명시한 localX와 localY 프로퍼티로 접근하기 위해 MouseEvent 타입의 이벤트 객체를 캐스팅해야만한다.
<?xml version="1.0"?>
<!-- events/AccessEventSpecificProperties.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="addListeners()">
<mx:Script><![CDATA[
import mx.controls.Alert;
private function customLogEvent(e:Event):void {
var a:MouseEvent = MouseEvent(e);
Alert.show("Y: " + a.localY + "\n" + "X: " + a.localX);
}
private function addListeners():void {
b1.addEventListener(MouseEvent.CLICK, customLogEvent);
}
]]></mx:Script>
<mx:Button id="b1" label="Click Me"/>
</mx:Application>
<!-- events/AccessEventSpecificProperties.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="addListeners()">
<mx:Script><![CDATA[
import mx.controls.Alert;
private function customLogEvent(e:Event):void {
var a:MouseEvent = MouseEvent(e);
Alert.show("Y: " + a.localY + "\n" + "X: " + a.localX);
}
private function addListeners():void {
b1.addEventListener(MouseEvent.CLICK, customLogEvent);
}
]]></mx:Script>
<mx:Button id="b1" label="Click Me"/>
</mx:Application>
처음 부터 특정타입으로 이벤트 객체를 정의할 수 도 있다.
private function customLogEvent(e:MouseEvent):void { ... }
[플렉스 help 영문 정리]
원본 : http://livedocs.adobe.com/flex/3/html/events_10.html#217508
'공부 > developeGuide-Flex help' 카테고리의 다른 글
[Flex help] Using the StyleManager class (0) | 2010.03.30 |
---|---|
[Flex help] Using Events - About keyboard events (0) | 2010.03.19 |
[Flex help] Using Events - Event priorities (0) | 2010.03.19 |
[Flex help] Using Events - Event Propagation (0) | 2010.03.18 |
[Flex help] Using Events - About Event (0) | 2010.03.18 |