apache-flex - Flex 3 - 保存组件的图像

标签 apache-flex image

我目前正在尝试在 Flex 中使用 imageSnapshot 函数。我一直在努力寻找,但似乎找不到解决我的问题的方法。我希望截取我的一个组件的屏幕截图,以捕获程序的最终输出,因为普通的“打印屏幕”会由于滚动而切断一些输出。我当前的代码看起来像 -

<mx:ApplicationControlBar dock="true">
    <mx:Button label="Take snapshot of Profile" 
        click="takeSnapshot();" />
</mx:ApplicationControlBar> 

调用时会执行 -

private function takeSnapshot(even:Event=null):void {
    var imageSnap:ImageSnapshot = ImageSnapshot.captureImage(viewstack1);

现在我认为这是拍摄我想要的 View 堆栈的图像......但我很难从这里做什么!现在是否无法将图像复制到剪贴板,或者在浏览器中生成一个包含整个图像的新窗口?如果有人有任何其他方法可以做到这一点,建议会很棒。

感谢您的宝贵时间。

最佳答案

您可以将 View 堆栈绘制到 BitmapData 对象中,并使用 as3corelib 将其编码为 png 。像这样的东西:

var screenshotData : BitmapData = new BitmapData(viewstack1.width, viewstack1.height, true, 0x00000000);
screenshotData.draw(viewstack1);
var outputData:ByteArray = PNGEncoder.encode(screenshotData);
// Save outputData as a file to disk, send to webserver etc..

编辑:呃,这可能会让你更加困惑。对于那个很抱歉。 ImageSnapshot 有一个名为 data 的属性,我猜它给你的结果与此几乎相同。您可以使用 flash.net.FileReference 将其作为文件保存到磁盘上

关于apache-flex - Flex 3 - 保存组件的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1534358/

相关文章:

apache-flex - ActionScript 图形 API : Posting Image To Facebook User Profile fails with Stream Error

apache-flex - 需要 SSL 用户证书的 Flex UrlLoader 请求

java - 在我的 Flex 应用程序中获取数据的最佳方式是什么?

image - FFMPEG - 根据视频的持续时间动态启用水印

html - 我可以包装 img alt 文本吗?

html - 如何修复无效的图片链接?

apache-flex - 当应用程序繁忙时,我们如何在 Flex 中实现 "Please wait ...."屏幕

javascript - Canvas 到高分辨率图像

javascript - 在运行时使用 javascript 加载 div 背景图像(通过/使用?CSS)

iphone - 使用 Adob​​e Flex Builder 构建 iOS 应用程序 - 性能问题