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

时间:2009-11-24 04:47:59

标签: actionscript-3 downloadfile

这可能是一个累旧的问题,但我还没有找到一个好的答案。比如说你有一个读取xml文件的类来获取杂货店商品,价格等信息。这个类还允许你用get()函数检索有关杂货店商品的信息。

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

grocery.get("lettuce");                        //get some data 

在这种情况下,我经常遇到问题,因为在加载xml文件的事件之前调用了get()函数。将get()放在xml文件的onLoad事件中是没有意义的,因为我希望它可以重用和动态。另外,AS3没有wait()函数,所以在文件加载之前我不能停止?有没有人知道如何读取文件,然后能够安全地重复访问数据?希望这个例子和我的问题足够彻底,如果不让我知道的话。

由于

1 个答案:

答案 0 :(得分:1)

您可以使用事件 - 侦听要调度的complete事件。

将以下代码添加到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");
}