Air (Flex) で XML でコンフィグを書く


Airでなんか作るときにローカルにXMLの設定ファイル的なものを
外だしして適宜変更したいみたいな時にFlexでは

myRequest = new URLRequest(targetUrl);
myLoader = new URLLoader(myRequest);
myLoader.addEventListener(Event.COMPLETE,myXMLData);

public function myXMLData(evt:Event):void {
    var myXML:XML = XML(evt.target.result);
}

みたいにしてたんですが、
もっといい方法がありました。

<mx:Model id="mySetting" source="setting.xml"/>

MXMLにこれだけ追加すればOK。
これで mySetting.title とかいう風にXMLを直接オブジェクトで操作することができます。

ただリファレンスにも書いてあるように色々と注意点はありそうです。
http://livedocs.adobe.com/flex/3_jp/langref/mxml/model.html

ここで、source はデータモデルの外部ソース(ファイルなど)を指定します。
外部ソースには、静的データおよびデータバインディング式を含めることができます。
source プロパティで参照されるファイルは、クライアントコンピュータではなくサーバーに存在します。
コンパイラはソース値を読み取り、ソースをアプリケーションにコンパイルします。
source 値は実行時には読み取られません。

たぶんコンパイルしたファイルと同じサーバに置いておく必要があり、かつ実行時に動的に変更かけるとおかしくなるのかな?
ちょっとそこまでは試していませんが、注意はしないといけないかと。


Leave a Reply