[Flash/ActionScript] 5일차 - DisplayObject 움직임
1. 엔터프레임을 이용한 움직임
import flash.display.MovieClip;
import flash.events.Event;
var mc:MovieClip = this.getChildByName("mc") as MovieClip;
var speed:Number = int(Math.random()*4)+1; // 1~4 사이의 값을 임의로 생성
this.addEventListener(Event.ENTER_FRAME, enterFrameListener);
trace(speed);
function enterFrameListener(ev:Event):void{
mc.x += speed;
}
2. 감속공식을 이용한 움직임
import flash.events.Event;
this.y = 100;
this.x = 0;
this.addEventListener(Event.ENTER_FRAME, enterFrameListener);
function enterFrameListener(ev:Event):void{
//감속공식 : 현재위치 = 현재위치 +(목적지-현재위치)*0.5
//현재값 += ( 타깃값 - 현재값)* 0보다 크고 1보다 작은 상수
this.x += ((stage.stageWidth-this.width)-this.x)*0.05;
}
3. 마우스를 부드럽게 따라다니는 무비클립
import flash.display.MovieClip;
import flash.events.Event;
var mc:MovieClip = this.getChildByName("mc") as MovieClip;
mc.addEventListener(Event.ENTER_FRAME, enterFrameListener);
function enterFrameListener(ev:Event):void{
mc.x += (this.mouseX - mc.x) * 0.3;
mc.y += (this.mouseY - mc.y) * 0.3;
}
4.일정시간으로 반복호출
//Stage 메인타임라인
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.display.MovieClip;
var timer:Timer = new Timer(200); //이멘트가 0.2초마다 무한정 발생하는 타이머객체를 생성
timer.addEventListener(TimerEvent.TIMER, timerListener);
timer.start(); //이벤트 등록
function timerListener(ev:TimerEvent):void{
var snow:MovieClip = new Snow() as MovieClip;
snow.x = Math.random() * stage.stageWidth;
snow.y = -(snow.height /2);
this.addChild(snow);
}
//Snow 무비클립
import com.greensock.easing.Linear;
import com.greensock.TweenLite;
this.scaleX = this.scaleY = Math.random(); //객체의 크기를 랜덤하게변경
var time:Number = Math.random()*3+3; //화면이동속도를 랜덤하게정의(3~6)
var tgrotation:Number = Math.random()*180-90; 회전값을 임의로 정의(-90~90)
var tgX:Number = this.x + Math.random()*100-50; //이동할 x좌표를 현재좌표 근처 (-50~50)으로 정의
TweenLite.to(this, time, {
x:tgX,
y:stage.stageHeight+this.height/2,
rotaion:tgrotation,
ease:Linear.easeNone,
onComplete:remove //종료되면 remove 함수호출
});
function remove():void{
parent.removeChild(this); //자신을 부모컨테이너에서 빼내어 사라지게 한다.
}
댓글
댓글 쓰기