Progression + WordPress の連携(Progression編)

2010年9月18日 06:17

前回のエントリーの続きです。
ここでは、Progression(Flash) 側の処理について書きます。
Flash 側での処理はそんなに難しくなく、
通常の XML 処理プラスアルファといった感じです。
ポイントは以下の2点です。

  • 構築用 XML(PRML 形式)の読み込みによるシーン生成
  • 各シーンでの XML 読み込み

まず、Index.as 内で WordPress 側で生成した
シーン構築用 XML(PRML 形式) を読み込み、シーンを生成します。

Index.as のコンストラクタ内では、XML で関連付けている
シーン用のクラスを宣言しておきます。

public function Index() {
    super( null, null, new WebConfig() );
    
    // XML で関連づけているシーン用のクラスを宣言しておく
    IndexScene;
    EntryScene;
    CategoryScene;
}

構築用 XML の読み込みは Index.as の atReady 内で行います。
読み込むだけで、シーンが自動的に生成されます。

override protected function atReady():void {
    _pl = new PRMLLoader(this);
    _pl.addEventListener(Event.COMPLETE, onPRMLComplete);
    _pl.load(new URLRequest("http://www.littlepad.net/demo/progwp/?page_id=11"));
}

シーン構築用 XML でシーンデータと一緒に読み込んだ
各ページ個別データを記述した XML ファイルのパスを読み込み処理します。
シングルページの処理が一番簡単なので、サンプルにあげておきます。

override protected function atSceneInit():void {
    var xmlPath:String = String(this.dataHolder.data);
    addCommand(
        new LoadURL( new URLRequest(xmlPath) ),
        new Func( function():void {
            var xml:XML = new XML(this.latestData);
            _page = new EntryPage( { title: xml.elements("title"), entry: xml.elements("etnry") } );
            insertCommand(
                new AddChild( container, _page )
            );
        })
    );
}

シーンに渡されたデータ(XML パス)は dataHolder.data に格納されているので、
それを元にデータを抽出しています。
ここでは、シングルページの記事タイトルと記事データを initObject として
EntryPage クラスに渡し、実際のレイアウト処理は EntryPage 内で行っています。

他のページも基本的にはこの流れで処理を行っています。

コメントはまだありません

No comments yet.

TrackBack URL

Leave a comment