SWFObjectを使ったExternalInterfaceまとめ
FlashとJSの通信をしたいならExternalInterfaceを使うのは常識だとして、実際、どう書いていいのかがよく分からなくなる場合があるのでまとめです。
HTML側↓
<div id="externalFlash">
<script type="text/javascript">
// <![CDATA[
var so = new SWFObject('hoge.swf', 'external2', '400', '300', '8', '#ffffff');
so.addParam('wmode', 'opaque');
so.addParam('allowScriptAccess', 'always');
so.write('externalFlash');
// ]]>
</script>
- まず、SWFObjectコードをexternal**というDIVで包む
- SWFObjectの第二引数をexternal**というIDにする
- allowScriptAccessをalwaysにする
僕が試した感じ、これでIE/FFともにうまくいきました。
Flash側↓
import flash.external.*; //←いちばん最初に書く
//
test_btn.onRelease = function() {
ExternalInterface.call('hogeFunc', hoge1);
};
Flashは最初にexternalクラスをインポートして、callメソッドでJS関数を呼び出すだけ。簡単。JS関数はcallメソッド(‘関数名’,'引数1′…)という形式になります。引数がなければcall(‘hogeFunc’);だけでも可。
最後にJS側↓
function hogeFunc(hoge1){
window.alert(hoge1)
}
これでJSとの融合もバッチリです。
いつか役に立ちそうな Flash × JavaScript
スパイスラボ神部です。 flashでmixiアプリ作るためのポイントを調査 – プログラマー、再起動中 SWFObjectを使ったExternalInt…