「ExternalInterface.call()」を使用して、キャンバスの内容を返す JavaScript 関数を呼び出そうとしました。ただし、比較的小さなキャンバス (256x256) の場合、引数/戻り値のマーシャリングが原因のようで、これは非常に遅くなります (約 2 秒)。
Brad Neuberg の古い投稿 (2006 年以降) で提案されているように、キャンバス データを小さなチャンクに分割したとしても: http://codinginparadise.org/weblog/2006/02/how-to-speed-up-flash- 8s.html、まだパフォーマンスが低下しています。いずれにせよ、チャンクのサイズは Flash 9 の時点では問題になりません。
パラメータのマーシャリング/評価を行うFlash JavaScript関数を上書きしようとすることはまだ可能だと思いますが、これは非常に複雑なようで、それを試みる前に、もっと単純なものがないかどうかを知りたかったのです。
また、次のようにして、Flash と JavaScript を通信する古い方法を試しました。
var req : URLRequest = new URLRequest("javascript:getImage()");
var loader : Loader = new Loader();
loader.load(req);
「getImage()」は、キャンバスの内容を画像として返す JavaScript 関数です。ただし、「Loader.load()」関数ではなく「navigateToURL()」を使用しない限り、ブラウザー スクリプトをターゲット URL として使用することは許可されていないため、これはある種のセキュリティ違反エラーをスローします。残念ながら、前者は値を返しません。
「com.macromedia.javascript.JavaScriptProxy」クラスを使用する古いコードもいくつか見ましたが、テストしていないため、Flash 11 では使用できないようです。
どんな考えでも大歓迎です。ありがとう!