[AS3]jsからflashのメソッドを叩く
jsからflashのメソッドを叩くメモ。
あらかじめ↓のようなjsメソッドを用意する。
今回は例としてブラウザサイズが変更されたらflashメソッドを叩くことにする。
function init_callback(){ if(window.addEventListener&&!window.opera){ window.addEventListener('resize', onResize, false); window.onresize = document.onresize = onResize; }else{ if(window.opera){ window.onresize = onResize; }else{ window.onresize = document.onresize = onResize; } } } function onResize(){ callMovie(so.getAttribute("id")).windowResizeEvent(); } function callMovie(id){ if(swfwheel_safari || navigator.appName.indexOf("Microsoft") != -1){ return window[id]; }else{ return document[id]; } }
そしてこんな↓感じでいつも通りswfを貼り付ける。
<div id="flashcontents"></div> <script type="text/javascript"> <!-- var so = new SWFObject('swf/main.swf', 'main', '1000', '640', '9.0.45', '#ffffff'); so.write('flashcontents'); //-->
flash側は↓のinit_callbackを任意のタイミングで叩く。
叩くとブラウザリサイズ時にcall_from_jsメソッドが実行される。
function init_callback():void{ ExternalInterface.call("init_callback"); ExternalInterface.addCallback("windowResizeEvent", call_from_js); } function call_from_js():void{ //実行される処理 }