【问题标题】:Taking a screenshot of browser/tab window in flex在 flex 中截取浏览器/选项卡窗口的屏幕截图
【发布时间】:2010-10-29 11:24:02
【问题描述】:

我对 Flex 很陌生。

我研究过在 flex 中截屏,并在 google 和 stackoverflow 上找到了许多链接,用于截取组件和类似内容的屏幕截图。我想做的是在浏览器窗口中截取整个选项卡的屏幕截图(或者,如果失败,浏览器窗口本身,甚至只是屏幕)。

我能够截取视图堆栈的屏幕截图,因为它实现了 IBitmapDrawable 接口。但是,如果我想截取上述浏览器选项卡的屏幕截图怎么办?这可能吗?如果可以,怎么做?

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

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

提前致谢。

【问题讨论】:

    标签: apache-flex actionscript-3 flex3 screenshot


    【解决方案1】:

    无法对 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;
    

    【讨论】:

    • 我已删除我的答案以支持你的答案。
    • 谢谢伙计。不完全是我想要的,但如果你不能截取 flex 应用程序之外的任何内容,那么截取 flex 应用程序本身的截图是下一个最好的事情。我原以为如果 Application 是 DisplayObject 则无需强制转换它,但没关系。非常感激。它工作得非常好:)
    【解决方案2】:

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

    在处理 Adob​​e Air 应用程序时,情况有所不同,因为您与本机操作系统功能的连接更加紧密。

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

    【讨论】:

    • 以为我已经对此发表了评论。谢谢(你的)信息。试图对您的答案进行投票,但发现我需要更多的声誉才能做到。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-13
    相关资源
    最近更新 更多