336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Flex의 DataGrid를 이용할때 처음에 데이터를 불러왔을때 컬럼을 자동 정렬하게 하는 방법을 찾던중 발견한 예제..
dispathcEvent를 이용하는것이 핵심이다.
This post is just an extension of my earlier post describing the auto sort solution for your Flex DataGrid. Upon request, I have built a simple code that demonstrates it. This is how it looks: -
그리고...
[Flex] 수동으로 이벤트 발생시키기 - dispatchEvent()
글도 도움이 되었다..
Flex 에서 MXML로 정의한 버튼이 다음과 같이 있다고 가정합니다.
<mx:Button id="btnAlert" label="Alert!" />
이 버튼을 클릭할 때 어떠한 동작을 하고자 하면 해당 버튼에 다음과 같이 클릭 이벤트 핸들러를 등록시켜주면 됩니다.
Script ---
public function alert(evt:MouseEvent):void
{
Alert.show("Hello, Flex!", "Alert");
}
MXML ---
<mx:Button id="btnAlert" label="Alert!" click="alert(event)" />
public function alert(evt:MouseEvent):void
{
Alert.show("Hello, Flex!", "Alert");
}
MXML ---
<mx:Button id="btnAlert" label="Alert!" click="alert(event)" />
만약, 실제 버튼을 클릭하지 않고서 버튼을 클릭한 것과 같은 이벤트를 수동으로 발생시키려면 어떻게 해야할까요?
이럴때 필요한 것이 dispatchEvent 입니다.
dispatchEvent 의 구조는 다음과 같습니다.
objectInstance. dispatchEvent(
event
:Event)자세한 설명은 수동에 의한 이벤트의 송출(Dispatch) 에서 참고하도록 하고 본 포스트에서는 생략하겠습니다.
아래에 보여드릴 소스는 캔버스를 MXML로 정의하여 이 캔버스를 클릭하였을때 버튼을 클릭한 것 과 같이 수동으로 이벤트를 발생시킴으로써 버튼을 클릭하였을 때와 같이 팝업이 뜨도록 하고 있습니다.
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="300">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
public function alert(evt:MouseEvent):void
{
Alert.show("Hello, Flex!", "Alert");
}
public function canvasClick(evt:MouseEvent):void
{
btnAlert.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}
]]>
</mx:Script>
<mx:Canvas x="44" y="79" width="200" height="153" backgroundColor="#FF0000" borderStyle="solid"
cornerRadius="20" click="canvasClick(event)">
<mx:Label text="Click Here!" horizontalCenter="0" verticalCenter="0"/>
</mx:Canvas>
<mx:Button id="btnAlert" x="271" y="137" label="Alert!" click="alert(event)"/>
</mx:Application>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
public function alert(evt:MouseEvent):void
{
Alert.show("Hello, Flex!", "Alert");
}
public function canvasClick(evt:MouseEvent):void
{
btnAlert.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}
]]>
</mx:Script>
<mx:Canvas x="44" y="79" width="200" height="153" backgroundColor="#FF0000" borderStyle="solid"
cornerRadius="20" click="canvasClick(event)">
<mx:Label text="Click Here!" horizontalCenter="0" verticalCenter="0"/>
</mx:Canvas>
<mx:Button id="btnAlert" x="271" y="137" label="Alert!" click="alert(event)"/>
</mx:Application>
dispatchEvent 를 이용하여 마치 버튼을 클릭한 것 처럼 MouseEvent.CLICK 이벤트를 버튼에 dispatch 함으로써 버튼에서 클릭 이벤트 핸들러로 등록해놓은 alert() 메소드가 실행되게 됩니다.
물론 위의 예제에서는 단순히 클릭시에 Alert 을 띄우는 작업으로 그쳤기에 문제가 없었지만, 실제 클릭이벤트와 관련된 작업이 필요할 경우 새로 생성해준 마우스이벤트 (new MouseEvent(MouseEvent.CLICK)) 의 상세한 값들을 제어할 필요가 있습니다.
MouseEvent (type:String , bubbles:Boolean = true, cancelable:Boolean = false, localX:Number , localY:Number , relatedObject:InteractiveObject = null, ctrlKey:Boolean = false, altKey:Boolean = false, shiftKey:Boolean = false, buttonDown:Boolean = false, delta:int = 0)
와.. 많다.;;;
와.. 많다.;;;
'# IT, Computer Science > ETC' 카테고리의 다른 글
Flex 와 PHP+MYSQL 연동 예제 (0) | 2010.10.03 |
---|