Actionscript 3 读取文件(AS3)并重复/动态访问数据

Actionscript 3 读取文件(AS3)并重复/动态访问数据,actionscript-3,downloadfile,Actionscript 3,Downloadfile,这可能是一个老生常谈的问题,但我还没有找到一个好的答案。例如,您有一个类,该类读取xml文件以获取诸如杂货店商品、价格等信息。该类还允许您使用get()函数检索有关杂货店商品的信息 var grocery:GroceryStore = new GroceryStore(); //create a class that //reads in xml about

这可能是一个老生常谈的问题,但我还没有找到一个好的答案。例如,您有一个类,该类读取xml文件以获取诸如杂货店商品、价格等信息。该类还允许您使用get()函数检索有关杂货店商品的信息

var grocery:GroceryStore = new GroceryStore(); //create a class that 
                                               //reads in xml about
                                               //grocery items

grocery.get("lettuce");                        //get some data 
在这个场景中,我经常遇到问题,因为get()函数在加载到xml文件中的事件之前被调用。将get()放在xml文件的onLoad事件中是没有意义的,因为我希望它是可重用的和动态的。另外,AS3没有wait()函数,所以在加载文件之前不能暂停?有人知道如何读入文件,然后能够安全地动态重复访问数据吗?希望这个例子和我的问题足够彻底,如果不让我知道的话


谢谢

您可以使用事件-侦听要发送的
完成
事件

将以下代码添加到
GroceryStore

//constructor or a load method
var ldr:URLLoader = new URLLoader();
ldr.addEventListener(Event.COMPLETE, onLoad);
ldr.load(new URLRequest(xmlurl));
function onLoad(e:Event):void
{
  //process xml here
  dispatchEvent(e);
}
现在将其用作:

var grocery:GroceryStore = new GroceryStore();
grocery.addEventListener(Event.COMPLETE, onGroceryLoad);
function onGroceryLoad(e:Event):void
{
  grocery.get("lettuce");
}

休眠/等待文件加载是个坏主意。没有人喜欢没有响应的应用程序。在加载数据时显示进度条/加载屏幕也是一个好主意。构建一个等待XML加载并自动弹出加载屏幕的类。