を使用してページに挿入されたJavaScriptからActionScript3の関数を呼び出すにはどうすればよいExternalInterface.call()
ですか?
私はこれをたくさんの方法で試しましたが、役に立ちませんでした。
必要なすべてのコードの簡略版を次に示します。
public function myClass() {
ExternalInterface.addCallback("callASFunction", myASFunction);
var loadJS:XML =
<script><![CDATA[
function(oid){
ob = document.getElementById(oid);
if (!window.FB) { /* Include FB JS SDK */ }
window.fbAsyncInit = function() {
FB.init({ ... });
FB.getLoginStatus(function(response) {
/* ob.callASFunction(); <= ERROR */
ob.callASFunction(response.status); /* <= FIX */
});
}
}
]]></script>
// Inject the JS into the page
ExternalInterface.call(loadJS, ExternalInterface.objectID);
}
public function myASFunction(vars:String){
// Do great things
}
コメントコメント
でマークされた行は<= ERROR
、Chromeで次のようにスローされます。
Uncaught Error: Error calling method on NPObject.
そしてFFでは:
uncaught exception: Error in Actionscript. Use a try/catch block to find error.
問題は、が呼び出されるExternalInterface.addCallback()
前にFlashオブジェクトにリスナーをアタッチしていないことだと思います。ob.callASFunction()
または、おそらく私は何かが欠けています。
任意のポインタをいただければ幸いです。