1


0

フレックスでブラウザ/タブウィンドウのスクリーンショットを撮る

私はFlexを初めて使用します。

フレックスでスクリーンショットを撮影することを検討しましたが、グーグルと、このようなコンポーネントのスクリーンショットを撮影するためのstackoverflowで多くのリンクを見つけました。 私がやりたいのは、ブラウザウィンドウ内のタブ全体のスクリーンショットを撮ることです(または、それが失敗した場合、ブラウザウィンドウ自体またはスクリーンだけでさえ)。

IBitmapDrawableインターフェイスを実装しているため、ビュースタックのスクリーンショットを撮ることができます。 しかし、前述のようにブラウザタブのスクリーンショットを撮りたい場合はどうすればよいですか? これは可能なのでしょうか、そしてもしそうなら、どうですか?

ビュースタックの親はアプリケーションですが、Application.applicationをBitmapDataクラスのdrawメソッドに渡そうとすると、次のエラーが表示されます。

静的型Objectの値を、おそらく無関係な型flash.display:IBitmapDrawableに暗黙的に強制します。

前もって感謝します。

2 Answer


4


Flexアプリケーションの外部にあるもののスクリーンショットを撮ることはできません。 ただし、アプリケーションのスクリーンショットを撮ることは可能です。 「アプリケーション」は「IBitmapDrawable」を実装する「DisplayObject」です。 エラーの理由は、「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;


2


申し訳ありませんが、完全なブラウザウィンドウまたはタブのスクリーンショットを撮ることはできません。 Flash Playerの内部で実行されるものをキャプチャすることもできます。 これはセキュリティの問題です。

Adobe Airアプリケーションを扱う場合、ネイティブOS機能へのより強力な接続があるため、これは異なります。

これが役立つ場合は、回答に投票してください。