読者です 読者をやめる 読者になる 読者になる

pblog

pplog.net を作っている @ppworks こと越川直人(Koshikawa Naoto)のブログ。esa LLCで働いてます(\\( ⁰⊖⁰)/)

アニメーションの実行順序を管理したい1

Actionscript3

最近、ScenarioManagerというクラスを作っています。主な目的は、Flashアニメーションの実行順序管理です。ターゲットとなるオブジェクトと、そのメソッド、パラメータ、送出するイベントを1つの固まりをScenarioクラスとします。このScenarioクラスのインスタンスをScenarioManagerへ登録していき、Scenarioクラスのインスタンス変数として指定したイベントが送出されるとScenarioManagerへ登録された次のScenarioクラスのインスタンスが処理されます。登録イメージは以下のようになります。
f:id:naoto5959:20081211232821p:image
serialメソッドでScenarioを直列に登録し、parallelメソッドで並列に登録します。ActionScript3では真の並列処理は実装されていません。ここでの並列とは、一度に複数のアニメーションを実行し、それらのアニメーションの終了イベントを待ってから次のアニメーションを実行する、といった場面での使用を想定しています。

1つ1つのScenarioクラスのイメージは以下のようになります。
f:id:naoto5959:20081211234017p:image
targetが実行したいメソッドを持つオブジェクト。methodが実行したいメソッド。parametersがメソッドに渡す引数。eventNameがmethod完了時に、targetが送出するイベント名称。eventSumが送出されるイベントの数です。
f:id:naoto5959:20081211232819p:image
すべてのイベントが完了すると、Scenarioクラスのインスタンス自体がEvent.COMPLETEイベントを送出し、ScenaioManagerクラスのインスタンスへ登録された次のScenarioクラスのインスタンスが処理の対象となります。

次回はサンプルコードを紹介します。