この1フレームが再生される度に、ENTER_FRAMEというイベントが発生する。FrameRateが24ならば、1秒間に最大24回発生すると期待できる。フレームごとに何か処理したいとき、このイベントのイベントリスナーを実装すればよい。コードによって何かアニメーションをさせたいときに、多用されるイベントの1つだ。
次は、Shapeオブジェクトで作成された矩形を右へ動かすだけの単純なサンプルである。右端に到着したら、左端に戻るようになっている。
package {
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
[SWF(width="240",height="180",frameRate="24",backgroundColor="0x336699")]
public class EnterFrame extends Sprite {
private var _shape:Shape;
public function EnterFrame() {
_shape = new Shape();
_shape.graphics.beginFill(0x339900);
_shape.graphics.drawRoundRect(0,0,10,10,5);
_shape.graphics.endFill();
_shape.y = 100;
addChild(_shape);
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
private function enterFrameHandler(event:Event):void {
_shape.x += 5;
if (_shape.x > 240) {
_shape.x = 0;
}
}
}
}
次回は、このENTER_FRAMEをもう少し、一般化してみたい。