- 2007-05-06 23:00
- javascript
前回のエントリ「JavaScriptからFlash ActionScriptを呼び出す最も簡単なサンプル Firefox & Safari」では、FirefoxとSafariにおいてJavaScriptからActionScript3.0の関数を呼び出す方法をご紹介しました。
本エントリではInternet Explorer(IE)で同様のことを実現する方法をご紹介します。ActionScript3.0を利用しますので、Flash9がブラウザにインストールされている必要があります。他の環境設定は前回と同じですので、そちらを参照下さい。
サンプルとなるActionScriptは前回と同じです。
package { import flash.display.Sprite; import flash.external.ExternalInterface; public class Test extends Sprite { function Test() { ExternalInterface.addCallback("callFlash", hello); } public function hello():String{ return "Hello, JavaScript. This is AS3.0"; } } }
JavaScriptからcallFlashをコールするとActionScriptのhello関数が呼び出され、「Hello, JavaScript. This is AS3.0」という文字列を返す、とても簡単なサンプルです。キーとなるのはExternalInterfaceです。addCallback関数でJavaScriptからActionScriptへの連結を行っています。
FirefoxとSafariではembedタグを用いていましたが、IEではobjectタグを利用します。
<object id="as" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"> <param name="movie" value="Test.swf" /> </object>
FirefoxとSafariではembedタグのname属性が大切でしたが、IEではobjectタグのid属性が大切になります。この文字列を利用してSWFファイルにアクセスします。id属性がHTML内で唯一であれば、HTMLの規格に沿った上で任意の文字列ならOKです。
classid属性値はActiveXの識別子なので、この文字列をそのまま利用します。
paramタグのname属性はmovieでvalue属性は連携したいSWFファイルです。
FirefoxやSafariに比べIEはやや複雑ですが、難し過ぎるという程ではないですね。
それではいよいよJavaScriptからActionScriptの関数を呼び出します。
前回と同じく、JavaScriptから呼び出したActionScriptの関数は「Hello, JavaScript. This is AS3.0」という文字列を返すので、それをstr変数で受け取りalert表示します。
var str = window["as"].callFlash(); alert(str);
windowでHTML内に埋め込まれたSWFオブジェクトにアクセスします。ここの「”as”」はobjectタグのid属性値です。
ActionScriptのExternalInterfece.addCallback関数でJavaScriptとActionScriptの関数を連結した通り、JavaScriptではcallFlash関数を利用しActionScriptのhello関数を呼び出しています。
ではこのサンプルをどうぞ。
このサンプルは勿論IEのみで動作します。FirefoxとSafariは前回のエントリを参照下さい。
いかがでしょうか?「Hello, JavaScript. This is AS3.0」というalertが表示されたでしょうか?
前回に続き、今回はIEでJavaScriptからActionScriptの関数を呼び出す最も簡単と思われるサンプルをご紹介しました。IEでも意外と簡単に連携できることが分かりました。Flexがオープンソース化されActionScriptが3.0になり、より実用的になったので、これから益々Webが便利に楽しくなりそうですね。
- Newer: 「ココあとで」というクリッピングとメモをシンプルにするブックマークレット
- Older: JavaScriptからFlash ActionScriptを呼び出す最も簡単なサンプル Firefox & Safari
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://www.adamrocker.com/blog/113/javascript_flash_actionscript_internet_explorer.html/trackback/
- Listed below are links to weblogs that reference
- JavaScriptからFlash ActionScriptを呼び出す最も簡単なサンプル IE from throw Life
