[AS3] ActionScript 3.0 첫 프로그래밍

Programming/ActionScript 3.0 2007. 6. 13. 02:36
늦은 감이 없지 않지만 처음으로 AS3를 가지고 코딩을 해봤다. 간단한 결과물이지만 여러 가지로 사소한 것부터 이벤트 처리에 이르기까지 적지 않게 AS2에서 AS3으로 migration한 것을 볼 수가 있는데 이 결과물을 만들고 보니 참 재미있다는 생각이 든다. 플래시의 actionscirpt의 변천사를 보면 참으로 잘 짜여진 시나리오라는 생각과 동시에 엄청난 잔머리의 위대함이라는 생각도 들기 때문이다.

간단한 코딩이지만 직접 접하고 보니 이제야 비로소 정리가 되는 듯 하다. 기존에 호환성 문제로 인해서 불필요하게 사용되었던 군더더기가 많이 빠지고 깔끔해 졌다는 느낌이다. 형식적이고 자율적인 구조로 인해서 혼돈이 왔던 부분들은 간결한 형태로 변화되었고 그 형태 또한 만족스럽다.

하지만 그 동안 편리하게 사용되었던 기능들도 그러한 진화를 바탕으로 다소 불편한 부분도 없지 않다. 그러나 그 불편함 또한 개발자에게 동기와 목적을 확실하게 이미지화 하기 때문에 납득할 만한 변화라는 생각이다.

앞으로 플래시를 사용하는 모든 분야의 발 빠른 변화가 상당히 재미있어질 것 같다…

[Flash] http://jasu.tistory.com/attachment/cfile30.uf@222F35385880210F23FEAD.swf





// Rec.as
package{
import flash.display.MovieClip;
import flash.events.MouseEvent;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;

public class Rec extends MovieClip{
public function Rec(){
trace(this.name +" is created");
this._mc.buttonMode = true;
this._mc.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
this._mc.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
this._mc.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
this._mc.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
this._mc.addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler);
}
private function mouseDownHandler(event:MouseEvent):void{
trace(this.name + " : mouseDownHandler");
this.startDrag();
}
private function mouseOutHandler(event:MouseEvent):void{
trace(this.name + " : mouseOutHandler");
var myTween:Tween = new Tween(this, "scaleX", Elastic.easeInOut, this.scaleX, 1, 1, true);
var myTween2:Tween = new Tween(this, "scaleY", Elastic.easeInOut, this.scaleY, 1, 1, true);
}
private function mouseOverHandler(event:MouseEvent):void{
trace(this.name + " : mouseOverHandler");
var topPosition:uint = this.parent.numChildren - 1;
this.parent.setChildIndex(this, topPosition);
var myTween:Tween = new Tween(this, "scaleX", Elastic.easeInOut, this.scaleX, 1.4, 0.7, true);
var myTween2:Tween = new Tween(this, "scaleY", Elastic.easeInOut, this.scaleY, 1.4, 0.7, true);
}
private function mouseUpHandler(event:MouseEvent):void{
trace(this.name + " : mouseUpHandler");
this.stopDrag();
}
private function mouseWheelHandler(event:MouseEvent):void{
trace(this.name + " : mouseWheelHandler");
}
}
}

// RecDocumentClass

package{
import flash.display.Sprite;
import flash.display.MovieClip;
public class RecDocumentClass extends MovieClip{
private var rootChild:Sprite;
public function RecDocumentClass(){
rootChild = new Sprite();
addChild(rootChild);
init();
}
private function init():void{
var Rec1:Rec = new Rec();
Rec1.x = Rec1.y = 100;
rootChild.addChild(Rec1);

var Rec2:Rec = new Rec();
Rec2.x = Rec2.y = 200;
rootChild.addChild(Rec2);

}
}
}





    

설정

트랙백

댓글