Main.as
package
{
import flash.display.Sprite;
public class Main extends Sprite
{
private var btn:TestBtn;
private var changeBtn:TestBtn;
public function Main()
{
btn = new TestBtn(0x0000ff);
btn.onClick = function():void
{
trace("A");
prevFunction = btn.onClick;
};
addChild(btn);
changeBtn = new TestBtn(0x00ffff);
changeBtn.onClick = changeSet;
addChild(changeBtn);
changeBtn.x = 100;
}
private var prevFunction:Function;
private var _isChange:Boolean;
private function changeSet():void
{
_isChange = !_isChange;
if(_isChange){
btn.onClick = function():void
{
trace("B");
};
}else{
btn.onClick = prevFunction;
prevFunction = null;
}
}
}
}
TestBtn
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
public class TestBtn extends Sprite
{
public function TestBtn( $color:uint )
{
super();
buttonMode = true;
graphics.beginFill( $color );
graphics.drawRect(0, 0, 50, 50);
graphics.endFill();
addEventListener( MouseEvent.CLICK, btnClick);
}
public var onClick:Function;
protected function btnClick(event:MouseEvent):void
{
if(onClick != null)
onClick();
}
}
}
'ActionScript3.0 > As3.0' 카테고리의 다른 글
localToGlobal (0) | 2013.03.14 |
---|---|
Function 전달. (0) | 2013.03.06 |
FLV 재생의 원리. (3) | 2010.09.02 |
플래시 기준으로 경로 맞추기 (0) | 2010.06.23 |
input 텍스트 박스, 파이어폭스에서 한글 깨짐 방지. (0) | 2010.06.17 |