2010-01-10 29 views
9

Cách gửi hình ảnh jpg dưới dạng ByteArray từ as3 đến javascript? Và làm thế nào để chuyển đổi ByteArray thành hình ảnh trong javascript?Gửi ByteArray tới JavaScript

Trả lời

2

Việc triển khai JavaScript và DOM của trình duyệt web hiện tại không thực sự có cơ chế tốt để thực hiện việc này.

Đặt cược tốt nhất của bạn là yêu cầu AS3 trả lại URI giao thức DATA bằng phiên bản được mã hóa theo hình nền của base64. Các trình duyệt hiện đại (IE8 +, FF2 +, v.v.) sẽ chấp nhận URI DỮ LIỆU là SRC của thẻ IMG và sẽ hiển thị hình ảnh trong đó.

http://en.wikipedia.org/wiki/Data_URI_scheme

Bạn sẽ cần phải có một chuyên gia AS3 giải thích làm thế nào để biến một byte mảng thành một chuỗi base64 mã hóa, nhưng nó không thể là khó.

+0

Không hoạt động trong Alex

+0

Thật vậy, điều đó sẽ không hoạt động trong các phiên bản trình duyệt cũ hơn. Không sử dụng URI DỮ LIỆU, không có cách nào khác để thực hiện điều này với chính DOM. – EricLaw

+2

Để ghi lại, cách thực hiện chuyển đổi là: Lấy DisplayObject của bạn (Sprite/MovieClip/bất kỳ thứ gì), chuyển đổi nó thành BitmapData (myBitmapData.draw (mySprite);), chuyển đổi thành PNG bằng cách sử dụng AS3CoreLib của adobe (myByteArray = PNGEncoder.encode (myBitmapData);), chuyển đổi để Base64 sử dụng Base64Encoder của Flex (myBase64Encoder.encodeBytes (myByteArray);), sau đó xuất khẩu sang một số chức năng Javascript bằng cách sử dụng ExternalInterface – Ender

4

Hãy bạn DisplayObject (Sprite/MovieClip/bất cứ điều gì) và chuyển nó sang một BitmapData:

myBitmapData.draw(mySprite); 

Chuyển đổi đó để một PNG sử dụng adobe của AS3CoreLib

myByteArray = PNGEncoder.encode(myBitmapData); 

Chuyển đổi đó để Base64 sử dụng Flex của Base64Encoder :

myBase64Encoder.encodeBytes(myByteArray); 

Sau đó, export actionscript variables to Javascript sử dụng ExternalInterface.

+0

sau hơn 3 năm ... và một người khác tìm thấy bài đăng này rất hữu ích !! cảm ơn bạn rất nhiều! ! –

Các vấn đề liên quan