2009-06-03 13 views
2

ステージの最後のレンダリングにアクセスする方法はありますか?そのレンダリング結果がどこかにキャッシュされてアクセス可能なのでしょうか?私は具体的にビットマップにステージを再描画することはできません。なぜなら、それはあまりにも高価なので、最後のレンダーを使用しようとしているからです。Flashで最後にレンダリングされたスクリーンラスタを取得する

私は画面の特定の境界内で熱変形効果をいくつか試しているので、これが必要です。変位マップを使用して元の画像をジッターさせるのが標準的な方法です。もちろん、私はFlashで熱変形を行うために他のアイデアを公開しています。

答えて

2

私はこれにアクセスできないと確信しています(私は本当に理由は分かりませんが)。私は、フラッシュはフレームごとにステージの変更だけを再描画することを知っています。これは、Flash Debug Playerを右クリックし、「再描画領域を表示」を選択すると表示されます。

Convolution FilterDisplacement Map Filterを使用している人々の行動を調べることができます。ここではいくつかの例は以下のとおりです。

そこ例は、彼らは非常に小さく、ステージの大きさを持っているが、優れたスピードで、正常に動作するように見えます。

1

私は99.9%できないと確信しています。私はこれまで言及したことはありません。しかし、素晴らしい機能だろう。申し訳ありませんが、私はそれが特に有用ではないことを知っています。

1

ラスタにアクセスすることはできませんが、回避策があります。

アプリケーションSprite(またはMovieClip)をステージ上に置く代わりに、アプリケーションスプライトをビットマップに描画し、ステージ上に配置します。この方法で1度だけレンダリングしますが、最後のレンダーからビットマップにアクセスできます。

欠点は、各フレーム(汚れた矩形だけでなく)にすべてのアプリケーションスプライトをレンダリングすることです。

+0

+1私は恐れていましたが、残念なことにプレレンダリングは私の状況にとって(非常にパフォーマンスを意識した)良い選択肢ではありません。 –

1

Flash Player 10を必要としない場合は、カスタムの Pixel Benderフィルタをステージまたはディスプレイオブジェクトに接続して、歪ませてみてください。

ただし、標準フィルタの場合と同様に、Flashがカバーの下にキャッシュビットマップを作成すると、独自のビットマップを作成するよりパフォーマンスが向上することはありません。

関連する問題