2010-01-10 71 views

回答

2

当前Web浏览器的JavaScript和DOM实现并没有很好的机制来完成这样的事情。

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

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

你必须有一个AS3专家解释如何把一个字节数组为Base64编码的字符串,但它不可能是那么难。

+0

Alex 2010-01-11 02:45:45

+0

确实不工作,这是行不通的旧版浏览器,没有使用数据URI,有没有其他办法与DOM本身做到这一点。 – EricLaw 2010-01-11 16:04:52

+2

根据记录,顺便做转换为:将你的DisplayObject(Sprite/MovieClip/whatever),转换为BitmapData(myBitmapData.draw(mySprite);),使用adobe的AS3CoreLib(myByteArray = PNGEncoder.encode(myBitmapData);)将其转换为PNG;那对Base64使用Flex的Base64Encoder(myBase64Encoder.encodeBytes(myByteArray);),然后使用ExternalInterface将它导出到一些Javascript函数。 – Ender 2011-01-18 19:45:53

4

把你DisplayObjectSprite/MovieClip /不管),并将其转换成一个BitmapData:使用Adobe的AS3CoreLib

myByteArray = PNGEncoder.encode(myBitmapData); 

将其转换成Base64编码使用Flex的Base64Encoder

myBitmapData.draw(mySprite); 

将其转换成一个PNG :

myBase64Encoder.encodeBytes(myByteArray); 

然后export actionscript variables to Javascript使用ExternalInterface

+0

超过3年后...和其他人发现这篇文章非常有用!!非常感谢! ! – 2015-07-29 15:22:47