Flash本地传递大数据,图片数据,localconnection 超出大小,超出限制 bitmapdata

1、Localconnection

Flash之间传递数据,自然想到Localconnection等多种办法。

但在实践中,如果要传一个图片这样的数据,就没这么简单了。

首先,localconnection一次send只能传递40k的数据,而且是它AMF编码后的,也就是说,自己最多也只能有30+K的余地。

针对这个限制,首先,我们想到拆分N份来发。

var size:int = 30*1024;

var count:int = a.length / size + 1;

var localConnection:LocalConnection = new LocalConnection();

for(var i:int = 0; i < count; i++)

       {

var temp:ByteArray = new ByteArray();

              temp.writeBytes(a, i*size, Math.min(size, a.length - i*size));

localConnection.send("photoShowEditor", "showBitmapData" , temp);

       }

但事实证明,这个是非常有问题的做法。例如测试中,要传递260k的png数据,拆分了9份去传。结果令人沮丧。。。竟然要4s才最终传完。

于是,这得出一个结论,localconnection不适合做这种大数据的传输。必须找个中转。

2、Localconnection + SharedObject

有人设想利用SharedObject做中转区,用localconnection通知对方去接受。

但是,根据QQ秀客户端的不完全统计,有10%的人会有意无意的关闭的SharedObject。那很显然,这个办法不完全可靠。

3、base64编码后通过js去传递

260k的png图片,编码后变成340k左右,flash和js之间传递参数,完全可以容纳这个大小的字符串。

但这个如果在跨iframe之间传递,也许会稍有点小麻烦。但最起码这个方案是最可靠

最后,除去上述3个方案后,其实最可靠的,也许不是本地直接传递,如果能借助于服务器,先上传图片,再在另外一边展示,也许问题就完全没有了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏存储

集群NAS和对象存储的区别

这个话题乍一看可能有些奇怪,因为一个是集群NAS存储,一个是对象存储,没什么相同的地方,为啥还要比较? 而实际上,在考察两种技术的实际应用场景时,我们会发现,两...

27610
来自专栏听雨堂

Mapx用xml创建点图层

     Mapx4.*中,并不支持xml,到5以后,创建ds支持xml了,听起来很美,但是,在网上居然没有找到一个说这个的,难道mapx就没人用了吗?    ...

1838
来自专栏小程序·云开发专栏

你不知道的Node.js性能优化

仅仅是简单的升级 Node.js 版本就可以轻松地获得性能提升,因为几乎任何新版本的 Node.js 都会比老版本性能更好,为什么?

7.7K4
来自专栏ThoughtWorks

Rec:一个项目的诞生|洞见

Rec是一个用来验证和转换数据文件的Java应用。从第一行代码到v1版本成形,仅仅经历了一个半月的时间,作为一个开源项目,在很多方面都有着各种各样的纠结。 ? ...

2994
来自专栏csxiaoyao

USTC高级软件工程课程学习心得

35910
来自专栏跨界架构师

如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化的坑

在上一篇中(如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成),有一行注释的代码:

833
来自专栏IT大咖说

华为:既满足用户体验,又节省功耗的App应用设计开发方法

1567
来自专栏恰同学骚年

操作系统核心原理-1.操作系统导论

PS:操作系统原理是大学计算机专业最为重要的一门专业基础课程之一,对于操作系统核心原理的理解对于一个合格的程序员来说十分重要,于是我继续我的“三大原理,两个协议...

912
来自专栏编程

python笔记5-python2写csv文件中文乱码问题

前言 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode、decode。 当list、tuple、dict里面有中文时,打印出来的...

3015
来自专栏java工会

依赖注入原理---IoC框架

1704

扫码关注云+社区