0

我仍在努力使用 Actionscript 3.0 从 XML 文件中加载随机数据,而没有重复以前的场地。

基本上,当我单击舞台上的按钮时,我希望我的 xml 中的随机场地显示在舞台上的动态文本框中。我的XML位于http://pastebin.com/0qMMkfCs

最好不创建数组直接访问数据!

当然有人知道如何正确地做到这一点。谢谢 :)

4

1 回答 1

0

好的,此编辑将显示如何确保它们都随机出现一次:

private var xmlLoader:URLLoader = new URLLoader();
private var myLoadedXML:XML;
private var venues:XMLList;

public function getAnotherRandomVenue():XML{
    if(venues.length() > 0){
        var random:Number = Math.floor(Math.random() * (venues.length()-1));
        var thisRandomVenue:XML = new XML(venues[random]);
        delete venues[random];
        return thisRandomVenue;
    }
    return null;
}

public function loadItUP():void{
    xmlLoader.addEventListener(Event.COMPLETE, onXMLLoaded);
    xmlLoader.load(new URLRequest("http://path.to.venuesXML.xml"));
}

private function onXMLLoaded(e:Event):void {
    myLoadedXML = new XML(e.target.data);
    venues = myLoadedXML.venue;
    // you are now ready at this point to start calling getAnotherRandomVenue()
}

现在调用 getAnotherRandomVenue 将返回一个 Venue XML 对象。您现在可以 a) 重复调用此方法,直到它返回 null(所有项目都已随机返回)或 b) 在调用之前查看场所。length()。

编辑:在加载和调用事物时将代码清晰地合并。

于 2012-11-29T17:06:02.780 回答