首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FileReference.load()未填充FileReference.data

FileReference.load()未填充FileReference.data
EN

Stack Overflow用户
提问于 2009-11-11 09:57:50
回答 5查看 7.5K关注 0票数 2

我尝试使用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."时出现错误

有人知道为什么会这样吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-11-11 10:05:37

您是否在等待load()完成?尝试添加EventListener以侦听要完成的加载。

FileReference docs

代码语言:javascript
复制
fr.addEventListener(Event.COMPLETE, function(e:Event):void {
                                        handleLoad(e);
                                    });

然后,您编写的handleLoad函数可以通过e.target.data获取数据

票数 2
EN

Stack Overflow用户

发布于 2009-11-11 12:53:40

编辑:仅适用于FP9。

是否确实使用了正确的类?FileReference没有load方法或data属性。我猜你指的是URLLoader类--它确实两者都有,这就是你应该用来加载数据的类。FileReference类用于将文件从服务器下载到用户的机器(而不是SWF),以及将文件从用户的机器上传到服务器。

使用URLLoader类将数据加载到SWF,使用Loader类将其他SWF和图像加载到SWF。Loader类有一个content属性,类似于URLLoaderdata属性,它将保存加载的内容。这两个类的load()方法都是异步的(返回时不等待加载完成),因此,正如@dustmachine所指出的,只有在触发Event.COMPLETE之后才能访问加载的数据/内容。

代码语言:javascript
复制
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);
}
票数 1
EN

Stack Overflow用户

发布于 2010-04-09 22:51:37

我在使用FileReference类和load()函数时遇到了同样的问题。问题可以这样解决:

  1. 打开"Flex“选项卡。
  2. 展开”Flex3“,选择"playerglobal.swc”并单击“Remove”。
  3. 注意“Flex3-”中的目录路径(在我的系统上是/Applications/Adobe Flex Builder 3 Plug-in/sdks/3.2.0).
  4. Click "Add SWC“并导航到该路径,然后更深入到frameworks/libs/
  5. /10,选择"playerglobal.swc",双击“链接类型”,在"HTML wrapper“中的"Flex”选项卡中将其更改为"External".
  6. Open
  7. ,将"Require Player version“更改为10.0.0。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1712514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档