*1 ちょっと複雑ですね。今回のような使用方法であれば,ブラウザで表示している場合は,Flashプレーヤーを表示しているブラウザが「コンテナ」となります。単に「FlashムービーからJavaScriptを実行するにはExternalInterfaceクラスを使用する」くらいの認識でも構いませんね。

*2 本記事では,誌面の都合上JavaScriptの文法等に関しての解説は行いません。書籍やWeb上の資料等で学習を深めてください。JavaScriptはActionScriptと同じECMAScriptですので,ActionScriptを使っている方であれば覚えるのは簡単かもしれません。なお,本記事で記述するJavaScriptは,Internet Explorer 5.0以降で動作するものを記述しています。ブラウザの種類・バージョンによって,適宜コードを修正,もしくはクロスブラウザ・スクリプティング対策をしてください。

*3 ActionScriptのtraceステートメントにちょっと似ていますね。

*4 ローカル環境下でテストをした場合には,セキュリティ保護の警告が表示されることがあります。Web上にアップロードしてから動作を確認することをお勧めします。

*5 ブラウザの種類が「Firefox」の場合には,一度alertステートメントの表示を行った後では,テキスト入力フィールドに文字列を入力する際に,処理が非常にもたつきます。JavaScriptと連携を取りながらFlashムービー側でユーザーに入力を求め,メッセージをalertステートメントを使って表示するようなアプリケーションを作成する場合にはご注意ください。大変申し訳ないのですが,筆者はこの現象を回避する方法を知りません。

*6 本文中では,「flash.externalパッケージをすべて」インポートしていますが,ここは「import flash.external.ExternalInterface」と,ピンポイントでExternalInterfaceクラスをインポートしても構いません。

*7 次期バージョンのFlashに搭載される「ActionScript3.0」では正規表現がサポートされます。楽しみですね。

*8 本文中ではActionScriptの関数名と,呼び出す関数名を少し違うものにしていますが,これはもちろん同じ名前でも構いません。

*9 もちろん,自分の扱いやすいように変更しても構いません。ただし,その際にはobjectタグのid属性とembedタグのname属性には同じ値を設定するようにしておきましょう。

*10 Netscape系のブラウザでは「window[“fromJavaScript”]」となります。このあたりはクロスブラウザ・スクリプティングが必要な個所ですね。

*11 本文中では,「flash.externalパッケージをすべて」インポートしていますが,ここは「import flash.external.ExternalInterface」と,ピンポイントでExternalInterfaceクラスをインポートしても構いません。

*12 ブラウザ名を管理しているプロパティです。