2009-01-10 75 views
1

我目前使用jQuery,以及swfObject動態地將swf電影嵌入到我的網頁中。如何在Flash動畫成功加載時捕獲事件觸發器?

我目前在將Immem的音樂播放器嵌入到我的網頁時出現問題,因爲他們的嵌入代碼沒有任何加載屏幕。所以,當我使用swfObject替換元素時,該區域通常是空白的。在最壞的情況下,這意味着用戶不會知道嵌入歌曲正在加載。

所以,我試圖找出在flash被加載後綁定事件的方式。由於我的計劃將在頂部放置巨大的圖像z-index,並使用此觸發器隱藏圖像。我想我已經嘗試過使用$('#embed').load(function(){ ... });,但沒有運氣。

有人對此有任何解決方案嗎?我只是想知道這是否可行,因爲我不想用閃存破解並嘗試向Flash文件添加'loader'。

更多注意事項:爲了更加清楚,我想將imeem的音樂播放器嵌入到我的網頁中。所以,我實在無法控制Flash文件,即我無法自己創建Flash文件。

回答

0

你可以從Flash電影中做到這一點。然而,那麼你需要控制電影(你可能沒有)。

+0

是的,我沒有對Flash文件的控制,因爲它是一個immem的嵌入。 – sikachu 2009-01-10 13:40:31

2

通常最容易做的事情就是在調用處理程序之前等待外部資源完成加載的普通ol'<body onload="..."。但是,如果您使用swfObject動態添加嵌入式插件,則瀏覽器將爲您的Flash影片(不知道您的插件瞭解什麼內容)觸發主體的onload。

請參閱http://blog.deconcept.com/swfobject/forum/discussion/271/javascript-onload-event-does-not-reflect-page-load-using-swfobject/與您的類似討論。這是我最好的猜測,你不能在沒有修改一些時尚的原始瑞士法郎時做你想做的事情。

0

注意,你需要的wmode =透明,如果你打算用模糊的圖像或HTML東西閃光

0

問題用window.load(上面提到的解決方案)是不是有用的,如果你的主swf權重只有1 kb,但它實際上不顯示任何東西(只是作爲一個容器,獲取額外的內容加載,這通常是在閃存文件中的情況。

我會做的是使用Actionscript的ExternalInterface類允許您的Flash播放器與包含Flash文件的html文件中提供的JavaScript函數進行通信。您可以讓Flash文件調用一個可以觸發函數的JavaScript函數它會告訴您的JavaScript處理腳本Flash已準備就緒。 有什麼好的,這是你得到的確切級別的控制你需要什麼應該加載在Flash文件中,當JavaScript接管。

請參見本關於使用ExternalInterface的更多信息:http://blog.circlecube.com/2008/02/01/actionscript-javascript-communication/

相關問題