말그대로 이미지 버튼 컴포넌트 이다.
더블클릭 방지 기능도 포함됨…
속성중에 DOUBLECLICK_DELAY값을 변경하여 더블클릭 방지 시간을 수정하면 된다.
그리고 마우스오버,아웃시 fade 효과도 추가했음.
– ButtonImage.mxml
<mx:Image buttonMode=”true” useHandCursor=”true” mouseChildren=”false” xmlns:mx=”http://www.adobe.com/2006/mxml” creationComplete=”createContent()”>
<mx:Metadata>[Event("clickDispatch")]</mx:Metadata>
<mx:Script>
<![CDATA[
import flash.events.Event;
import mx.effects.Fade;
private var DOUBLECLICK_DELAY:Number = 100;
private var timer:Number = 0;
private function createContent():void
{
this.addEventListener(MouseEvent.MOUSE_OVER,mouseOverEvt);
this.addEventListener(MouseEvent.MOUSE_OUT,mouseOutEvt);
this.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownEvt);
}
private function mouseOverEvt(event:Event):void
{
var fadeIn:Fade = new Fade(this);
fadeIn.alphaFrom = 1.0;
fadeIn.alphaTo = 0.5;
fadeIn.duration = 300;
fadeIn.play();
}
private function mouseOutEvt(event:Event):void
{
var fadeOut:Fade = new Fade(this);
fadeOut.alphaFrom = 0.5;
fadeOut.alphaTo = 1.0;
fadeOut.duration = 300;
fadeOut.play();
}
private function mouseDownEvt(event:Event):void
{
if(!this.visible) return;
var currentTime:Number = getTimer();
if (currentTime - timer > DOUBLECLICK_DELAY) {
timer = getTimer();
dispatchEvent(new Event("clickDispatch"));
}
}
]]>
</mx:Script>
</mx:Image>