我尝试使用FileReference对象的load方法来加载数据,并使用它来显示所选图像的缩略图。
但是,在调用fr.load()之后,fr.data仍然是null。
我在Windows 7上使用Flex Builder 3.0.2,带有Flex SDK 3.4和Flash Player 10 Debug。如果我在Eclipse的监视变量列表中计算fr.load(),则在读取"No such variable: load."时出现错误
有人知道为什么会这样吗?
发布于 2009-11-11 10:05:37
您是否在等待load()完成?尝试添加EventListener以侦听要完成的加载。
FileReference docs
fr.addEventListener(Event.COMPLETE, function(e:Event):void {
handleLoad(e);
});然后,您编写的handleLoad函数可以通过e.target.data获取数据
发布于 2009-11-11 12:53:40
编辑:仅适用于FP9。
是否确实使用了正确的类?FileReference没有load方法或data属性。我猜你指的是URLLoader类--它确实两者都有,这就是你应该用来加载数据的类。FileReference类用于将文件从服务器下载到用户的机器(而不是SWF),以及将文件从用户的机器上传到服务器。
使用URLLoader类将数据加载到SWF,使用Loader类将其他SWF和图像加载到SWF。Loader类有一个content属性,类似于URLLoader的data属性,它将保存加载的内容。这两个类的load()方法都是异步的(返回时不等待加载完成),因此,正如@dustmachine所指出的,只有在触发Event.COMPLETE之后才能访问加载的数据/内容。
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, onLoad);
urlLoader.load(new URLRequest(theURL));
private function onLoad(e:Event):void
{
var urlLoader:URLLoader = URLLoader(e.target);
trace(urlLoader.data);
}发布于 2010-04-09 22:51:37
我在使用FileReference类和load()函数时遇到了同样的问题。问题可以这样解决:
https://stackoverflow.com/questions/1712514
复制相似问题