1
正如您可以通過標題所知道的,我在AS3 ExternalInterface和jQuery/swfobject中遇到了一些問題。jQuery swfobject AS3 ExternalInterface不工作
的ActionScript:
if (ExternalInterface.available) {
ExternalInterface.call('init');
ExternalInterface.addCallback('testFunc', returnFunc)
}
function returnFunc():void {
ExternalInterface.call('alertFunc');
}
的jQuery:
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時遇到了相反的問題,期待它等待函數的執行! – 2012-01-14 22:53:45
@Andrew:AS3和JS(在瀏覽器中)在這方面實際上非常相似 - 都在單線程環境中託管,因此大量使用異步函數。但是,無論何時你調用一個函數,它都是一個同步操作(在我所能想到的所有語言中)。協調這兩個概念的訣竅是啓動異步操作*的函數將運行同步操作* - 它不會立即執行整個操作(只是第一個位)。 – Cameron 2012-01-14 23:00:58