使用AS3没有重复从XML获取随机数据(Getting random data from XML u

2019-11-01 06:21发布

我仍然从XML文件中使用ActionScript 3.0没有重复之前的场地挣扎装载在随机数据。

基本上,当我从我的XML单击舞台上的按钮我想一个随机地点在舞台上动态文本框来显示。 我的XML就设在这里http://pastebin.com/0qMMkfCs

这将是更好的直接访问数据,而无需创建一个数组中!

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

Answer 1:

OK,这个编辑将介绍如何确保他们都来了一次随机:

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将返回一个单一地点XML对象。 现在,您可以一)反复调用此方法,直到它返回null(所有项目已随机返回)或b)看venues.length()调用它。

编辑:合并代码清楚,当事情变得加载并调用。



文章来源: Getting random data from XML using AS3 with no repeat