我正在尝试使用 FileReference 对象的加载方法来加载数据并使用它来显示所选图像的缩略图。
但是,调用后fr.load()
,fr.data
仍然存在null
。
我在带有 Flex SDK 3.4 和 Flash Player 10 调试的 Windows 7 上使用 Flex Builder 3.0.2。如果我在 Eclipse 的监视变量列表中进行评估fr.load()
,我会收到错误读数"No such variable: load."
有谁知道为什么会这样?
我正在尝试使用 FileReference 对象的加载方法来加载数据并使用它来显示所选图像的缩略图。
但是,调用后fr.load()
,fr.data
仍然存在null
。
我在带有 Flex SDK 3.4 和 Flash Player 10 调试的 Windows 7 上使用 Flex Builder 3.0.2。如果我在 Eclipse 的监视变量列表中进行评估fr.load()
,我会收到错误读数"No such variable: load."
有谁知道为什么会这样?
你在等待load()
完成吗?尝试添加一个 EventListener 来监听负载是否完成。
fr.addEventListener(Event.COMPLETE, function(e:Event):void {
handleLoad(e);
});
然后,您编写的handleLoad
函数可以通过e.target.data
编辑:这仅适用于 FP9。
您确定您使用的是正确的课程吗?FileReference
没有加载方法或数据属性。我猜您指的是URLLoader
该类-它确实具有两者,而这正是您应该用来加载数据的。FileReference类用于将文件从服务器下载到用户机器(而不是 SWF),并将文件从用户机器上传到服务器。
使用URLLoader类将数据加载到 SWF 并使用Loader类将其他 SWF 和图像加载到您的 SWF。Loader
类有一个content
属性,类似于将保存加载内容的data
属性。URLLoader
这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);
}
我对 FileReference 类和 load() 函数有同样的问题。问题可以这样解决:
您是否将任何内容传递给 fileReference。
例如来自数据网格
var listFiles:DataGrid = new DataGrid();
var _refUploadFile:FileReference = new FileReference();
_refUploadFile = listFiles.selectedItem.file;
_refUploadFile.load();
您必须首先执行以下操作:
fileReference.cancel();