如何以编程方式截取Flash应用程序的屏幕截图,并将位图发送到服务器? - 不使用javascript,只需要动作脚本
答案 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中的JPEGEncoder
或PNGEncoder
进行编码:https://github.com/mikechambers/as3corelib。
您可以通过PHP上传,或者将图片中的ByteArray
数据写入URLRequest
。这里的工作方式有点复杂(它涉及multipart / form-data)。查看工作原理的最简单方法是查看Facebook AS3 API,他们在哪里进行图片上传工作:http://code.google.com/p/facebook-actionscript-api/(查看call()
类中的FacebookRequest
函数)