我正在爲我無法直接訪問的網站開發Flash應用程序。 Flash應用程序應該在網站上調用由網站發佈者定義的JavaScript功能。我被告知檢查JavaScript對象是否存在等從動作調用它的功能之前:在從Flash調用它之前確保存在javascript對象
var ok:Boolean = ExternalInterface.call(function() {
return typeof customObject !== \'undefined\'
}
如果我然後繼續:
if (ExternalInterface.available && ok) {
ExternalInterface.call('customObject.doSomething', someStr);
}
請問這個如果病情始終是假的,因爲那個存入ok
的電話在我使用支票之前可能沒有完成,或者是ExternalInterface.call
instantenious?換句話說,在決定是否可以保存customObject的前提下,我會不知何故必須等待第一次調用的結果。
編輯:按照意見提出更新代碼:
if (ExternalInterface.available) {
var ok:Boolean = ExternalInterface.call('function() { return typeof customObject !== \'undefined\' }');
if (ok) {
ExternalInterface.call('customObject.doSomething', someStr);
} else {
.. do some fallback
}
} else {
.. do some fallback
}
好吧,檢查確定,如果我可以依靠它爲真正的程序邏輯工作。 – kontur 2012-02-10 21:03:10
在我真正的應用程序中,if子句有一個else部分,執行一個不太理想但仍然有效的動作 - 我希望只有當我肯定通過ExternalInterface調用特定的JavaScript對象時出現某種原因,另一個。 – kontur 2012-02-10 22:51:51
你的意思是我應該將'var ok:Boolean ...'封裝成'if(ExternalInterface.avaialble){...'子句? – kontur 2012-02-11 16:14:57