使用AS3从XML获取随机数据,无需重复

时间:2012-11-29 16:52:39

标签: xml actionscript-3 random

我仍在努力使用Actionscript 3.0加载来自XML文件的随机数据而不重复之前的场地。

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

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

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

1 个答案:

答案 0 :(得分: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)在调用之前查看venues.length()。

编辑:当事情被加载并调用时,将代码清楚地合并。