修士論文も一区切りつき、何か新しいことをやってみたい気分に。
そんな訳で、やってみましたProgression。
バージョンは、最新版(4.0.22)のを使ってます。
開発環境はFlashDevelopにPorgression用テンプレートを導入して利用しています。
とりあえず、サンプルを改造して簡単なのを作ってみました。(こんな感じ)。
ページ遷移あたりの管理をぜんぶやってくれるので、すっごい楽。
ただ、つまづいた点がいくつかあったのでそれをメモしておきます。
1.プリローダーの挙動
今回プリローダーはテンプレ通りCastPreloaderを継承して作っています。
そして、CastPreloaderクラスはswfのロードが終わった時点でatCastLoadComplete()が実行されるようになってます。
んで、ここで問題が。
CastPreloaderクラスではatCastLoadComplete()が実行し終わるとすぐに、ロードしたswfをaddChildするみたいです。
個人的には自分の好きなタイミングでaddChildしたいので、勝手にやられるのは困る。
ってことで、atCastLoadComplete()の中のaddCommand()に、任意のタイミングまで処理を待機するコマンドを追加してあげます。
今回は、Progressionに用意されているListenコマンドを使いました。
これは、指定されたEventDispatcherが指定されたイベントを送出するまで待機処理を行うコマンドクラスです。
これを使って、下のような感じで書いてみました。
// 適当な文字列を用意
private static const LOAD_FINISH_EVENT:String = "LOAD_FINISH_EVENT";
// オブジェクトが読み込みを完了した瞬間に送出
override protected function atCastLoadComplete():void
{
addCommand
(
// 待機処理
new Listen(this, LOAD_FINISH_EVENT,{timeOut : 0}),
// 他のコマンドを追加
);
}
あとは好きなタイミングで、
// 待機状態を解除 dispatchEvent(new Event(LOAD_FINISH_EVENT));
を実行すれば待機処理が終わって処理が続行。
とりあえず、これで思った通りに動いてます。
この部分、他の人はどうやってるんだろうなー。
2.「インデックスシーン」と「戻るボタン」
作ったものをブラウザで見たときにおかしな挙動を発見。
ブラウザの戻るボタンであるシーンからインデックスシーンへ戻ろうとすると、画面遷移が行われませんでした。
これについては、フォーラムに解決策が投稿されていたので、その通りに直したところ無事解決。
よかった。
そんな訳で、初めてのProgressionでした。
使いこなせるように色々といじっていきたいです。
今回のソース一式はこちらです。
