使用AS3不重复地从XML中获取随机数据
我仍然在使用ActionScript3.0从XML文件中加载随机数据,而没有重复上一个场景 基本上,当我单击stage上的按钮时,我希望xml中的随机地点显示在stage上的动态文本框中。我的XML位于此处 最好是直接访问数据而不创建数组使用AS3不重复地从XML中获取随机数据,xml,actionscript-3,random,Xml,Actionscript 3,Random,我仍然在使用ActionScript3.0从XML文件中加载随机数据,而没有重复上一个场景 基本上,当我单击stage上的按钮时,我希望xml中的随机地点显示在stage上的动态文本框中。我的XML位于此处 最好是直接访问数据而不创建数组 肯定有人知道如何正确地做到这一点。谢谢:)好的,此编辑将显示如何确保它们都随机出现一次: private var xmlLoader:URLLoader = new URLLoader(); private var myLoadedXML:XML; priva
肯定有人知道如何正确地做到这一点。谢谢:)好的,此编辑将显示如何确保它们都随机出现一次:
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()
}
现在调用GetAnotherRandomVincement将返回一个单一的VinceXML对象。现在,您可以a)重复调用此方法,直到它返回null(所有项都已随机返回),或者b)在调用它之前查看vivoces.length()
编辑:合并代码,以便在加载和调用内容时清晰显示。这是家庭作业吗?不,这只是一个个人项目,我现在正试图创建一个网站!但是我添加的链接也有同样的问题,并且使用了相同的XML是的,我使用的XML与链接中的XML相同,因此我可以根据我的XML修改代码@哈哈,我想你是对的。现在我看到了关于这个的其他问题。。。这比我的答案更深刻。大卫。。看看他提到的另一个问题。我认为这不是最终的解决方案(因为它只能确保当前选择与前一个选择不同…但不能确保所有选择最终都随机出现)。。。但它会让你朝着正确的方向前进。有趣的我上学的时候斯塔克在哪里?!?你应该考虑增加一些解释。“Jason Reeves。感谢Jason在实现代码后的编辑,我一直收到这个错误。1119:通过静态类型为flash.net:URLLoader的引用访问可能未定义的属性场所。有什么想法吗?:)谢谢你的耐心:)我要再改变一件可能会把你搞糊涂的事here@JasonReeves现在明白了#1009:无法访问空对象引用的属性或方法。哈哈,我只是垃圾!