1. 程式人生 > >相容火狐ie 在html中給.swf傳遞引數

相容火狐ie 在html中給.swf傳遞引數


原來的flash是一個動態效果很好,但是圖片內容、文字內容都是寫在flash裡面的,互動性不好,在改起來比較麻煩,所以想改成在html可以傳參到.swf裡面,動態更改flash 裡面的內容。

探索過程如下:

1.我要在flash內部呼叫的html傳進的引數

改變文字內容時,先將靜態文字改為動態文字,然後加入as程式碼 we_ser.text=_root.we_ser;

改變圖片內容時,先將圖片轉換為影片剪輯,然後加入as 程式碼loadMovie( _root.pic,_root);

2.我要在html中給.swf傳參

最初程式碼如下:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="../../../download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="766" height="374">
<param name="flashVars" value="companyname=產品設計&we_ser=best service and best compangs">
<param name="movie" value="as2.swf" >
<param name="quality" value="high">
<embed src="as2.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="766" height="374">
</embed>
</object>

這段程式碼加到html中,將flash生成的.swf檔案放到與html同目錄下,用ie瀏覽器訪問頁面,頁面顯示正常,

flash效果顯示很好,內容圖片都隨著html傳進的引數改變。但在火狐瀏覽器下傳進的引數不能在頁面上

正常顯示,why?本人處於莫名其妙當中,後來廣發英雄帖Frusop大哥熱心指點,才知道在除ie瀏覽器外

,其他瀏覽器只識別<embed></embed>裡的東西。於是更改程式碼如下:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="../../../download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="766" height="374">
<param name="flashVars" value="companyname=產品設計&we_ser=best service and best compangs">
<param name="movie" value="as2.swf" >
<param name="quality" value="high">
<embed src="as2.swf?companyname=產品設計&we_ser=best service and best compangs" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="766" height="374">
</embed>
</object>

這次火狐終於給了面子可以顯示我通過html傳入的內容,但新的問題又出現了,火狐中頁面將html傳入的文

字顯示為亂碼,這應該是頁面編碼問題,又經過Frusop大哥的指點可能as中要加入一條

System.useCodepage = true;來定義flash中的內容使用頁面編碼,我將詞條語句加入到as檔案中,但亂碼

問題依然存在,看了沒有找到問題的根源,仔細觀察了下<param>部分程式碼跟<embed>中的程式碼,靈機

一動將程式碼改為了

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="../../../download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="766" height="374">
<param name="flashVars" value="companyname=產品設計&we_ser=best service and best compangs">
<param name="movie" value="as2.swf" >
<param name="quality" value="high">
<embed src="as2.swf" flashVars="companyname=產品設計&we_ser=best service and best compangs" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="766" height="374">
</embed>
</object>

面對這麼正確的程式碼,火狐終於低頭了,火狐ie瀏覽器中,頁面都顯示正常,嘿嘿!在這再次感謝江湖救急

時熱心的各位,將學到的這些分享與大家,希望有人會用的上。