加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex:FileReference的DeepCopy

发布时间:2020-12-15 02:11:26 所属栏目:百科 来源:网络整理
导读:在我的项目中,我让用户使用FileReference类选择图片.然后我使用load()函数将这些图片加载到他们的.data属性中.在此之后,我执行一些本地操作并将它们发送到服务器. 我想做的是,能够再次遍历挑选的FileReferences,将它们加载到.data属性中,执行不同的操作并再
在我的项目中,我让用户使用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类的受保护属性阻止它被复制?如果是这样,我可以以某种方式回避这个问题吗?或者我的整体问题还有其他解决方案吗?

我很欣赏任何提示/想法!

解决方法

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

你应该创建一个新的FileReference并逐个复制porperties.创建一个函数来做到这一点..

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读