Flash本地傳遞大資料,圖片資料,localconnection 超出大小,超出限制 bitmapdata

來源:互聯網
上載者:User
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個方案後,其實最可靠的,也許不是本地直接傳遞,如果能藉助於伺服器,先上傳圖片,再在另外一邊展示,也許問題就完全沒有了。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.