apache-flex - 弹性 : DeepCopy of FileReference

标签 apache-flex actionscript-3 actionscript filereference deep-copy

在我的项目中,我让用户使用 FileReference 类选择图片。然后我使用 load() 函数将这些图片加载到它们的 .data 属性中。在此之后,我执行一些本地操作并将它们发送到服务器。

我想要做的是能够再次遍历选择的 FileReferences,将它们加载到 .data 属性中,执行不同的操作并再次将它们发送到服务器。我知道我应该能够从用户调用的事件中做到这一点,这在这里不是问题。

问题是,第一次加载FileReference后,我无法以任何方式卸载它,而且我无法将所有图片的数据保存在内存中,因为这些图片很大。

所以我想我只能做一件事,那就是对 FileReference 执行 DeepCopy……然后我可以加载第一个版本,将其废弃并使用该副本进行第二次“运行”。

我尝试使用 ObjectUtil.copy,但是当我访问例如.name 属性,它失败了:

Error #2037: Functions called in incorrect sequence, or earlier call was unsuccessful.

在 flash.net::FileReference/get name()

相关片段:
registerClassAlias("FileReference",FileReference);
masterFileList.addItem(FileReference(ObjectUtil.copy(fr_load.fileList[i])));
trace(masterFileList[i].name)

是否确实存在 FileReference 类的一些 protected 属性阻止它被复制?如果是这样,我可以以某种方式回避吗?或者有没有其他解决方案可以解决我的整体问题?

我感谢任何提示/想法!

最佳答案

你不能使用 ObjectUtil.copy。此方法设计用于仅复制数据对象(VO 类)。

您应该创建一个新的 FileReference 并逐个复制属性。创建一个函数来做到这一点..

关于apache-flex - 弹性 : DeepCopy of FileReference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1995396/

相关文章:

apache-flex - 找不到 ExtensionContext

actionscript-3 - 通过 SSL 连接调用 Web 服务时出现错误 #2032 : Stream Error.

actionscript-3 - ActionScript 3 Newb : TextInput enter event?

javascript - AS3 - 桌面屏幕的物理尺寸

javascript - 如何在正则表达式中使用前瞻来匹配无字符?

performance - Flash 如何处理我的匿名函数?

css - flex3 按钮状态

java - Flex 和 Java 之间的 RemoteClass 问题

apache-flex - 弹性 : Impossible to resize the external loaded SWF's content

actionscript-3 - Air-As3 套接字关闭套接字停止发送信息