前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flash本地传递大数据,图片数据,localconnection 超出大小,超出限制 bitmapdata

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

作者头像
用户1258909
发布2018-07-03 15:42:22
6860
发布2018-07-03 15:42:22
举报
文章被收录于专栏:拂晓风起

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013-03-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档