`
yiminghe
  • 浏览: 1465403 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

flash的嵌入与读取

阅读更多

嵌入:

 

关于flash嵌入页面这块由于ms的历史原因问题有点乱,根据以下两篇(12 )介绍有以下四种方式:


1.Adobe 官方 / OE

 

 

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
        codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
        width="400" height="300" id="movie1">
    <param name="movie" value="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"/>
    <embed src="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf" quality="high" width="400" height="300" name="movie"
           type="application/x-shockwave-flash"
           width="400" height="300"
           pluginspage="http://www.macromedia.com/go/getflashplayer"/>
</object>

 

2.SWFObject 静态 / OO

 

 

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
        width="400" height="300" id="movie2">
    <param name="movie" value="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"/>
    <!--[if !IE]>-->
    <object type="application/x-shockwave-flash"
            data="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"
            width="400" height="300">
        <!--<![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>

 

3.代码最少 O

 

 

<object type="application/x-shockwave-flash"
        data="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"
        width="400" height="300"
        id="movie3">
    <param name="movie" value="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"/>
    <a href="go/getflashplayer">
        <img src="get_flash_player.gif" alt="Get Adobe Flash player"/>
    </a>
</object>

 

4.单独使用 embed E

 

 

<embed
        id="movie4"
        src="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"
        quality="high" width="400" height="300" name="movie"
        type="application/x-shockwave-flash"
        pluginspage="http://www.macromedia.com/go/getflashplayer"/>
 

其中单独使用 embed 不可取(太老式?关键是不支持 fallback content ),推荐是object 的方式。

 

读取:

 

 

若允许以上四种方式,要写一个能够读取flash url的通用工具函数,那就要全面考虑了:


1.当前元素是embed ,直接读取 src 即可。

2.当前元素是object ,data是 url,读取 data

3.当前元素是object,还有 name 为 movie 的param,读取该 param 的value。

4.当前元素下有嵌套的object或embed,依次处理。



另一方面 ie 下需要注意的是

1.ie 下取不到 object 内嵌套的 embed 元素。

2.当动态生成的flash尚未插入文档时,这时在ie下若通过 getElementsByTagName来获取所有的param元素,需要使用大写的 "PARAM" 参数.

 

demo @ google code

 

 

flash and accessibility

 

若采用 OE ,E 写入方法则会不能写入替代文本( fallback content ),那么当用户没有安装 flash 时则直接显示空白,造成信息缺失。

 

 

若采用 O ,OO firefox 发生 tab 键陷入现象,tab 到 flash 后会出不来,接连再按 tab 键都没反应,严重损坏了可访问性.

 

 

那么推荐采用 JS 嵌入方法:

 

使用 javascript 脚本输出 flash 标签:

ie : object

其他 embed

JS 判断没有安装 flash 则输出静态图片

禁用 JS 则用 noscript 输图片

 

 

JS 判断 flash 安装与否:

 

/**
     * 获取 Flash 版本号
     * 返回数据 [M, S, R] 若未安装,则返回 undefined
     */
    function getFlashVersion() {
        var ver, SF = 'ShockwaveFlash';

        // for NPAPI see: http://en.wikipedia.org/wiki/NPAPI
        if (navigator.plugins && navigator.mimeTypes.length) {
            ver = (navigator.plugins['Shockwave Flash'] || 0).description;
        }
        // for ActiveX see:	http://en.wikipedia.org/wiki/ActiveX
        else if (window.ActiveXObject) {
            try {
                ver = new ActiveXObject(SF + '.' + SF)['GetVariable']('$version');
            } catch(ex) {
                //S.log('getFlashVersion failed via ActiveXObject');
                // nothing to do, just return undefined
            }
        }

        // 插件没安装或有问题时,ver 为 undefined
        if (!ver) return undefined;

        // 插件安装正常时,ver 为 "Shockwave Flash 10.1 r53" or "WIN 10,1,53,64"
        return arrify(ver);
    }
 

from kissy flash .

 

 

参考资料:

 

object @ w3


OBJECT and EMBED syntax | Flash


Bye Bye Embed


object @w3school

 

Flash Satay: Embedding Flash While Supporting Standards

 

html5 就是大杂烩,妥协了:


embed @ html5


object @ html5

 

 

分享到:
评论
1 楼 bopeng 2010-08-27  

相关推荐

    FLASH 读取html 标签

    4. **IFrame嵌套**:有时,Flash被嵌入到一个HTML的IFrame中,这时可以通过访问IFrame的contentWindow或contentDocument属性来间接操作HTML内容。但这需要同源策略的允许,否则会有安全限制。 5. **安全性与跨域...

    易语言嵌入flash例程

    "易语言嵌入flash例程"是一个利用易语言进行开发的项目,其核心是将Adobe Flash(通常包含SWF文件)内容嵌入到易语言编写的程序中,实现动态交互和多媒体展示。 在描述中提到的"易语言的flash程序源码",指的是使用...

    网页嵌入flash示例

    在某些情况下,Flash应用会从XML文件中读取数据,以便动态更新内容或设置参数。XML是一种结构化数据存储格式,易于解析和理解,常用于跨平台的数据交换。 其次,`swfobject.js`是用于无插件嵌入Flash的JavaScript库...

    FlashMagic.exe

    NXP的最新版HEX下载软件,单片机.arm烧录工具,win10版。嵌入系统开发必备软件,版本号12.75 build 5732

    如何把汉字字形库嵌入2812片内FLASH

    如何把汉字字形库嵌入2812片内FLASH

    在页面读取flash的js

    标题中的“在页面读取flash的js”指的是利用JavaScript与Flash交互的技术,目的是在网页上以Flash动画的形式展示内容,例如图片新闻。这种技术在早期的网页设计中常见,因为Flash能够提供丰富的视觉效果和互动体验,...

    Flash读取xml信息形成超酷的网页相册.rar

    在本资源中,我们主要探讨的是如何利用Flash技术读取XML信息来创建一个炫酷的网页相册。这个相册不仅具有自动加载图片的功能,还支持全屏展示,为用户提供了一种引人入胜的浏览体验。以下是关于这个主题的详细知识...

    C#简单嵌套flash读取数据的实现代码

    在本文中,我们将深入探讨如何使用C#来实现一个简单的嵌套Flash应用程序,该程序能够从数据库中读取数据并展示。这个例子主要是为那些希望将动态数据集成到Flash图表中的C#开发者提供的。 首先,从给定的描述和标签...

    Save Flash 3.0 网页flash提取工具

    2. **Flash识别**:找到Flash对象后,工具会读取其中的相关属性,如`src`属性,这通常指向SWF文件的URL。 3. **文件下载**:确定了Flash文件的URL后,工具会发起HTTP请求,下载SWF文件到本地,以供用户保存和后续...

    ASP源码—Flash+JS图片切换轮换特效ASP读取数据库版.zip

    这个"ASP源码—Flash+JS图片切换轮换特效ASP读取数据库版.zip"压缩包文件,正如其名,包含了一个使用ASP技术实现的图片轮播功能,它结合了Flash和JavaScript两种技术来实现视觉效果,并且可以从数据库中读取图片信息...

    FLASH CS3(AS3)和JS之间通信

    同时,Flash可以使用`getVariable()`方法读取这些变量。 在这个示例中,`1.fla`是Flash的源文件,其中包含了AS3代码,可能已经定义了与JavaScript交互的函数。`show.html`是包含Flash内容的HTML页面,可能使用了`...

    手机flash动画的设计与制作

    - **ActionScript解释器**:支持Flash Player 4的ActionScript语言版本,并引入了针对移动设备的特殊命令,如时间、日期信息的读取,增强了动画的互动性和实用性。 - **文本和字体管理**:支持静态、动态及输入...

    flash 解码的代码

    Flash解码过程涉及读取SWF文件的各个部分,并将它们解析成可执行的数据。解码器需要理解每个标签的含义,并正确处理。在Linux和Windows上,这个过程可能会有所不同,因为不同的操作系统可能需要不同的API来处理图形...

    VB和flash交互

    1. **ActiveX控件**:Flash可以嵌入到VB应用程序中作为ActiveX控件,使得VB程序能够控制Flash电影的播放、停止等操作。VB可以通过调用控件的属性和方法来实现对Flash的控制。 2. **ActionScript**:Flash中的...

    Flash从数据库调用数据实例(asp+access+flash)

    通过ASP,我们可以编写VBScript或JScript代码,实现读取Access数据库中的数据,并以特定格式返回给Flash。 2. Access数据库: Access是Microsoft Office套件中的一款关系型数据库管理系统,适用于小型企业和个人...

    Flash文件上传代码

    4. **HTML模板**:包含了嵌入SWF文件的HTML代码,可能还有JavaScript代码来辅助Flash与网页的交互。 5. **CSS样式表**:用于控制上传组件的外观和布局。 6. **可能的配置文件**:例如XML或JSON文件,用于设置上传...

    Flash批量文件上传

    2. HTML/Flash嵌入代码:用于在网页中嵌入Flash对象,并提供用户界面,如“选择文件”按钮和上传进度指示器。 3. 服务器端脚本:接收并处理Flash上传的文件,可能包括验证、存储和响应操作。 需要注意的是,随着...

    flash 上传

    5. **index.html**:这是网页的入口文件,通常会包含一个Flash对象或者SWF(ShockWave Flash)嵌入代码,以加载并显示`fileUpload.swf`这个Flash应用程序。 6. **fileUpload.swf**:这是实际执行文件上传功能的...

    股票FLASH源码共分享

    股票FLASH源码共分享,这个资源集合包含了与股票展示相关的Flash源代码,是开发者们学习和参考的一个宝贵素材。在 Flash 技术广泛应用于互联网的时期,它在数据可视化,尤其是股票图表展示方面发挥了重要作用。这里...

    国外强大的Flash-XML相册源码

    5. **发布和部署**:完成以上步骤后,你可以将Flash项目导出为SWF文件,然后将其与XML文件和图片资源一起上传到Web服务器,嵌入到HTML页面中,即可在线展示你的Flash-XML相册。 总的来说,这个国外强大的Flash-XML...

Global site tag (gtag.js) - Google Analytics