タイトルで分かるように、私はAS3 ExternalInterfaceとjQuery/swfobjectに問題があります。jQuery swfobject AS3 ExternalInterfaceが動作しない
if (ExternalInterface.available) {
ExternalInterface.call('init');
ExternalInterface.addCallback('testFunc', returnFunc)
}
function returnFunc():void {
ExternalInterface.call('alertFunc');
}
のjQuery:ActionScriptの
:それはオブジェクトを意味明らかにfunction init() {
alert('init');
$('#swf_object').testFunc();
}
function alertFunc() {
alert('finished');
}
は、ID 'swf_object' 私はまた、次のようでオブジェクトを取得しようとしている
を持っています
document.getElementById('swf_object')
document.getElementById('swf_object')[0]
$('#swf_object')[0]
無駄です。
最初のアラート( 'init')を出していますが、最後のアラートを出していません。私は完全に困惑し、誰かが私の間違いを指摘してくれることを願っています!
私はそれがそれのような単純なものであることを知っていました!私はActionScriptにはかなり新しくなっていますが、それは驚くほど明白でした!私は、ActionScriptのコードを(JavaScriptのように)読み続けることを期待していましたが、関数(PHPなど)を待つことが判明しました。関数を実行するのを待つことを期待して、JavaScriptを学習していた時とは逆の問題を覚えていました。 –
@Andrew:AS3とJS(ブラウザ内)は、実際には全く同じです。どちらもシングルスレッド環境でホストされているため、非同期関数を頻繁に使用します。しかし、あなたが関数を呼び出すたびに、それは同期演算です(両方とも(そして私が考えることができるすべての)言語で)。これら2つのコンセプトを調和させるための秘訣は、非同期操作*を開始する関数がsynchronoulsy *を実行するということです。単純に一度に(最初のビットだけで)操作全体を行わないだけです。 – Cameron