ActionScript3でのXML読み込み

ほろほろとActionScript3で遊んでみる。
ネットでXMLを読み込んで、解析するサンプル。

読み込むXML文書
fixtures/data.xml

<?xml version="1.0" encoding="UTF-8" ?>
<unit>
  <motion name="wait">
    <image>data/wait/1.png</image>
    <image>data/wait/2.png</image>
    <image>data/wait/3.png</image>
    <image>data/wait/4.png</image>
    <image>data/wait/5.png</image>
    <image>data/wait/6.png</image>
  </motion>
</unit>

NetXMLSample.as3

package {
  import flash.events.*;
  import flash.net.*;
  
  public class NetXMLSample {

    private var loader:URLLoader;

    public function NetXMLSample() {
      loader = new URLLoader();
      loader.addEventListener(Event.COMPLETE, dataLoad);
      loader.load(new URLRequest('fixtures/data.xml'));
    }
    
    private function dataLoad(e:Event):void {
      var dataXml:XML = new XML(loader.data);
      for each (var motion:XML in dataXml..motion) {
        // logについてはlog関数でググれば見つかるはず
        log('motion name => ' + motion.@name);
        for each (var image:XML in motion..image) {
          log(image.toString());
        }
      }
    }
  
  }
}

たとえば

var netXmlSample = new NetXMLSample();

ってかんじにすると、Firebugのコンソールに、以下のように表示されます。

motion name => wait
data/wait/1.png
data/wait/2.png
data/wait/3.png
data/wait/4.png
data/wait/5.png
data/wait/6.png