`

网页中嵌入swf文件的几种方法(转)

    博客分类:
  • JS
 
阅读更多

1. object + embed       传统的方法

优点:浏览器兼容性好,是 Macromedia 一直以来的官方方法
缺点:
a.embed 标签是不符合 W3C 的规范的,无法通过验证。当然,如果你不在乎什么规范不规范,另当别论。
b.微软由于种种原因,在 sp2 后限制了 IE 的 ActiveX 的使用模式,就是在页面中的 ActiveX 有一个虚框,需要用户点击一次才能正常交互。Flash是作为一个 ActiveX 嵌入到网页中的,所以它也会受牵连,只有通过 JS 嵌入 Flash 才能解决这个问题。
c.没有 Flash 版本检测,如果版本浏览器的flash插件版本不够,或者不能正常显示你的 swf 文件,或者会弹出一个 ActiveX 的确认安装的框。

<object id="forfun" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300"
    codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0">
    <param name="movie" value="/seufld/seufld/flash/focus2.swf">
    <param name="quality" value="high">
    <param name="bgcolor" value="#F0F0F0">
    <param name="menu" value="false">
    <param name="wmode" value="opaque"><!--Window|Opaque|Transparent-->
    <param name="FlashVars" value="">
    <param name="allowScriptAccess" value="sameDomain">
    <embed id="forfunex" src="/seufld/seufld/flash/focus2.swf"
        width="400"
        height="300"
        align="middle"
        quality="high"
        bgcolor="#f0fff8"
        menu="false"<!--添加后,ff下才正常-->
        play="true"
        loop="false"
        FlashVars=""
        allowScriptAccess="sameDomain"
        type="application/x-shockwave-flash"
        pluginspage="http://www.adobe.com/go/getflashplayer">
    </embed>
</object>

 

我们项目里也有这么用的,根据传过来的长宽判断给是横还是竖版的播放器:

#if($height < $width)
    	<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="videoPlayer" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="510" height="423">
#else
		<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="videoPlayer" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="456" height="540">
#end
    <param name="movie" value="$swfUrl">
    <param name="allowScriptAccess" value="always">
    <param name="allowFullScreen" value="true">
    <param name="allowNetworking" value="all">
    <param name="FlashVars" value="auto_start=on">
    <param name="quality" value="high">
    #if($height < $width)
    	<embed name="swf_other_content" width="510" height="423" src="$swfUrl" flashvars="&&" allowscriptaccess="always" allowfullscreen="true" allowNetworking="all" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash">
	#else
		<embed name="swf_other_content" width="456" height="540" src="$swfUrl" flashvars="&&" allowscriptaccess="always" allowfullscreen="true" allowNetworking="all" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash">
	#end
</object>
 

 

================分割线================

2. 单object

这种方法的名字叫做 Flash satay,最早是2002年由 Drew McLellan 发表在 A List Apart 上,后来又经过了几次完善:
<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="http://xuguangzhi2003.blog.163.com/blog/noflash.gif" width="200" height="100" alt="" />
</object>

优点:这方法没有embed,可以通过验证,浏览器兼容性也不错
缺点:
a.需要一个 holder swf 来加载你的目标 swf 以保证 IE 中的 stream 能力,如果你需要通过 flashvars 来传参,或者和页面的 JS 交互,会很麻烦。
b.ActiveX的虚框问题。
c.没有版本检测。
d.还是有少数用户代理(比如一些版本的 safari 和一些屏幕阅读器)不认这种方式,有 bug。 

================分割线================

3. 双object

<object id="exercises" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="214" height="144">
    <param name="movie" value="${contextPath}/flex/photo.swf" />
    <param name="wmode" value="window" />
    <param name="flashvars" value=""/>
    <!--[if !IE]><!-->
    <object id="exercisesEx" type="application/x-shockwave-flash"
        data="${contextPath}/flex/photo.swf" width="214" height="144">
        <param name="flashvars" value=""/>
    <!--<![endif]-->
        <!--[if gte IE 6]>
        <![endif]-->
        <!--[if !IE]><!-->
        <!--<![endif]-->
        <a href="http://www.adobe.com/go/getflashplayer">
            <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
        </a>
    <!--[if !IE]><!-->
    </object>
    <!--<![endif]-->
</object>
 

================分割线================

4. flex提供的标准方法

<!-- BEGIN Browser History required section -->
<link rel="stylesheet" type="text/css" href="http://xuguangzhi2003.blog.163.com/blog/history/history.css" />
<!-- END Browser History required section -->

<script src="http://xuguangzhi2003.blog.163.com/blog/AC_OETags.js" language="javascript"></script>

<!-- BEGIN Browser History required section -->
<script src="http://xuguangzhi2003.blog.163.com/blog/history/history.js" language="javascript"></script>
<!-- END Browser History required section -->

<style>
body { margin: 0px; overflow:hidden }
</style>
<script language="JavaScript" type="text/javascript">
<!--
// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required
var requiredMajorVersion = 9;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Minor version of Flash required
var requiredRevision = 60;
// -----------------------------------------------------------------------------
// -->
</script>
</head>

<body scroll="no">
<script language="JavaScript" type="text/javascript">
<!--
// Version check for the Flash Player that has the ability to start Player Product Install (6.0r65)
var hasProductInstall = DetectFlashVer(6, 0, 65);

// Version check based upon the values defined in globals
var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);

if ( hasProductInstall && !hasRequestedVersion ) {
    // DO NOT MODIFY THE FOLLOWING FOUR LINES
    // Location visited after installation is complete if installation is required
    var MMPlayerType = (isIE == true) ? "ActiveX" : "PlugIn";
    var MMredirectURL = window.location;
    document.title = document.title.slice(0, 47) + " - Flash Player Installation";
    var MMdoctitle = document.title;

    AC_FL_RunContent(
        "src", "playerProductInstall",
        "FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
        "width", "100%",
        "height", "100%",
        "align", "middle",
        "id", "ManagePlatform",
        "quality", "high",
        "bgcolor", "#869ca7",
        "name", "ManagePlatform",
        "allowScriptAccess","sameDomain",
        "type", "application/x-shockwave-flash",
        "pluginspage", "http://www.adobe.com/go/getflashplayer"
    );
} else if (hasRequestedVersion) {
    // if we've detected an acceptable version
    // embed the Flash Content SWF when all tests are passed
    AC_FL_RunContent(
            "src", "ManagePlatform",
            "width", "100%",
            "height", "100%",
            "align", "middle",
            "id", "ManagePlatform",
            "quality", "high",
            "bgcolor", "#869ca7",
            "name", "ManagePlatform",
            "allowScriptAccess","sameDomain",
            "type", "application/x-shockwave-flash",
            "pluginspage", "http://www.adobe.com/go/getflashplayer"
    );
} else { // flash is too old or we can't detect the plugin
    var alternateContent = 'Alternate HTML content should be placed here. '
    + 'This content requires the Adobe Flash Player. '
       + '<a href=http://www.adobe.com/go/getflash/>Get Flash</a>';
    document.write(alternateContent); // insert non-flash content
}
// -->
</script>
<noscript>
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
            id="ManagePlatform" width="100%" height="100%"
            codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
            <param name="movie" value="ManagePlatform.swf" />
            <param name="quality" value="high" />
            <param name="bgcolor" value="#869ca7" />
            <param name="allowScriptAccess" value="sameDomain" />
            <embed src="http://xuguangzhi2003.blog.163.com/blog/ManagePlatform.swf" quality="high" bgcolor="#869ca7"
                width="100%" height="100%" name="ManagePlatform" align="middle"
                play="true"
                loop="false"
                quality="high"
                allowScriptAccess="sameDomain"
                type="application/x-shockwave-flash"
                pluginspage="http://www.adobe.com/go/getflashplayer">
            </embed>
    </object>
</noscript>
 

================分割线================

5. swfobject

http://code.google.com/p/swfobject/

================分割线================

6. 单embed显示 ie7和ff3下都能正常显示

<embed allowscriptaccess="never" allownetworking="internal" invokeurls="false" src="http://chabudai.sakura.ne.jp/blogparts/honehoneclock/honehone_clock_tr.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" quality="high" autostart="0" wmode="transparent" width="100%" height="300" align="middle">
分享到:
评论

相关推荐

    网页中嵌入swf文件的几种方法

    ### 网页中嵌入SWF文件的几种方法 #### 一、`object`与`embed`结合方式 此方法结合了`object`与`embed`两种标签的优势,是Macromedia一直推荐的一种方式。 **优点:** - 兼容性好,几乎可以在所有浏览器上运行。...

    提取网页中SWF

    为了提取网页中的SWF文件,我们需要了解以下几个关键知识点: 1. **HTML嵌入SWF**:HTML页面通过`&lt;object&gt;`、`&lt;embed&gt;`或`&lt;iframe&gt;`标签来插入SWF文件。这些标签包含指向SWF文件的URL以及一些配置参数。 2. **HTTP...

    一个基于C#+ Asp.Net实现的Web网页嵌入运行 SWF File 的程序例子

    在C#和Asp.Net中嵌入SWF文件,主要涉及以下几个关键知识点: 1. **Web控件**:Asp.Net提供了多种Web控件,用于在网页上添加各种功能。在这个例子中,我们将使用`&lt;object&gt;`或`&lt;embed&gt;`标签来嵌入SWF文件。这两个HTML...

    如何下载网页中的flash SWF文件

    本文将详细介绍几种常用的下载Flash SWF文件的方法,帮助读者轻松解决这一问题。 #### 一、查看源文件 这种方法适用于大多数网页,尤其是那些未对Flash文件进行加密或隐藏处理的情况。具体步骤如下: 1. **打开...

    FlashPaper在线转换swf文件

    - 转换完成后,生成的SWF文件可以直接嵌入网页、电子邮件或在线平台,供他人浏览。 3. **特性与优势**: - **易用性**:FlashPaper操作简单,适合非技术用户快速转换文档。 - **交互性**:SWF文件支持点击链接、...

    几种表的swf文件 可以插入到iebook

    以下是关于SWF文件和如何在IEbook中使用的几个关键知识点: 1. **SWF文件格式**:SWF是Adobe Flash Player支持的文件格式,用于在网页上播放动画、游戏和其他互动内容。它采用了压缩技术,因此文件体积相对较小,...

    将exe文件转换成swf文件转换工具

    2. **在线演示和教学**:SWF文件可以方便地嵌入网页,因此,将exe转换为swf有助于创建在线教程、演示或者游戏,使得内容能更轻松地分享和访问。 3. **节省存储空间**:与exe文件相比,swf文件通常具有较小的体积,...

    swf文件提取mp3

    "swf文件提取mp3"这一操作主要是从SWF文件中抽取音频流并将其转换为MP3格式,以便在不依赖Flash播放器的情况下独立播放音频。 SWF文件内部可能包含音频、视频、图像以及交互元素。音频数据通常以嵌入的方式存储,...

    android加载.swf文件

    通过集成Air SDK,开发者可以使用ActionScript开发SWF文件,并在Android应用中嵌入。安装Air SDK后,使用Flash Builder或An ActionScript IDE如IntelliJ IDEA,可以将SWF项目打包为Android应用。 2.第三方库:...

    解析swf文件 源码

    ActionScript可以嵌入在SWF文件的特定标签中,如DoAction或DoInitAction。 5. **声音和视频**:SWF文件能够包含压缩的音频和视频流,这使得在线媒体播放成为可能。声音可以是MP3或其他格式,视频则使用Sorenson ...

    把PPT转换成swf的工具

    描述中提到的“转换过程中可以设置转化的精度”,这意味着该工具允许用户自定义输出的SWF文件的质量。转换精度可能包括图像分辨率、动画帧率以及音频质量等参数。用户可以根据需求调整这些设置,以平衡输出文件的...

    网页SWF动画下载工具

    1. **检测SWF文件**:工具通过扫描网页源代码或者与浏览器进行交互来找到嵌入的SWF对象。 2. **拦截网络请求**:当浏览器请求加载SWF内容时,工具能够捕获这一请求,并阻止它直接在浏览器中加载,而是将其保存到本地...

    将Flash的SWF文件格式转换为EXE,Delphi编写..rar

    4. **嵌入资源**:在Delphi中,可以使用TResourceStream或其他相关类将SWF文件作为资源嵌入到EXE中。这样,当用户运行程序时,SWF文件将直接从EXE中加载,无需额外的文件。 5. **运行时播放**:为了在EXE中播放SWF...

    toSwfText(文本文档转swf)

    2. **SWF格式**:SWF是一种流行的网络格式,它支持文字、图像、声音和动画,并且可以嵌入网页中播放。这种格式的优势在于跨平台兼容性和在网络上的高效传输。然而,SWF文件不支持编辑,主要是用来展示信息或实现交互...

    守望swf转exe工具

    2. **设置转换选项**:在导入SWF文件后,用户可以调整转换设置,例如是否包含外部资源、是否嵌入Flash Player、是否设置密码保护等。 3. **选择输出路径**:用户需要指定转换后的EXE文件保存的位置,以便于找到并...

    从URL里获取文件路径,显示swf文档

    在显示SWF文件时,有几种方法可以实现: 1. **使用HTML `&lt;object&gt;` 或 `&lt;embed&gt;` 标签**:这两个标签允许在HTML页面中嵌入外部资源,如SWF文件。你需要指定`data`属性为SWF文件的URL,并设置其他相关属性,如`width...

    仿百度文库 文档转pdf在转swf,flexpaper查看swf

    FlexPaper提供了一个JavaScript API,允许开发者轻松地将SWF文件嵌入到网页中,并提供诸如翻页、缩放、搜索、书签等功能。通过定制配置,可以调整页面布局、颜色主题、字体大小等,以满足不同用户的需求。同时,...

    ppt幻灯片怎么转换成swf格式文件.docx

    在转换过程中,用户可以自定义输出的SWF文件的大小、质量和其他相关选项。转换完成后,新的SWF文件会自动保存在用户的计算机上。 2. 狸窝PPT转换器: 相较于PowerPoint to Flash,狸窝PPT转换器提供了更丰富的转换...

    一个将SWF转成AVI的软件

    SWF是一种广泛用于在线展示动画和交互式内容的文件格式,常见于网页中的Flash内容。而AVI(Audio Video Interleaved)则是一种常见的视频文件格式,支持多种视频和音频编码,兼容性广泛,适用于离线播放和编辑。在...

    swf文件转化为GIF

    SWF文件是Adobe Flash创作的动画或交互式内容的标准格式,通常用于网页设计和在线游戏。而GIF是一种流行的图像格式,支持有限的动画效果,且在许多平台和浏览器上广泛兼容。将SWF文件转换为GIF可以使得这些内容在不...

Global site tag (gtag.js) - Google Analytics