as3_XMLを読み込む

actionscript3.0になってからXML関連がとても扱いやすくなりました。
E4Xというものでアクセスできるとか

まずASのXML読み込み処理自体はこんな感じで、URL Requestを作って読み込ます。

var url : URLRequest = new URLRequest("読みたいファイル名.xml");
url_loader = new URLLoader();
url_loader.load(url);
url_loader.addEventListener (Event.COMPLETE,LoaderInfoCompleteFunc);

//読み込みが終わったら
function LoaderInfoCompleteFunc (event : Event) {
	var loadxml:XML = new XML(url_loader.data);
	/*
		いろいろ処理
	*/
}

いろいろ処理の部分でXMLを解析して様々な処理をするんですが
そこが目的のデータにアクセスがしやすくなってます。
基本は. で階層をたどって
@を使うと属性の内容をとれます。

例えばこんなXMLで

<root>
	<shop id="112">
		<name>apple</name>
		<url>http://apple.co.jp</url>
	</shop>
	<shop id="52">
		<name>microsoft</name>
		<url>http://microsoft.co.jp</url>
	</shop>
	<shop id="32">
		<name>sony</name>
		<url>http://sony.co.jp</url>
	</shop>
</root>

2番目のshop の要素idを表示したい場合は

trace(loadxml.shop[1].@id);

結果は52です。

3番目のshop のnameの内容を表示したい場合は

trace(loadxml.shop[2].name);

結果はsony
という感じでドットシンタックスで分かりやすく目的の情報にたどり着けます。

あと、shopノードの数だけ繰り返してnameを表示したい場合は
XMLListを作って

var xmlList:XMLList = loadxml.shop;
for each(var element:XML in xmlList){
	trace(element.name);
}

結果は
apple
microsoft
sony
です。
as2から比べたらとても分かりやすくなりました。

今回のサンプルファイルはこちら



Adobe Flash CS4 詳細!ActionScript3.0入門ノート[完全改訂版](CD-ROM付)

1 comment.

  1. […] 前回のAS3でXML読み込みから、読み込んだだけじゃなにもならないので よく企業ページなどで見かけるスクロールバナーのFLashを外部読み込みXMLで作りました。 […]

Post a comment.