我仍在努力使用 Actionscript 3.0 从 XML 文件中加载随机数据,而没有重复以前的场地。
基本上,当我单击舞台上的按钮时,我希望我的 xml 中的随机场地显示在舞台上的动态文本框中。我的XML位于http://pastebin.com/0qMMkfCs
最好不创建数组直接访问数据!
当然有人知道如何正确地做到这一点。谢谢 :)
我仍在努力使用 Actionscript 3.0 从 XML 文件中加载随机数据,而没有重复以前的场地。
基本上,当我单击舞台上的按钮时,我希望我的 xml 中的随机场地显示在舞台上的动态文本框中。我的XML位于http://pastebin.com/0qMMkfCs
最好不创建数组直接访问数据!
当然有人知道如何正确地做到这一点。谢谢 :)
好的,此编辑将显示如何确保它们都随机出现一次:
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()。
编辑:在加载和调用事物时将代码清晰地合并。