0

我正在構建一個使用Flash進行播放和jquery/javascript用於UI的視頻播放器Web應用程序。通過寫Flash組件的人的設計,我需要使用setVariable在javascript和flash播放器之間進行通信。我已經在互聯網上看過很多人在使用FireFox開發setTariable時遇到問題。我在firefox中設計了我的應用程序,因爲我想用螢火蟲來幫助我開發。現在,整個事情已經建成了,我發現setVariable在IE中不起作用。我得到的錯誤是: 對象不支持屬性或方法'SetVariable';SetVariable適用於FireFox,但不適用於Internet Explorer?

這裏有點相關代碼:

我構建通過JavaScript我的HTML,所以我這是怎麼構建的球員:

var player = 
'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,16,0" width="1" height="1" >' + 
'<param name="movie" value="/flash/Player.swf?server='+server+'">' + 
'<param name="quality" value="high">' + 
'<param name="play" value="true">' + 
'<param name="LOOP" value="false">' + 
'<param name="wmode" value="transparent">' + 
'<embed wmode="transparent" src="/flash/Player.swf?server='+server+'" width="1" height="1" play="true" loop="false" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>' + 
'</object>'; 

我把這段頁面我打電話設置變量之後:

that.player.SetVariable('track',trackNo); 

任何意見,將不勝感激。我知道外部接口是cross js flash公報的首選方法,但我無法訪問flash文件,也無法更改它,所以請僅使用setVariable提供解決方案。謝謝。

回答

2

你需要知道的是,你必須編寫嵌入swf文件的html代碼對於某些瀏覽器是不同的。

Firefox和其他基於Netscape的瀏覽器使用<object>標記,而IE使用<embed>標記。

您可以使用SWFObject將swf嵌入到頁面中。
這是一個單文件,開放源代碼的庫,將爲您處理所有跨瀏覽器閃存嵌入怪癖。
它甚至會附帶a handy generator,這將有助於您製作正確的嵌入代碼以便與庫一起使用。

然後,您可以通過DOM樹中的id檢索swf,並在正確的對象上設置變量。

此外,你應該檢查你是否可以使用FlashVars代替SetVariable()

乾杯

+0

我改變了我的代碼,這樣, – aamiri

相關問題