FlashObject詳解:Flash的檢測和嵌入Javascript指令碼
最後更新:2017-02-28
來源:互聯網
上載者:User
javascript|object|指令碼|詳解 可能很多人並不太瞭解FlashObject,特意把官網翻譯整理了下。(E文有限,如有錯誤,敬請指正。)
官方地址:
http://blog.deconcept.com/flashobject/
目前最新版本:FlashObject 1.3
下載地址:
http://blog.deconcept.com/flashobject/flashobject1-3.zip
特點:
1、支援所有flash內建參數設定。且設定更簡單方便。
2、內嵌flash player升級探測器,並提示升級。
3、完全通過XHTML 1.0 Strict驗證。
4、可以解決IE升級對flash的影響,支援絕大部分瀏覽器版本。
使用方法:
1、首先下載上面的flashobject.js檔案,放到你的網頁目錄下。
2、調用js檔案,在<head></head>中加入:
<script type="text/javascript" src="flashobject.js"></script>
3、設定需要插入flash的htm代碼:
<div id="flashcontent">這裡放上你想替換flash的文字。</div>
4、在上面代碼後添加flash的設定代碼:
<script type="text/javascript">
var fo = new FlashObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
fo.write("flashcontent");
</script>
上面FlashObject中的基本參數設定依次為:檔案地址,ID,寬度,高度,flash版本,背景色。
選擇性參數有:
useExpressInstall: 快速升級flash player 值為ture/false;
quality:播放品質,預設為"high";
xiRedirectUrl:指定完成(useExpressInstall)快速升級player後的定向網址。
redirectUrl:指定flash player版本不正確的定向網址。
detectKey:flash檢測的地址參數,預設為detectflash。如:要不檢測flash,可以在網址後面加上?detectflash=false。
fo.write("flashcontent");是把flash內容寫到id="flashcontent"裡。
Flash參數設定:
一般的flash參數設定為:
<param name="quality" value="high">
<param name="wmode" value="transparent">
而FlashObject的參數設定為:
<script type="text/javascript">
var fo = new FlashObject("movie.swf", "mymovie", "200", "100%", "7", "#336699");
fo.addParam("quality", "low");
fo.addParam("wmode", "transparent");
fo.addParam("salign", "t");
fo.write("flashcontent");
</script>
更多的的參數請參照Macromedia的詳細介紹:http://www.macromedia.com/cfusion/knowledgebase/index.cfm?id=tn_12701
Flashvars變數設定:
一般的是通過Flashvars來給flash條件變數:
<param name="FlashVars" value="variable1=value1&variable2=value2&variable3=value3">
而FlashObject後的變數設定為:
<script type="text/javascript">
var fo = new FlashObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
fo.addVariable("variable1", "value1");
fo.addVariable("variable2", "value2");
fo.addVariable("variable3", "value3");
fo.write("flashcontent");
</script>
這樣設定後,所有的變數就馬上傳到flash的_root上了。
另外,FlashObject還提供了一個getQueryParamValue()函數來調用URL網址串的參數。
例如網址:http://www.example.com/page.html?variable1=value1&variable2=value2
你可以通過以下方法來把上面的參數傳遞給flash。
<script type="text/javascript">
var fo = new FlashObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
fo.addVariable("variable1", getQueryParamValue("variable1"));
fo.addVariable("variable2", getQueryParamValue("variable2"));
fo.write("flashcontent");
</script>
同時,getQueryParamValue()還支援從location.hash讀取變數。例子:
http://www.slideshowpro.net/demo/demo_default.php
Flash player的快速安裝功能
FlashObject完全支援Flash Player的快速安裝功能。通過在flash的第一幀添加一段AS代碼就可以輕鬆達到檢測使用者Flash Player版本,並提示更新的功能。expressinstall.as代碼如下:
#include "expressinstall.as"
var ExpressInstall = new ExpressInstall();
if (ExpressInstall.needsUpdate) {
var upgradeMsg = attachMovie("upgradeMsg_src", "upgradeMsg", 1);
upgradeMsg._x = Stage.width / 2;
upgradeMsg._y = Stage.height / 2;
upgradeMsg.upgradeBtn.onRelease = function() {
ExpressInstall.init();
}
stop();
}
注意要把上面的AS放到主時間軸第一幀。並且這一幀上不要放任何其他內容。具體樣本:
http://blog.deconcept.com/flashobject/expressinstall.html