1

我试图让我的程序能够从 .csv 读取数据并以特定方式显示内容。我正在尝试使用 URLLoader 类来执行此操作。以下是我在文件中读取的函数的代码

//Instantiate the URLLoader and set up the exception handling associated with it
var loader:URLLoader = new URLLoader();
loader.addEventListener( IOErrorEvent.IO_ERROR, handleIOError );
loader.addEventListener( HTTPStatusEvent.HTTP_STATUS, handleHttpStatus );
loader.addEventListener( SecurityErrorEvent.SECURITY_ERROR,  handleSecurityError );
loader.addEventListener( Event.COMPLETE, handleComplete );

//Next load the options file that will have location of .csv file
loader.dataFormat = URLLoaderDataFormat.TEXT
loader.load(new URLRequest("testData.csv"));
trace("data: " + loader.data);

运行此代码会导致跟踪打印“数据:未定义”,在调试时我看到 URLLoader.load 实际上并没有更改加载程序中的任何字段。我的理解是这个方法应该把加载的数据放到数据属性中。如果有人对可能导致错误的原因有任何想法,我将不胜感激。

4

2 回答 2

5

访问该data属性的代码应该驻留在handleComplete函数中,因为该load()函数是异步的;它立即返回,但它的实际执行是并行完成的。加载完成后,将调用适当的事件处理程序(handleComplete在您的情况下)。

于 2012-05-30T00:04:30.263 回答
0

这就是你应该以编程方式进行的方式,它基本上是上面提到的 Torious 的话的代码格式。祝你好运!

var myTextLoader:URLLoader = new URLLoader();
myTextLoader.addEventListener(Event.COMPLETE, onLoaded);
myTextLoader.load(new URLRequest("myText.txt"));

function onLoaded(e:Event):void {
    trace(e.target.data);
}
于 2012-05-30T15:20:38.407 回答