【问题标题】:How can I call the values from my xml file to my as3 code如何将我的 xml 文件中的值调用到我的 as3 代码
【发布时间】:2015-01-23 09:22:43
【问题描述】:

我无法从我的 xml 文件中获取值

XML 文件 (db.xml)

<?xml version="1.0" encoding="utf-8"?>
<character>
    <main hp="100" lvl="10" dmg="5" def="5" exp="0.00" gold="10"/>
</character>

我的 AS3 代码

var myXML:XML;
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("db.xml"));
myLoader.addEventListener(Event.COMPLETE, processXML);

function processXML(e:Event):void {
    myXML = new XML(e.target.data);
    trace(myXML);
}

var mylvl:Number = myXML.main.@lvl;
var myhp:Number = myXML.main.@hp;
var mydmg:Number = myXML.main.@dmg;
var mydef:Number = myXML.main.@def;
var myexp:Number = myXML.main.@exp;
var mygold:Number = myXML.main.@gold;

lvlDis.text = String(mylvl);
hpDis.text = String(myhp);
dmgDis.text = String(mydmg);
defDis.text = String(mydef);
expDis.text = String(myexp);
goldDis.text = String(mygold);

编译选项卡上没有错误,但值不会显示

【问题讨论】:

    标签: xml actionscript-3 flash flash-cs6


    【解决方案1】:

    你必须等到你的加载器完成加载xml文件然后你才能使用它的数据,所以你可以这样做:

    var myLoader:URLLoader = new URLLoader();
        myLoader.load(new URLRequest('db.xml'));
        myLoader.addEventListener(Event.COMPLETE, processXML);
    
    function processXML(e:Event):void
    {   
        setTexts(new XML(e.target.data));   
    }
    
    function setTexts(xml:XML):void
    {       
        lvlDis.text = String(xml.main.@lvl);
        hpDis.text = String(xml.main.@hp);
        dmgDis.text = String(xml.main.@dmg);
        defDis.text = String(xml.main.@def);
        expDis.text = String(xml.main.@exp);
        goldDis.text = String(xml.main.@gold);  
    }
    

    希望能有所帮助。

    【讨论】:

      猜你喜欢
      • 2014-04-12
      • 1970-01-01
      • 2018-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-04
      • 1970-01-01
      相关资源
      最近更新 更多