我有一个在 Adobe AIR 中开发并使用适用于 iOS 的 Flex SDk 4.6 编译的应用程序。该应用程序有一个模块,用户可以在其中将当前屏幕保存到应用程序存储。这工作正常,但保存图像大约需要 6-8 秒。
我正在使用 bitmapdata 来绘制舞台,然后使用 jpgencoder 将其转换为 bytearray,然后使用 File reference 将其保存到 apptorage。
有人可以告诉我这是捕获图像的正确且唯一的方法,还是在iOS上的AIR方面有更好的替代方法?
这是我的代码
var bmp:BitmapData = new BitmapData(640,960,false,0)
bmp.draw(this);
//
var je:JPGEncoder = new JPGEncoder();
var b:ByteArray = je.encode(bmp);
var saveFileName = String( new Date().milliseconds ) + ".jpg";
var cropFile:File = appDir.resolvePath(saveFileName)
var stream = new FileStream();
stream.open(cropFile, FileMode.WRITE);
stream.writeBytes(b,0,b.bytesAvailable);
stream.close();
bmp.dispose();