Home > ActionScript3.0 | Progression > PRMLLoaderとaddSceneFromXMLの使い分け

PRMLLoaderとaddSceneFromXMLの使い分け


PRMLLoaderを使ってみました。

今回も前回と同様、ダウンロードしてきたクラス制作用のデータを使うことにします。

  1. 前回、IndexSceneに記述したAboutSceneとContactSceneの変数宣言をコメントアウトしておきます
  2. IndexSceneのaddCommand内に記述したnew LoadURL~のくだりもコメントアウトしておきます

XMLを用意(今回はIndexSceneも記述)

<?xml version="1.0" encoding="utf-8"?>
<prml version="2.0.0" type="text/prml">
<scene name="index" cls="myproject.IndexScene">
	<scene name="about" cls="myproject.AboutScene">
	</scene>
	<scene name="contact" cls="myproject.ContactScene">
	</scene>
</scene>
</prml>

マニュアルによると、PRMLLoaderはProgressionインスタンスを作成とあるので、今回はIndex.asにスクリプトを記述することになるかと…

で、以下のようにクラスファイルの読み込みを追加しておきます。

import flash.net.URLRequest;
import flash.events.Event;

変数宣言をしておきます。

public class Index extends CastDocument {
		
		private var _index:IndexScene;
		private var _about:AboutScene;
		private var _contact:ContactScene;
		/*======================================================================*//**
		 * Progression インスタンスを取得します。
		 */
		//public var prog:Progression;

デフォルトの状態で記述されているprogは今回は必要ないので、コメントアウトしておきます。

_onInit()内に以下を記述。

var loader:PRMLLoader = new PRMLLoader(stage,new URLRequest("data.xml"));
loader.addEventListener(Event.COMPLETE,function(e:Event):void{
    trace(loader.progression.root.toXMLString());
});
			
// Progression インスタンスを作成します。
//prog = new Progression( "index", stage, IndexScene );
			
// ブラウザ再生時に URL 同期を有効化します。
//prog.sync = false;
			
// 最初のシーンに移動します。
//prog.goto( prog.firstSceneId );

Progressionインスタンスを作成以下の記述は、今回は使わないので、これもコメントアウトしておきます。

この状態でパブリッシュしてみると、出力パネルの表示はこんな感じになります。

Progression 3.0.3
Copyright (c) 2007-2008 taka:nium, supported by Spark project.

<scene name="index" cls="myproject.IndexScene" title="index">
  <scene name="about" cls="myproject.AboutScene" title="index | about"/>
  <scene name="contact" cls="myproject.ContactScene" title="index | contact"/>
</scene>

上手くいきました。

XMLファイルの読み込みが終わると、自動的にIndexSceneに移動してくれるし、ボタンも問題なく動作します。

以上のことから判断すると、一気に全シーンを作成したい場合はPRMLLoader。任意の(シーンの)子シーンを作成したい場合は、addSceneFromXMLを使うのかな? と個人的に思っています。(正しいのかは分かりませんが…)

Comments:2

匿名 08-10-21 (火) 22:43

イージーキャスティング→コンポーネントベースでしたね。。
失礼しました。

あつのすけさんのエントリスピードに驚きです!

私は今週中にコンポーネントベースのシーンエディター触ってみようかと思ってます。(実はまだシーンエディターのウインドウを開いてすらいないんです。。。)

あつのすけ 08-10-21 (火) 23:02

コメントを頂いた時に、ちょうどPRMLLoaderを用いて(サンプルが)動いたところだったもので、そのときの勢いのままエントリしてしまいました。

その後、taka_niumさまからもアドバイスを頂きまして、「僕の考えでいいみたい…」とちょっと嬉しくなっていました。

Progression3をダウンロードして最初に、僕はシーンエディタを触ってみましたね。
シーンエディタからMovieClipシンボルを作成とかも出来ちゃいますからねぇ…
Progression2の時にはなかった機能だったので、「すげぇ~」と感動した覚えがあります。

奥が深いですね、Progression。

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://flabaka.com/blog/wp-trackback.php?p=282
Listed below are links to weblogs that reference
PRMLLoaderとaddSceneFromXMLの使い分け from flabaka

Home > ActionScript3.0 | Progression > PRMLLoaderとaddSceneFromXMLの使い分け

Search
Feeds
Meta

flashDevelopスポンサー

Return to page top