在flex中截取浏览器/选项卡窗口的屏幕截图

时间:2010-10-29 11:24:03

标签: flex actionscript-3 flex3 screenshot

我是Flex的新手。

我已经考虑在flex中截取屏幕截图并在google上找到了很多链接,在这里有一些stackoverflow用于截取组件和类似的东西。我想要做的是在浏览器窗口中截取整个标签的屏幕截图(或者,如果没有,浏览器窗口本身甚至只是屏幕)。

我可以截取视图堆栈的截图,因为它实现了IBitmapDrawable接口。但是,如果我想提取所提到的浏览器标签的屏幕截图呢?这是可能的,如果是的话,怎么样?

viewstack的父级是应用程序,但在尝试将Application.application传递给BitmapData类的draw方法时,我收到以下错误:

使用静态类型Object将值隐式强制转换为可能不相关的类型flash.display:IBitmapDrawable。

提前致谢。

2 个答案:

答案 0 :(得分:4)

无法截取Flex应用程序之外的任何内容的屏幕截图。但是,应该可以截取您的应用程序的屏幕截图。 ApplicationDisplayObject,它实现IBitmapDrawable。您输入错误的原因是Application.application属于Object类型。因此,您应该能够将应用程序转换为IBitmapDrawable并使用它来获取应用程序的屏幕截图。

// Flex 3.x
var app:IBitmapDrawable = Application.application as IBitmapDrawable;

// in Flex SDK 4.x Application.application is deprecated so use
var app:IBitmapDrawable = FlexGlobals.topLevelApplication as IBitmapDrawable;

答案 1 :(得分:2)

很抱歉,但无法可以截取整个浏览器窗口或标签的屏幕截图。您还可以捕获Flash Player内部运行的内容。这是一个安全问题。

在处理Adobe Air应用程序时,这是不同的,因为您与本机操作系统功能的连接更强。

如果这有帮助,请投票给答案。