如果你还在为插入Flash Object 苦恼,快来试试这个!

简介: 大家在项目中常常要插入Flash Object,一般一个FlashObject在HTML中代码是这样的:   .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: ...

大家在项目中常常要插入Flash Object,一般一个FlashObject在HTML中代码是这样的:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8"
width="320" height="220"
id="theMediaPlayer">
<param name=movie value="mediaplayer.swf">
<param name=quality value="high">
<param name=bgcolor value="#FFFFFF">
<param name=allowFullScreen value="false">
<param name=swLiveConnect value="true">
<param name=allowScriptAccess value="sameDomain">
<param name="FlashVars" value="file=mixmediaplaylist.xml&width=320&height=220&displaywidth=320&displayheight=200&autostart=true&backcolor=0xFFFFFF">
 
<embed type="application/x-shockwave-flash" 
pluginspage="http://www.macromedia.com/go/getflashplayer" 
width="320" height="220" bgcolor="#FFFFFF" 
name="theMediaPlayer"
src="mediaplayer.swf"
flashvars="file=mixmediaplaylist.xml&width=320&height=220&displaywidth=320&displayheight=200&autostart=true&backcolor=0xFFFFFF">
</embed>
</object>
 

OBJECT和EMBED标签的问题

看起来似乎挺复杂,首先是一个<object>对象,接着是很多的param,完了又出来一个<embed>对象,跟着一大堆的参数。其实这样写是因为兼容性的问题。OBJECT标签是用于windows平台的IE浏览器的,而EMBED是用于windows和Macintosh平台下的Netscape Navigator浏览器以及Macintosh平台下的IE浏览器。windows平台的IE利用Activex控件来播放flash而其它的浏览器则使用Netscape插件技术来播放flash。

具体可以参考下面的文档:
  1. Flash OBJECT和EMBED标签详解
  2. Flash OBJECT and EMBED tag attributes

  3. Adobe 的官方文档:Macromedia Flash OBJECT and EMBED tag syntax

 

参考文档我们就可以通过各种方法向客户段按照正确的格式输出FlashObject的代码了,但字符串的拼接操作枯燥又容易出错,代码可读性还不好,有什么更好的办法吗?

在这里要特别提一下的就是FlashObject的FlashVar参数,很多应用都要靠着这个参数传入大量有复杂数据格式的数据对(pair),构建这个参数往往是最麻烦的。

关于FlashVar:  Using FlashVars to pass variables to a SWF

使用<swfobject>

image SWFObject是一种易用的、符合标准的在网页中嵌入flash对象的方法,你只需要在网页中引用一个小巧的js文件。

使用SWFObject就可以避免因为不熟悉Flash Object复杂的语法和选项带来的浏览器不兼容的问题。

使用<swfobject>的大体代码示范如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  <head>
    <title>SWFObject v2.0 - step 3</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <script type="text/javascript" src="swfobject.js"></script>
 
    <script type="text/javascript">
    swfobject.registerObject("myId", "9.0.0", "expressInstall.swf");
    </script>
 
  </head>
  <body>
    <div>
 
      <object id="myId" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="780" height="420">
 
        <param name="movie" value="myContent.swf" />
        <!--[if !IE]>>
        <object type="application/x-shockwave-flash" data="myContent.swf" width="780" height="420">
        <!<![endif]–>
          <p>Alternative content</p>
        <!–[if !IE]>>
        </object>
        <!<![endif]–>
      </object>
    </div>
  </body>
</html>

SWFObject 首页: http://code.google.com/p/swfobject/

对于FlashVar参数的传入,SWFObject提供了专门的函数,用起来非常方便,代码可读性也强了。

Opensource 的 swfobject .net control

下载地址:http://www.arjones.net/opensource/swfobject.net/

这还有一个:http://www.junasoftware.com/servercontrols/swfobject.net.aspx

商业Flash object control

实际上,对于ASP.NET的开发者,使用<swfobject>也还是有很多不方便的地方,没有强数据类型,参数传入都要转为字符串,还有做一些拼接的工作,代码还是不优雅。有没有更好的办法呢?

ASPNetFlash WebControl

image ASPNetFlash WebControl 可以让你轻松的把一个Adobe Flash文件插入到你的ASP.NET web forms里面。

 

 

 

ASPNetFlash的网址:http://www.aspnetflash.com/aspnetflash_Download_Free_Trial.aspx

下载安装后的效果:

image

真的不错,基本的属性设置,还有对FlashVar的数据绑定支持。

 

如果你还在为插入Flash Object 苦恼,快来试试这个!

参考文档:

List Apart上的一篇文章:http://www.alistapart.com/articles/flashembedcagematch/

相关文章
|
3月前
|
人工智能 Java 关系型数据库
分享66个JavaGame源码总有一个是你想要的
分享66个JavaGame源码总有一个是你想要的
61 0
|
3月前
|
人工智能 小程序 算法
分享64个JavaGame源码总有一个是你想要的
分享64个JavaGame源码总有一个是你想要的
41 0
|
3月前
|
算法 程序员 数据安全/隐私保护
教你怎么用三种办法找到发给你QQ的坦白说的那个人
教你怎么用三种办法找到发给你QQ的坦白说的那个人
27 0
|
3月前
|
移动开发 JavaScript C#
分享53戏源代码总有一个是你想要的(亲测每一个均可用)
分享53戏源代码总有一个是你想要的(亲测每一个均可用)
23 0
|
3月前
|
移动开发 JavaScript C#
分享31个游戏源代码总有一个是你想要的
分享31个游戏源代码总有一个是你想要的
87 0
|
9月前
|
存储 编译器 C语言
还在为每次打开程序的输入烦恼吗,这篇文章让你不在迷茫
在之前我们编写的程序中,我们总要录入一些数据给予程序用于计算,但是当我们退出程序后录入的数据会销毁,因为此时数据都是存放在内存中。等到下次再运行程序时,数据又得从新录入,这样就非常的难受。
38 0
还在为每次打开程序的输入烦恼吗,这篇文章让你不在迷茫
|
5月前
|
数据库 C++
《C++避坑神器·十七》找到程序崩溃Bug的一个实用方法:dump调试
《C++避坑神器·十七》找到程序崩溃Bug的一个实用方法:dump调试
65 0
|
11月前
|
搜索推荐 开发工具 图形学
想做某类型游戏却找不到对应的教程,怎么办?
经常会看到有朋友留言问:我想做个xxx类型的游戏,你这有没有对应的教程?虽然我已经写了很多的教程,这些教程也涵盖了一些类型的游戏,但是游戏的类型有太多种类了,想要写完能够涵盖所有类型游戏的教程是一项巨大的不可能完成的任务。
61 0
Win系统 - 微信居然自带修复工具?快来试试(上)
Win系统 - 微信居然自带修复工具?快来试试(上)
408 0
Win系统 - 微信居然自带修复工具?快来试试(上)
|
监控 小程序
Win系统 - 微信居然自带修复工具?快来试试(下)
Win系统 - 微信居然自带修复工具?快来试试(下)
156 0
Win系统 - 微信居然自带修复工具?快来试试(下)