最近、ScenarioManagerというクラスを作っています。主な目的は、Flashアニメーションの実行順序管理です。ターゲットとなるオブジェクトと、そのメソッド、パラメータ、送出するイベントを1つの固まりをScenarioクラスとします。このScenarioクラスのインスタンスをScenarioManagerへ登録していき、Scenarioクラスのインスタンス変数として指定したイベントが送出されるとScenarioManagerへ登録された次のScenarioクラスのインスタンスが処理されます。登録イメージは以下のようになります。 serialメソッドでScenarioを直列に登録し、parallelメソッドで並列に登録します。ActionScript3では真の並列処理は実装されていません。ここでの並列とは、一度に複数のアニメーションを実行し、それらのアニメーションの終了イベントを待ってから次のアニメーションを実行する、といった場面での使用を想定しています。
1つ1つのScenarioクラスのイメージは以下のようになります。 targetが実行したいメソッドを持つオブジェクト。methodが実行したいメソッド。parametersがメソッドに渡す引数。eventNameがmethod完了時に、targetが送出するイベント名称。eventSumが送出されるイベントの数です。 すべてのイベントが完了すると、Scenarioクラスのインスタンス自体がEvent.COMPLETEイベントを送出し、ScenaioManagerクラスのインスタンスへ登録された次のScenarioクラスのインスタンスが処理の対象となります。
次回はサンプルコードを紹介します。