今回はProgression3に用意されているコマンドクラスとキャストオブジェクトを紹介します。
これらを上手く用いることで劇的に開発スピードを高めることができます。今回紹介するもの以外にも多数用意されていますので,ドキュメントに目を通すことをお勧めします。
コマンドクラス
以下,使用頻度が高いと思われるコマンドクラスを紹介します。
Traceコマンド
Traceコマンドは,デバッグ時に出力されるtrace文を出力するコマンドクラスです。コマンドの動作に慣れないうちは,このコマンドを多用し,どのような流れでコマンドが動作するのか見ながら制作を行うと良いでしょう。
コマンド内で以下のように記述します。
リスト1
addCommand(
new Trace(“出力させたい文字列”)
)
Waitコマンド
Waitコマンドは,一定時間処理を待機させるコマンドクラスです。単位はミリ秒で指定します。遅延処理を行いたい場合に使用します。
以下に,1秒枚にTrace文を出力する処理の記述例を示します。
リスト2
addCommand(
new Wait(1000),
new Trace(“1秒待ちました”),
new Wait(1000),
new Trace(“もう一回1秒待ちました”),
)
AddChild,AddChildAtコマンド
AddChildコマンドは,表示リストにオブジェクトを追加するためのコマンドクラスです。
コマンド内で以下のように記述します。
リスト3
addCommand(
new AddChild(コンテナ,オブジェクト)
)
AddChildコマンドは,ActionScript3の通常のaddChildメソッドと大きく異なる動作はしませんが,表示リストのインデックス位置を指定できるAddChildAtコマンドが非常に秀逸な作りとなっています。
AddChildAtコマンドはコマンド内で以下のように記述します。
リスト4
addCommand(
new AddChildAt(コンテナ,オブジェクト,表示インデックス)
);
ActionScript3の通常のaddChildAtメソッドと異なる点は,表示リストのインデックスの扱いです。 通常,ActionScript3のaddChildAtメソッドはインデックスを飛ばして設定することができません。
例えば,以下のようなソースコードはエラーとなります。インデックス2がいきなり指定されているためです。
リスト5
addChildAt(_container,_object1,2);
addChildAt(_container,_object2,1);
しかし,ProgressionのAddChildAtコマンドは以下のように記述することが可能です。
リスト6
addCommand(
new AddChildAt(_container,_object1,2)
new AddChildAt(_container,_object2,1)
);
存在しないインデックス2を指定しても,問題無く作られています。
ActionScript2では表示の重ね順をコントロールするため,大きなインデックス番号を与えて,常に前面に表示するといった作り方ができましたが,ActionScript3では表示リストの扱い方が変更となったため,そのような作り方はできませんでした。
ProgressionのAddChildAtコマンドはActionScript2寄りの記述が出来るように作られています。
RemoveChild,RemoveAllChildrenコマンド
RemoveChildコマンドは表示リストから対象オブジェクトを削除します。
コマンド内で以下のように記述します。
リスト7
addCommand(
new RemoveChild(コンテナ,オブジェクト)
)
特筆すべきは,RemoveAllChildrenコマンドが用意されている点です。これは対象オブジェクトの子オブジェクトをすべて削除するコマンドです。
以下のように記述することで,対象コンテナの子表示オブジェクトをすべて削除することができます。
リスト8
addCommand(
new RemoveAllChildren (コンテナ)
)

