簡體   English   中英

從js問題調用As函數

[英]Calling As function from js problem

我有不受我控制的swf文件。 SWF希望在初始化后通過JavaScript調用來設置一些變量。

swf是使用swfobject嵌入的,並且我嘗試在嵌入后立即調用as函數。 這似乎為時過早,因為出現錯誤。 其他一切都應該沒問題,因為通過Firebug手動調用as函數不會產生錯誤。

所以問題是嵌入完成后如何調用該函數?

頁面還在加載時,您是否正在執行此操作? 還是從上午處理程序? 如果是內聯javascript,建議您在javascript的onload處理程序中執行此操作,您可以這樣做-

window.onload = function() {
  // your code here 
}

頁面完全加載后,它將運行您的代碼。

但是,這不能保證閃存已初始化。 您可以通過在Flash准備好后讓Flash回調javascript來做到這一點,但是您說swf不在您的控制范圍內。 我真正想到的就是使用onload方法來確保頁面已完成加載,然后在嘗試使用它之前插入一小段延遲。 查看setTimeout javascript函數。 雖然不是一個很好的解決方案。

找到了一些代碼來檢查該功能是否存在。 綜上所述:

if (typeof yourFunctionName == 'function') {
    yourFunctionName();
}

那對你有用嗎? 如果確實如此,那么您可以將其包裝在while循環中。 比setTimeOut少一些討厭!

集成Flash和HTML / JavaScript時,有幾種通用方法可以消除此問題。

  1. 將變量作為flashvars傳入。 它們將立即可用於Flash電影。

  2. 加載Flash后,它應調出您的頁面,通常有一個合同定義了可以/必須實現的Flash影片調用方法。 例如,它將聲明在加載Flash文件后將調用MovieLoaded() ,然后可以將依賴於正在加載的電影的任何腳本放入此方法中...

     function MovieLoaded() { doSomething(); } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM