ActionScriptとHTML/Javascriptのinterop

| No Comments | No TrackBacks

気を取り直して、flashのActionScript (AS)と Javascript (JS)がどのようにやりとりするものなのかを調べてみた。調べたと言っても、既存のinteropコードを眺めただけだけど。基本的には以下の2つを使うことになる:

  • ExternalInterface.call()で、ASから呼び出すJSの関数の名前を指定する
  • ExternalInterface.addCallback()で、JSの関数の呼び出しに対応するASの関数を指定する

これらはいずれもAS側で行うことだ。(JSにはASを特別に扱う仕組みは無い)。コールバックで呼び出されるASの関数に対応するJSの関数の内容は空でよい(純粋仮想関数とかP/Invokeみたいな仕組みを連想すれば良いのではないだろうか)。

AS側は、後はflashをどういじるかの問題だ(実のところ今ここでハマっているのだけど、それはflashライブラリの使い方の問題だ)。ちなみにswfファイルを作ったことは今まで一度もないのだけど、wonderflでコードを編集するだけで自動的にswfまで作ってくれることに気付いたので、ここでビルドしている。

JS側は、いったんflashのobjectを生成してしまえば、後はcall()で指定した関数を定義して、必要に応じてaddCallback()で指定した関数を呼び出すだけだ。これはCanvasからのイベントコールバックでも、wave gadgetのイベントコールバックでもいいはずだ。といっても、どちらもこれから調べるのだけど。

No TrackBacks

TrackBack URL: http://veritas-vos-liberabit.com/noteon/mt-tb.cgi/81

Leave a comment

About this Entry

This page contains a single entry by note on published on January 9, 2010 10:32 AM.

WaveにSVGを埋め込むにはどうすればいいのか was the previous entry in this blog.

google waveであの楽器みたいなやつ is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Categories

Pages

OpenID accepted here Learn more about OpenID
Powered by Movable Type 4.23-en