Home > javascript > JavaScriptからFlash ActionScriptを呼び出す最も簡単なサンプル IE

JavaScriptからFlash ActionScriptを呼び出す最も簡単なサンプル IE

前回のエントリ「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への連結を行っています。

では早速HTMLにSWFを埋め込みます

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の関数を呼び出します。
前回と同じく、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が便利に楽しくなりそうですね。

関連のありそうなエントリ

Comments:0

Comment Form
Remember personal info

*
To prove that you're not a bot, enter this code
Anti-Spam Image

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

Home > javascript > JavaScriptからFlash ActionScriptを呼び出す最も簡単なサンプル IE

Twitter
Search
Feeds
Meta

Return to page top