将ByteArray发送到JavaScript

将ByteArray发送到JavaScript,javascript,apache-flex,flash,actionscript-3,bytearray,Javascript,Apache Flex,Flash,Actionscript 3,Bytearray,如何将jpg图像作为ByteArray从as3发送到javascript?如何将ByteArray转换为javascript中的图像?当前web浏览器的javascript和DOM实现并没有很好的机制来完成这类工作 最好的办法是让AS3返回带有base64编码版本的图像的数据协议URI。现代浏览器(IE8+、FF2+等)将接受数据URI作为IMG标记的SRC,并呈现其中包含的图像 您必须让AS3专家解释如何将字节数组转换为base64编码字符串,但这不会那么难。将您的显示对象(Sprite/M

如何将jpg图像作为
ByteArray
从as3发送到javascript?如何将
ByteArray
转换为javascript中的图像?

当前web浏览器的javascript和DOM实现并没有很好的机制来完成这类工作

最好的办法是让AS3返回带有base64编码版本的图像的数据协议URI。现代浏览器(IE8+、FF2+等)将接受数据URI作为IMG标记的SRC,并呈现其中包含的图像


您必须让AS3专家解释如何将字节数组转换为base64编码字符串,但这不会那么难。

将您的
显示对象
Sprite
/
MovieClip
/where)转换为位图数据:

myBitmapData.draw(mySprite);
使用adobe的

使用Flex将其转换为Base64:


然后使用。

这个类中有一个方法可以:

召唤

var data:String = DisplayObjectUtils.getBase64ImageDataString(); 
将返回此字符串:

data:image/png;base64,...

然后将html中img的src设置为该值

事实上,这在较旧的浏览器版本中是行不通的。如果不使用数据URI,就没有其他方法可以对DOM本身进行转换。对于记录,转换的方法是:将您的DisplayObject(Sprite/MovieClip/which)转换为BitmapData(myBitmapData.draw(MyPrite);),使用adobe的AS3CoreLib(myByteArray=PNGEncoder.encode(myBitmapData);)将其转换为PNG,使用Flex的Base64Encoder(myBase64Encoder.encodeBytes(myByteArray);)将其转换为Base64,然后使用ExternalInterface将其导出到某个Javascript函数。3年多之后。。。还有人觉得这篇文章很有用!!非常感谢你!!
var data:String = DisplayObjectUtils.getBase64ImageDataString(); 
data:image/png;base64,...