【actionscript3.0】xmlを読み込んでパースするメモ

こんなXMLがあって。

<?xml version="1.0" encoding="utf-8"?>
<root>
  <btns>
    <btn id="offcial">
      <flag>true</flag>
      <url>http://www.hoge.com/</url>
      <target>_blank</target>
    </btn>
    <btn id="regist">
      <flag>true</flag>
      <url>http://www.hoge.com/</url>
      <target>_blank</target>
    </btn>
  </btns>
  <pages>
    <page id="page1">
      <file>page1.swf</file>
      <url>http://www.hoge.com/</url>
      <target>_blank</target>
    </page>
    <page id="page2">
      <file>page2.swf</file>
      <url>http://www.hoge.com/</url>
      <target>_blank</target>
    </page>
    <page id="page3">
      <file>page3.swf</file>
      <url>http://www.hoge.com/</url>
      <target>_blank</target>
    </page>
    <page id="page4">
      <file>page4.swf</file>
      <url>http://www.hoge.com/</url>
      <target>_blank</target>
    </page>
  </pages>
</root>

progressionのLoadURLを使用してxmlを読み込んでパースする。 通常の方法だとロードするタイミングが先に来てしまってうまくいかない。

だので

  var btn_setting:Array,
        page_setting:Array;
  prog.root.onInit = function():void {
    this.addCommand(
      new LoadURL(new URLRequest("setting.xml")),
      new Func(function():void {
        var xml:XML = new XML(this.latestData);
        btn_setting = new Array();
        page_setting = new Array();
        var btnList:XMLList = new XMLList(xml.btns.btn);
        var pageList:XMLList = new XMLList(xml.pages.page);
        for each( var page:XML in pageList ){
            page_setting.push({
              id : page.@id.toString(),
              file : page.file.toString() ,
              url : page.url.toString(),
              target : page.target.toString()
            });
        } 
        for each( var btn:XML in btnList ){
            btn_setting.push({
              id : btn.@id.toString(),
              flag : btn.file.toString() ,
              url : btn.url.toString(),
              target : btn.target.toString()
            });
        } 
    })
  };
こうやって各シーンで使えるようにした。


Tags:

 
 
 

コメントをどうぞ