PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > 开发编程 > HTML+CSS > 正文

    B5教程网浅谈网页嵌入flash的几种方法,详解swfobject用法

    作者:admin来源:网络浏览:时间:2020-09-30 00:07:50我要评论
    导读:目前,网页插入swf的方法五花八门,由于IE只支持对Object,而火狐,谷歌,Safari等只支持对Embed。又由于embed不能通过W3C验证。为了兼容各
    目前,网页插入swf的方法五花八门,由于IE只支持对Object,而火狐,谷歌,Safari等只支持对Embed。又由于embed不能通过W3C验证。为了兼容各大主流浏览器,又为了通过W3C标准,所以,插入一个swf才变得复杂。下面,简单总结下常用网页插入flash的方法,并且说明各种方法的利弊。
    方法一:Object和Embed混合写法。


     
    复制代码 代码如下:
    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
       codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/
    swflash.cab#version=7,0,0,0"
       width="550" height="400" id="Untitled-1" align="middle">
    <param name="allowScriptAccess" value="sameDomain" />
    <param name="movie" value="mymovie.swf" />
    <param name="quality" value="high" />
    <param name="bgcolor" value="#ffffff" />
    <embed src="mymovie.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="mymovie" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
    </object>

    优点:没有兼容性问题。

    缺点:1、无法通过W3C验证。
             2、由于使用了两种插入方法,设置参数时,要设置两次。
             3、微软由于种种原因,限制了 IE 的 ActiveX 的使用模式,就是在页面中的 ActiveX 有一个虚框,需要用户点击一次才能正常交互。Flash是作为一个 ActiveX 嵌入到网页中的,所以它也会受牵连,只有通过 JS 嵌入 Flash 才能解决这个问题。
             4、没有 Flash 版本检测,如果版本浏览器的flash插件版本不够,要么不能正常显示你的 swf 文件,要么会弹出一个 ActiveX 的确认安装的框。

    方法二:Flash satay 即只用object,摒弃embed。


     
    复制代码 代码如下:
    <object type="application/x-shockwave-flash
    data="c.swf?path=movie.swf"
    width="400" height="300">
    <param name="movie"
    value="c.swf?path=movie.swf" />
    <img src="noflash.gif"
    width="200" height="100" alt="" />
    </object>

    优点:1、没有embed,能够通过W3C验证了。
             2、浏览器兼容性非常不错。
             3、没有embed,设置参数相对简单。
    缺点:1、同第一种方法,仍旧会显示虚线框,如果flash插件版本不够,要么不能正常显示你的 swf 文件,要么会弹出一个 ActiveX 的确认安装的框。
             2、holder swf 来加载你的目标 swf 以保证 IE 中的 stream 能力,如果你需要通过 flashvars 来传参,或者和页面的 JS 交互,会很麻烦。

    方法三:用JS嵌入(终极方法)。

    这里有必要说下,js嵌入方法很多,有优有劣。SWFObject是比较好的方法。下面具体说说SWFObject的优缺点以及使用方法。
    优点:1、完美兼容各大浏览器
             2、通过了W3C验证
             3、不会再产生虚线框,也不会弹出ActiveX 的确认安装的框
             4、。。。。。。
    使用方法:使用方法一:

    1、在head区引入下面代码

     
    复制代码 代码如下:
    <script type="text/javascript" src="swfobject.js"></script>
    <script type="text/javascript">
        swfobject.registerObject("myId", "9.0.0", "expressInstall.swf");
    </script>

    2、把以下代码拷贝到你想引用的地方

     
    复制代码 代码如下:
    <object id="myId" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="300" height="120">
        <param name="movie" value="test.swf" />
        <!--[if !IE]>-->
        <object type="application/x-shockwave-flash" data="test.swf" width="300" height="120">
        <!--<![endif]-->
        <div>
            <h1>Alternative content</h1>
            <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.xxxx.net/uploads/allimg/140107/10030641b-0.gif" alt="Get Adobe Flash player" /></a></p>
        </div>
        <!--[if !IE]>-->
        </object>
        <!--<![endif]-->
    </object>

    注:swfobject.registerObject("myId", "9.0.0", "expressInstall.swf");参数“myID”为object的ID,expressInstall.swf不是你要引入的flash,而是下载的插件里的flash,位置不能错。test.swf才是你要引入的flash。路径不能设置错,并且要设置两次:<param name="movie" value="test.swf" />和<object type="application/x-shockwave-flash" data="test.swf" width="300" height="120">

    使用方法二:

    1、在head区引入下面代码


     
    复制代码 代码如下:
    <script type="text/javascript" src="swfobject.js"></script>
    <script type="text/javascript">
        swfobject.embedSWF("test.swf", "myContent", "300", "120", "9.0.0", "expressInstall.swf");
    </script>

    2、在你想插入的地方放个div,ID就叫"myContent"。如下:

     
    复制代码 代码如下:
    <div id="myContent">
        <h1>Alternative content</h1>
        <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.xxxx.net/uploads/allimg/140107/10030641b-0.gif" alt="Get Adobe Flash player" /></a></p>
    </div>

    注:swfobject.embedSWF("test.swf", "myContent", "300", "120", "9.0.0", "expressInstall.swf");参数“test.swf”为你要引入的flash,“myContent”为你DIV的ID,“expressInstall.swf”为下载的插件里的flash。

    官方网址:http://blog.deconcept.com/swfobject/

    下载地址:swfobject_2_2.zip

    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-70-1110-1.html