截图Flash和发送

时间:2011-04-07 08:38:25

标签: flash actionscript-3 actionscript screenshot flash-cs5

如何以编程方式截取Flash应用程序的屏幕截图,并将位图发送到服务器? - 不使用javascript,只需要动作脚本

1 个答案:

答案 0 :(得分:5)

截取屏幕截图就像绘制到BitmapData对象一样简单。类似的东西:

var bmd:BitmapData = new BitmapData( this.stage.stageWidth, this.stage.stageHeight );
bmd.draw( this.stage );

this.stage替换为您要绘制的DisplayObject。查看BitmapData文档:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#draw()

将其发送到服务器取决于您连接服务器的方式。如果它可以接受来自BitmapData的原始数据,那么请继续使用它。否则,请使用as3corelib中的JPEGEncoderPNGEncoder进行编码:https://github.com/mikechambers/as3corelib

您可以通过PHP上传,或者将图片中的ByteArray数据写入URLRequest。这里的工作方式有点复杂(它涉及multipart / form-data)。查看工作原理的最简单方法是查看Facebook AS3 API,他们在哪里进行图片上传工作:http://code.google.com/p/facebook-actionscript-api/(查看call()类中的FacebookRequest函数)