さて今回は,早速Progressionを使用して,実際に動くサンプルを作成しながら,Progressionが持っている特徴的な機能を説明してきます。
なお,今回の説明するサンプルを以下に用意しました。
Progressionを構成する3つの機能
サンプルを作成する前に,Progressionは大きく3つの機能により成り立っているという点をお話しします。
その3つの機能とは,以下のものです。
- シーン
- コマンド
- キャスト
この3つの機能を理解することが,Progressionを理解する上で非常に重要になってきます。
シーン
Progressionのシーンとは,1つの場面を表現する機能です。
複数のHTMLファイルで構成される一般的なWebサイトのように,複数のシーンの階層構造でWebサイトを構築できるようになります。
Progressionには,シーン間のシームレスな移動,各シーンの参照やシーン毎のアドレス発行など,様々な機能が実装されています。Progressionの中心機能といってもいいでしょう。
ProgressionでFlashコンテンツを作成する際は,最初に,シーン構造を考えることから始めます。
コマンド
コマンドとは処理を登録し,実行するための機能です。
オブジェクトを表示させたり,移動させたり,データを読み込んだりといった処理を簡潔に分かりやすく記述できるようになります。
主要な処理には用意されているコマンドを利用しますが,自作のコマンドを制作することも可能です。
キャスト
キャストとは,Progressionで用意されているオブジェクトの総称です(一般的なプログラム言語で用いられる,型変換のキャストとは違います)。
呼び出し元ではなく,キャストオブジェクト側に出現時や退出時の処理を記述することができます。
3つの機能の関係
さて,ザックリ3つの機能の説明をしましたが,まだ,何のことかサッパリ分からない方も多いのではないでしょうか?
以前,Progression開発者の阿部さんがTwitter上で“プログレ(監督),シーン(舞台),コマンド(脚本,演技指導),キャスト(役者)ですねー”といった発言をしていましたが,これが一番分かりやすく説明できる表現になると思います。
これを図で表してみましょう。
現時点では,なんとなくで良いので,Progressionはシーン,コマンド,キャストという機能で成り立っているということだけ把握してもらえれば十分です。サンプルの作成を進めながら理解を深めていきましょう。
早速コマンドの動作を見てみる
今回は,コマンドの動作から見ていきます。
前回作成したプロジェクトのIndexScene.asの42行目,_onInitメソッド内に以下のとおりに記述してください。
リスト1
protected override function _onInit():void {
// 実行したいコマンドを登録します。
addCommand(
new Trace("初めてのコマンド"),
new Wait(1000),
new Trace("1秒待ちました"),
new Wait(1000),
new Trace("もう1秒待ちました")
);
}
そして,Flashでムービープレビューをしてみましょう。出力パネルに1秒毎にtrace文が出力されたと思います。
これは,trace文を出力するTraceコマンドと,指定時間処理待ちをするWaitコマンドを利用しています(各コマンドの解説は次回連載で行います)。
実際動かしてみると分かりますが,Progressionのコマンドは処理の流れを制御する仕組みを提供してくれます。
次に,以下のように変えてムービープレビューをしてみましょう。
リスト2
protected override function _onInit():void {
// 実行したいコマンドを登録します。
addCommand(
new Trace("初めてのコマンド"),
new Wait(1000),
[
new Trace("1秒待ちました"),
new Wait(1000),
new Trace("これは同時に実行されます")
]
);
}
どうでしょうか? [ ]で括られた中のコマンドは全て同時に実行されているのが分かると思います。
順番に処理させるものをシリアルリスト,同時実行させるものをパラレルリストと呼び,これらを組み合わせて,複雑な処理フローを実現させることができるようになります。

