2013/01/10

Flash: Actionscript3でアニメーション ENTER_FRAME Event編

Flash Professionalを使うと、アニメーションはコードで書く必要がなく、TweenをTimeline上で設定すれば簡単にできますが、時にはコードで書く必要があります。

なので、書いてみました。ENTER_FRAME Eventを使っています。
このEventは枚フレーズ毎に来きます(FPSで15を設定した場合、一秒間に15回ということ)。


import flash.geom.Rectangle;

var txtHello:TextField = new TextField();
txtHello.text = "Hello";
txtHello.width = 400;
txtHello.height = 100;

var format:TextFormat=new TextFormat();
format.size = 40;
format.color = 0x000000;
txtHello.setTextFormat(format);
addChild(txtHello);

var btnGoUpDown:Sprite = new Sprite();
btnGoUpDown.graphics.beginFill(0xFFCC00);
btnGoUpDown.graphics.drawRect(200, 200, 100, 50);
btnGoUpDown.graphics.endFill();
this.addChild(btnGoUpDown);

btnGoUpDown.addEventListener(MouseEvent.CLICK, btnGoUpDown_Click);


var blUpDown = false;//true: going down, false: going up

function btnGoUpDown_Click(e:MouseEvent)
{
blUpDown = ! blUpDown;
txtHello.addEventListener(Event.ENTER_FRAME, fl_AnimateVertically);
}

function fl_AnimateVertically(event:Event)
{
if (blUpDown)
{
txtHello.y +=  10;
}
else
{
txtHello.y -=  10;
}

if (txtHello.y == 0)
{
txtHello.removeEventListener(Event.ENTER_FRAME, fl_AnimateVertically);
}
else if (txtHello.y == 300)
{
txtHello.removeEventListener(Event.ENTER_FRAME, fl_AnimateVertically);
}
}



0 件のコメント:

コメントを投稿