javascript向flash swf文件傳遞參數(shù)值注意細節(jié)
2024-05-06 14:20:36
供稿:網(wǎng)友
問題:如何使用javascript向SWF文件傳遞參數(shù)?
在網(wǎng)上找了一個完整的教程,很有啟發(fā)性和實用性,如下是完整實現(xiàn)的步驟:
配置SwfObject:
Swfobject2是目前檢測用戶是否安裝Flash的最佳方法。它被認為是‘行業(yè)標準',并且Adobe所有產(chǎn)品的新版本(Flex4,F(xiàn)lash CS5)都會使用SwfObject來檢測Flash Player。
先要下載,解壓ZIP文件,復(fù)制swfobject.js文件到你的web服務(wù)器上,根目錄下創(chuàng)建名為'js'根文件夾是個不錯的想法。(因此文件位置應(yīng)該是http://myserver.com/js/swfobject.js)。我們會在以后創(chuàng)建的HTML文件中參考這個文件的。如果你想使用ExpressInstall功能(為用戶提供簡單的升級方法),你必須將expressInstall.swf復(fù)制到相同的文件夾下。
配置HTML文件:
HTML文件包括兩個Javascript。一個用來抓取來自網(wǎng)址的參數(shù)。這是由Matt White創(chuàng)建的,它雖然簡單但十分有效。代碼如下:
代碼如下:
<script type="text/javascript">
/* Get URL Parameter in Javascript. Code from: http://mattwhite.me/11tmr.nsf/D6Plinks/MWHE-695L9Z */
function getURLParam(strParamName){
var strReturn = "";
var strHref = window.location.href;
if ( strHref.indexOf("?") > -1 ){
var strQueryString = strHref.substr(strHref.indexOf("?"));
var aQueryString = strQueryString.split("&");
for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
if ( aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){
var aParam = aQueryString[iParam].split("=");
strReturn = aParam[1];
break;
}
}
}
return unescape(strReturn);
}
</script>
將如上代碼放置到你的HTML文件的HEAD標簽中。你同樣需要將導(dǎo)入SWFObject腳本導(dǎo)入進來,代碼如下:
<script type="text/javascript" src="/js/swfobject.js"></script>另一個Javascript是使用SwfObject插入SWF文件。你可以將其放置在HTML文件的任何地方。首先我們要做的是創(chuàng)建一個DIV標簽,在沒有安裝合適的Flash Player時提示用戶。
代碼如下:
<div id="flashcontent">
<strong>This content requires Flash Player 9 (or a more recent version).
<noscript>Make sure JavaScript is turned on. </noscript>
You need to <a target="_blank">
<span style="text-decoration: underline;">upgrade your Flash Player</span></a></strong>
</div>
在DIV標簽內(nèi)你可以輸入任何想輸入的內(nèi)容。添加圖片或者反饋信息隨你喜歡,因為這些內(nèi)容都會被SWF文件所替換。
接下來是實現(xiàn)替換功能的Javascript:
代碼如下:
<script type="text/javascript">
var flashvars = { test:getURLParam("test") };
var params = {};
var attributes = {};
swfobject.embedSWF("/articlefiles/jsvars/jsvars.swf", "flashcontent", "550", "400", "9.0.0","", flashvars, params, attributes);