天天看點

[原]as3 flash web 應用 (6)swfobject的使用:将flash嵌入頁面

2010年06月17日 星期四 19:41

由于某度過于惡心等衆所周知的原因,搬離寫了5年的渣度空間,準備把技術性的文章定在CSDN了。這些都是文章備份。勿怪。。

(鑒于最近有些抓取機器和抄襲者,把标題的【原】字都複制,我不得不聲明:本文為 yukon12345原創,轉載請注明出處http://blog.csdn.net/yukon12345)

[原]as3 flash web 應用 (6)swfobject的使用:将flash嵌入頁面

接下來要推薦的是開源插件swfobject(在src檔案夾有所有源碼)

swfobject下載下傳:http://code.google.com/p/swfobject/ (右邊有最新版連結)

swfobject是比較流行的使用js而非使用<embed><object>插入flash影片的js插件,除了插入flash之外,還提供向flash傳遞值,檢測浏覽器版本,簡化加載過程的作用,甚至還可以讓低版本flash player的使用者不離開本頁面而自動更新,最新的2.2版甚至還添加了對iphone嵌入mp4的支援,以及對HTML5的<!doctype html>文檔标簽類型的支援。

中文使用說明:http://wenku.baidu.com/view/6c49d27da26925c52cc5bff3.html

向外開放的程式接口:http://code.google.com/p/swfobject/wiki/api

看到這麼多,昏了吧?來直接進入關鍵主題:

把swf嵌入網頁中:

<html>
<script type="text/javascript" src="swfobject.js"></script> //這裡先要引入這個swfobject插件
<script type="text/javascript">

swfobject.embedSWF("your.swf", "flashcontent", "300", "120","9", "expressInstall.swf");

</script> 
<div id="flashcontent">

This text is replaced by the Flash movie. //這裡是如果js被禁用,導緻無法加載時的顯示文字

</div>
</html>
           

這樣就完成了。很簡單

解釋:

直接使用swfobject.embedSWF()即可導入參數的意義各如下:

1:("your.swf") 你想導入的swf的位址

2:("flashcontent" )指出flash将放入的div的ID号。同時也是flash的ID号。另外如果想用css的話 div#flashcontent可選擇div,object#flashcontent可選擇flash

3:(“300”)寬度

4:("120")高度

5:("9")最低要求版本号。将檢測是否小于此版本号

6:("expressInstall.swf")如果版本過低,将導入的安裝檔案。讓使用者可以在此頁面自動更新。

以上是最簡單的swf檔案導入。

更複雜一點的:将各種參數傳遞給flash:

<html>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
var flashvars={
name1:"hello",
name2:"world"
}
var params={
menu: "false"
}
var attributes = {
id: "myDynamicContent", 
//注意:在這裡不設定時flash影片的id值将繼承于它的html父容器的id,設定後,flashid将會是此設定值(加載完畢響應函數callbackFn執行時,id還是原來的。之後就會改變)
name: "myDynamicContent"
}
function callbackFn(e) {
if(e.success)
{
alert("flash加載成功!\n id:"+e.id+"\n引用:"+e.ref)
}
else{
alert("flash加載失敗!\n id:"+e.id)
}
}
swfobject.embedSWF("你的檔案名位址.swf", "flashcontent", "300", "120", "10", "expressInstall.swf",flashvars, params, attributes, callbackFn);
</script> 
<div id="flashcontent">
This text is replaced by the Flash movie.
</div>
</html>
           

解釋:

flashvars:傳遞給flash影片的URL類型參數。作用同于原始的 *.swf?name1="hello"&name2="wolrd"。as3中使用loaderInfo.parameters數組來擷取參數值。比如使用loaderInfo.parameters['name1']擷取到hello

params:flash的params标簽值。作用同于原始的<param name=" menu" value="false" />

attributes:flash屬性值作用同于<object classid="clsid:F08DF954-8592-11D1-B16A-00C0F0283628" id="Slider1" width="100" height="50">

關于最後一個事件回調參數callbackFn,它接收一個object對象比如e,在加載flash完畢或者失敗後響應執行。e對象屬性有:

success,指出是否加載成功(true/false)

id, 指出使用swfobject.registerObject()接口注冊的flash的id (swfobject.registerObject接口在初始化時會自動調用)

ref, 當加載成功時,傳回HTML對象元素的引用,失敗時傳回undefined。

繼續閱讀