我是Flex的新手。
我已经考虑在flex中截取屏幕截图并在google上找到了很多链接,在这里有一些stackoverflow用于截取组件和类似的东西。我想要做的是在浏览器窗口中截取整个标签的屏幕截图(或者,如果没有,浏览器窗口本身甚至只是屏幕)。
我可以截取视图堆栈的截图,因为它实现了IBitmapDrawable接口。但是,如果我想提取所提到的浏览器标签的屏幕截图呢?这是可能的,如果是的话,怎么样?
viewstack的父级是应用程序,但在尝试将Application.application传递给BitmapData类的draw方法时,我收到以下错误:
使用静态类型Object将值隐式强制转换为可能不相关的类型flash.display:IBitmapDrawable。
提前致谢。
答案 0 :(得分:4)
无法截取Flex应用程序之外的任何内容的屏幕截图。但是,应该可以截取您的应用程序的屏幕截图。 Application
是DisplayObject
,它实现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应用程序时,这是不同的,因为您与本机操作系统功能的连接更强。
如果这有帮助,请投票给答案。