ActionScript 3.0入門ノート CS4でタグ「ENTER_FRAME」が付けられているもの

(section04-01 イベントとイベントリスナーから抜粋)

 インスタンスがぐるぐる回転するといったアニメーションを作る場合にもイベント処理を利用します。インスタンスをぐるぐる回転させるには、インスタンスの回転角度を加算するリスナー関数を繰り返し発生するイベントで繰り返し呼び出せばよいわけです。
 フレームレートに合わせて繰り返し発生するフレーム再生イベントは、アニメーションで利用する繰り返しイベントとして最適なイベントです。次のスクリプトではbox_mcのフレーム再生イベントにstepRotation()をリスナー関数として追加しています。stepRotation()が実行されるたびにbox_mcが2度ずつ回転することから、box_mcはぐるぐる回り続けます。

[:script:]box_mcがぐるぐる回り続ける
box_mc.addEventListener(Event.ENTER_FRAME, stepRotation);

//フレーム再生で実行されるリスナー関数
function stepRotation(eventObj:Event):void {
	//box_mcを回転させる
	box_mc.rotation += 2;
}
 なお、Event.ENTER_FRAMEはフレームの移動に合わせて発生するイベントですが、フレームが1フレームしかない場合やstop()でフレーム移動を停止している場合にもフレームレートに合わせて継続的にイベントが発生します。
(section07-02 表示リストから抜粋)

 表示オブジェクトをメモリから消去する場合、イベントのリスナー関数を登録したままだとイベントが発生したタイミングで参照エラーになるので注意が必要です。表示オブジェクトを表示リストから取り除く際には、登録しておいたイベントのリスナー関数を忘れずに取り除かなければなりません。Event.ENTER_FRAMEイベントなどは表示リストに登録していなくてもイベントが発生します。
 次のサンプルは、FlowerAクラスのインスタンスを再生イベントの繰り返しを利用して作成し、ステージの上から下へと回転しながら降らせるムービーです。このサンプルではインスタンスを大量に作成しますが、作成してすぐに表示リストに追加するので、アニメーションの途中でメモリから消去されてエラーになることはありません。また、インスタンスを回転しながら降らせるためにインスタンスに再生イベントのリスナーonFrowerStep()を登録していますが、表示リストから消去する前にこのリスナー関数も取り除いています。

fig07-02-09b.jpgswfを試す

まったく新しいAS3の世界!
694a.jpg
Adobe Flash CS4
詳細!ActionScript3.0入門ノート[完全改訂版](CD-ROM付)

楽しいActionScript。
新たなる1歩へと踏み出しましょう。
■内容は?→ 目次を見る
■評判は?→ 書評を読む
この本を書いたわけ

タグ

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

あわせて読みたいブログパーツ