今回はProgression3に用意されているコマンドクラスとキャストオブジェクトを紹介します。
これらを上手く用いることで劇的に開発スピードを高めることができます。今回紹介するもの以外にも多数用意されていますので、ドキュメントに目を通すことをお勧めします。
コマンドクラス
以下、使用頻度が高いと思われるコマンドクラスを紹介します。
Traceコマンド
Traceコマンドは、デバッグ時に出力されるtrace文を出力するコマンドクラスです。コマンドの動作に慣れないうちは、このコマンドを多用し、どのような流れでコマンドが動作するのか見ながら制作を行うと良いでしょう。
コマンド内で以下のように記述します。
Waitコマンド
Waitコマンドは、一定時間処理を待機させるコマンドクラスです。単位はミリ秒で指定します。遅延処理を行いたい場合に使用します。
以下に、1秒枚にTrace文を出力する処理の記述例を示します。
AddChild、AddChildAtコマンド
AddChildコマンドは、表示リストにオブジェクトを追加するためのコマンドクラスです。
コマンド内で以下のように記述します。
AddChildコマンドは、ActionScript3の通常のaddChildメソッドと大きく異なる動作はしませんが、表示リストのインデックス位置を指定できるAddChildAtコマンドが非常に秀逸な作りとなっています。
AddChildAtコマンドはコマンド内で以下のように記述します。
ActionScript3の通常のaddChildAtメソッドと異なる点は、表示リストのインデックスの扱いです。
通常、ActionScript3のaddChildAtメソッドはインデックスを飛ばして設定することができません。
例えば、以下のようなソースコードはエラーとなります。インデックス2がいきなり指定されているためです。
しかし、ProgressionのAddChildAtコマンドは以下のように記述することが可能です。
存在しないインデックス2を指定しても、問題無く作られています。
ActionScript2では表示の重ね順をコントロールするため、大きなインデックス番号を与えて、常に前面に表示するといった作り方ができましたが、ActionScript3では表示リストの扱い方が変更となったため、そのような作り方はできませんでした。
ProgressionのAddChildAtコマンドはActionScript2寄りの記述が出来るように作られています。
RemoveChild、RemoveAllChildrenコマンド
RemoveChildコマンドは表示リストから対象オブジェクトを削除します。
コマンド内で以下のように記述します。
特筆すべきは、RemoveAllChildrenコマンドが用意されている点です。これは対象オブジェクトの子オブジェクトをすべて削除するコマンドです。
以下のように記述することで、対象コンテナの子表示オブジェクトをすべて削除することができます。
DoTween、DoTweenerコマンド
DoTween、DoTweenerコマンドは、イージング動作を提供してくれるコマンドクラスです[1]。DoTweenコマンドはfl.transitions パッケージ、DoTweenerコマンドはTweenerというActionScriptのライブラリの機能を提供してくれます。
特に、DoTweenerコマンドは、元となるTweenerがフィルターやカラーショートカットにも対応し非常に高機能で、多くの場面で活用できます。
以下に、1秒かけて座標(100,100)へ移動するための記述例を示します。
DoTweenコマンドの例
DoTweenerコマンドの例
Propコマンド
Propコマンドは対象オブジェクトのプロパティを設定するコマンドクラスです。一度に大量のプロパティを設定する場合や、コマンド実行内でプロパティの変更を行いたい場合に便利な機能です。
以下に、座標(100,100),透明度0の状態にしておいて、1秒かけて座標(200,200)に移動し透明度を不透明に変化させる場合の記述例を示します。
LoadURLコマンド
LoadURLコマンドは、XMLファイルやテキストファイル等の外部ファイルを取得するために使用するコマンドクラスです。このコマンドクラスに当該ファイルのURLRequestインスタンスを指定するだけで、簡単に外部ファイルが取得できます。
コマンド内で以下のように記述します。
取得したデータは自身のdataプロパティ、コマンドクラスのlatestDataプロパティで取得します。
また、bytesLoaded、bytsTotalといったプロパティを持っていますので、ロード最中の処理を簡単に実装することも可能です。
LoadChild、LoadChildAtコマンド
LoadChildコマンドは、表示リストに指定したURLのswf、JPEG、GIF、または PNGファイルを追加するためのコマンドクラスです。LoadChildAtコマンドは、LoadChildコマンドにAddChildAtコマンド同様、表示リストの指定インデックスにswfファイルを読み込みます。
コマンド内で以下のように記述します。
以上、コマンドクラスの紹介でした。使いこなすことが出来ると非常に便利ですので、是非色々触ってみてください。
キャストオブジェクト
次に、使用頻度が高いと思われるキャストオブジェクトを紹介します。キャストオブジェクトは通常、用意されているキャストオブジェクトクラスを継承して使用します。
キャストオブジェクトのソースコードを全て載せると非常に冗長となってしまうため、ここでは用意されているキャストオブジェクトの紹介のみに留めます。
CastMovieClip、CastSprite
キャストオブジェクトの中でも使用頻度が高くなるのが、CastMovieClip、CastSpriteです。MovieClip、Spriteにそれぞれ対応しており、それぞれAddChildコマンド、RemoveChildコマンドで表示リストに追加、削除した際のイベントの連携を行うことができます。
例えば、呼び出し元が以下コードだとします。
そして、CastSpriteを継承したmyCastSpriteの_onCastAddedを以下のようにオーバーライドします。
これを実行すると、以下の順番で出力されます。
呼び出し元のコマンドでキャストオブジェクトを追加→キャストオブジェクトの追加イベント→呼び出し元の次のコマンドという順に実行されるのです。これがキャストオブジェクトの大きなポイントです。
CastBitmap
BitmapDataを表示するためのキャストオブジェクトです。
CastSprite同様に表示リストに追加、削除した際のイベントの連携を行うことができます。
CastImageLoader
画像ファイルのLoaderオブジェクトを表示するためのキャストオブジェクトです。
CastSprite同様に表示リストに追加、削除した際のイベントの連携の他にロードの開始、完了といった際のイベント連携が可能です。
CastButton
CastButtonオブジェクトはボタンの機能に特化したキャストオブジェクトです。ロールオーバー、ロールアウト、ダウン、アップの処理を簡潔に記述でき、クリック時の外部URLへの遷移やツールチップの設定が可能で、シーンIDの設定のみでクリック時にシーンの移動をさせることができます。
シーン間の移動をボタンで行う場合は、このオブジェクトを使用するのが一般的です。以下に、記述例を示します。
以上、キャストオブジェクトの紹介でした。
今回紹介したキャストオブジェクト以外にもまだ用意されているキャストオブジェクトはあります。表示オブジェクトに関しましては一通り揃っておりますので、適材適所で使用するのが良いでしょう。
駆け足となりましたが、今回はこれで終了です。
次回からはProgressionを用いて簡単なウェブサイトを作成します。お楽しみに!