Progression4(正式版)のPRMLLoaderが変わった
以前の記事でPRMLLoaderを使ってシーンを生成した後にmanagerを参照するにはちょっとしたコツがあったんだけど、正式リリースされたProgression4ではそこが改善されてる!ということで、正しいPRMLLoaderの使い方をメモ。
Index.as
public function Index() {
// 自動的に作成される Progression インスタンスの初期設定を行います。
// 生成されたインスタンスにアクセスする場合には manager プロパティを参照してください。
super( null, null, new WebConfig() );
}
まずはIndexクラスのコンストラクタで第1引数と第2引数をnullにする。これは前回と同じ作法。
override protected function atReady():void {
pl= new PRMLLoader(this);
pl.addEventListener(Event.COMPLETE, onPRMLComplete);
pl.load(new URLRequest("xml/prml.xml"));
}
次にatReady関数内でPRMLLoaderをインスタンス化する。今までは第1引数にstageを参照する仕様になってたんだけど、Progression4(正式版)からはDisplayObjectContainerクラスに型が変更されたみたい。ここをthis参照にすることで本来のmanagerに引き継げるようになる。
private function onPRMLComplete( e:Event ):void {
// 開発者用に Progression の動作状況を出力します。
//Debugger.addTarget( manager );
pl.removeEventListener(Event.COMPLETE, onPRMLComplete);
pl= null;
// 外部同期機能を有効化します。
manager.sync = true;
// 最初のシーンに移動します。
manager.goto(manager.syncedSceneId);
}
prml.xmlを読み込んだ後は、どこからでもmanager経由でシーンを参照出来るようになってすごい便利になったよ。