2012-07-25 54 views
0

我被內聯這樣的HTML embeding Flash播放器在HTML:在Flash中嵌入Flash對象時是否觸發onLoad/onError事件?

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" 
width="470" height="320"> 
<param name="movie" value="http://myserver.com/app.swf"></param> 
<param name="FlashVars" value="src=http://myserver.com/mymovie.flv"></param> 
<param name="allowscriptaccess" value="always"></param> 
<embed src="http://myserver.com/strobe/StrobeMediaPlayback.swf" 
    type="application/x-shockwave-flash" 
    allowscriptaccess="always" width="470" height="320" 
    FlashVars="src=http://myserver.com/mymovie.flv"> 
</embed> 
</object> 

我希望收到回調的onLoad或onError的通知,如果SWF應用程序是正確下載和初始化。有可能嗎? Flash插件是否暴露了JavaScript的這種事件?

回答

1

如果您將SWF嵌入SWFObject,那麼它的embedSWF()方法有一個可選的回調參數,您可以使用它來知道嵌入已成功完成還是失敗。

這裏是方法的簽名:

swfobject.embedSWF(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj, callbackFn) 

我從來沒有見過任何其他方式來獲取這些信息,但後來我又總是用SWFObject的:)

+0

這似乎是唯一的出路,儘管我無法產生回調函數返回success = false的條件。即使swfUrl被破壞,回調也會以success = true被調用。 – PanJanek 2012-07-26 06:13:11

+1

我認爲SWFObject可能只是報告它成功地將Flash對象添加到DOM,不一定表示它加載了一個有效的SWF :(如果您必須驗證您的SWF是否實際加載並正在運行,則可能需要使用ExternalInterface來進行通信/加載後的SWF。 – 2012-07-26 06:33:57