<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codeBase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"width="100%" height="100%">
<PARAM NAME="movie" VALUE="<%=webflash%>">
<PARAM NAME="quality" VALUE="high">
<PARAM NAME="wmode" VALUE="transparent">
<embed src="<%=webflash%>" width="100%" height="100%" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent"></embed></OBJECT>

把<%=webflash%>这个改成数据库获取的路径,或者直接写上路么.但是这样插入的FALSH需要手工点击激活焦点,可以利用以下方法:我整理的..

自06年4月IE升级之后,网页中的flash就需要先激活ActiveX控件才能使用。不爽。SWFObject是有效解决这个问题的js代码(原来叫 FlashObject),目前版本是1.4,完全开源的MIT License。全称是: Javascript Flash Player detection and embed script,用于将swf嵌入到网页中的 JavaScript脚本。挺好用,准备将其加入到Blog到编辑器中,代替原来使用的老代码。
一、传统方法

程序代码
<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>

这方法是使用 object 和 embed 标签来嵌入,细心的会发现,object 的很多参数和 embed 里面的很多属性是重复的,为什么这样做?为了浏览器兼容性,有的浏览器支持 object,有的支持 embed,这也是为什么要修改 Flash 的参数时两个地方都要改的原因。这种方法是 Macromedia 一直以来的官方方法,最大限度的保证了 Flash 的功能,没有兼容性问题。但是它现在不那么好用了:无法通过验证,由于为了兼容性而嵌入的 embed 标签是不符合 W3C 的规范的。当然,如果你不在乎什么规范不规范,另当别论。

微软由于种种原因,在 sp2 后限制了 IE 的 ActiveX 的使用模式,就是在页面中的 ActiveX 有一个虚框,需要用户点击一次才能正常交互。Flash是作为一个 ActiveX 嵌入到网页中的,所以它也会受牵连,只有通过 JS 嵌入 Flash 才能解决这个问题。没有 Flash 版本检测,如果版本浏览器的flash插件版本不够,或者不能正常显示你的 swf 文件,或者会弹出一个 ActiveX 的确认安装的框——这个框对很多用户来说是很恐怖的。

二、只用 object 的方法
这种方法的名字叫做 Flash satay,最早是2002年由 Drew McLellan 发表在 A List Apart 上,后来又经过了几次完善:

程序代码
<object type="application/x-shockwave-flashdata="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>

这方法没 embed 了,可以通过验证,是标准的嵌入 Flash 的方法,浏览器兼容性也不错,看起来几乎完美,不过还是有问题的:需要一个 holder swf 来加载你的目标 swf 以保证 IE 中的 stream 能力,如果你需要通过 flashvars 来传参,或者和页面的 JS 交互,会很麻烦。同上面第二点,ActiveX的虚框问题。继续同上没有版本检测,还是有少数用户代理(比如一些版本的 safari 和一些屏幕阅读器)不认这种方式,有bug。

三、用JS嵌入的方法
用JS嵌入就是各有各的嵌入方法了,有嵌得好的有嵌得不好的。有人用 document.write 直接写,这法子说实话不大好,感觉 hack 成分多了,有点为了验证而验证的意思,而且没有体现出什么 JS 的优势。我觉得一个好的 JS 嵌入脚本,在保证 Flash 应有功能的基础上,⒒?JS 的优势应该要有版本检测,要能很好解决可访问性问题(也就是用户在无法浏览 Flash 内容或禁用 JS 的时候应该如何处理的问题),要易于重复使用。常见的 JS 嵌入方法如:SWFObject (FlashObject),IE中没有讨厌的虚框问题了。提供了完善的版本检测功能,如果版本不够则显示其他东西,比如图片或文字。易于使用,只要在页面头加载一个 .js 文件,然后 HTML 写一个容器,里面放普通的文本或图片(用于无法显示 Flash 时显示),最后用脚本来替换这个元素里面的内容为 Flash。可以通过验证——当然这个不是重点,只是顺带效果罢了。现阶段用 SWFObject 嵌入 Flash 是最完美的方法,虽然这法子这也是由于浏览器的种种问题而作出的妥协。但它在保证 Flash 功能的前提下还利用 JS 提供了额外的好处,我们还有什么理由不用它呢?

SWFObject(FlashObject)的使用方法:
1、点击下载此文件swfobject1.5.zip
2、解压后将其中的swfobject.js(flashobject.js)上传到网站中 
3、在页面中输入下面的代码即可,不用输入那些麻烦的<object>、<embed>了(假设swfobject.js(flashobject.js)和flashmovie.swf都处于网站根目录中):

程序代码
<script type="text/javascript" src="/swfobject.js"></script> 
<div id="flashcontent"> 
这些文字将被Flash影片替换。 
</div> 
<script type="text/javascript"> 
var fo = new SWFObject("/flashmovie.swf", "mymovie", "200", "100", "7", "#336699"); 
fo.write("flashcontent"); 
</script>

其中设置影片属性的是这句:

程序代码
var fo = new SWFObject("/flashmovie.swf", "mymovie", "200", "100", "7", "#336699");

这6个参数是必须的,具体介绍如下:

1、swf - swf路径和文件名; 
2、id - 对象ID; 
3、width - 影片宽度; 
4、height - 影片高度; 
5、version - 指定Flash Player的版本。可以指定具体版本,例如: “6.0.65″。也可以指定主版本,例如:”6″; 
6、background color - 指定Flash影片的背景色 
也就是:
SWFObject("swf文件", "swf标识", "宽度", "高度", "FlashPlay最低版本号", "背景色");
下面我们来看一下我们嵌入一个flash的范例. 
根据上面的基本工作方式,我们还要嵌入一些其它的参数.来满足我们一些其它的需要比如我们有一个文件名为ws.swf,我们想把它嵌入到页面中,又不至于受IE更新的影响. 
1.在页面中包入swfobject.js(flashobject.js)文件 
<script type="text/javascript" src="swfobject.js"></script> 
一般这行代码可以写在body标签之前即可. 
2.把下面这段代码加在它下方. 
程序代码
<div id="flashcontent" style="width: 300px; height: 200px"></div> 
<script type="text/javascript"> 
var fo = new FlashObject("ws.swf", "mymovie", "300", "200px", "7", "#336699"); 
fo.addParam("quality", "low"); 
fo.addParam("wmode", "transparent"); 
fo.addParam("salign", "t"); 
fo.addParam("scale", "noscale"); 
fo.addParam("loop", "false"); 
fo.write("flashcontent"); 
</script>

从上面的代码中我们看出,我们将要把FLASH放在id为flashcontent层中,它的宽为300高为200像素,那么应是和我们的swf文件的大小是相同的.如果你想缩放也可以是不同的.下面var fo = new FlashObject("ws.swf", "mymovie", "300", "200px", "7", "#336699"); 
是嵌入flash文件,在之前的内容已介绍过它里面的参数,其中的ws.swf可以是相对路径也可以是绝对路径,如你可以直接输入网站加上你的swf文件名字.

再下面的一段就是我们可以加入的参数,从上到下分别为quality质量,wmode transparent透明,salign对齐,scale缩放,loop循环等. 
这样我们的嵌入过程就完成了. 
如果你想使用flashVars来进行html与flash之前的通讯,使用swfobject也是很容易的,但有一点使用swfobject时只有在 swf刚一载入时传递参数.并且是以值对的形式来传递,如下:variable1=value1&variable2=value2& variable3=value3 
使用方法如下:

程序代码
<script type="text/javascript"> 
var fo = new FlashObject("movie.swf", "mymovie", "200", "100", "7", "#336699"); 
fo.addVariable("variable1", "value1"); 
fo.addVariable("variable2", "value2"); 
fo.addVariable("variable3", "value3"); 
fo.write("flashcontent"); 
</script>

一旦这一步完成,那么所有的变量就已经传入到flash,你就可以灵活的在你的flash中的_root上使用了.deconcept flashObject还提供了可以加入其它参数的说明.你可以详细查看

详细代码:
<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>

</head>
<body>
<div id="myContent">
<h1>Alternative content</h1>
<p>
<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>
</p>
</div>
</body>

怎么在aspx里面添加swf文件的更多相关文章

  1. C#的Process类调用第三方插件实现PDF文件转SWF文件

    在项目开发过程中,有时会需要用到调用第三方程序实现本系统的某一些功能,例如本文中需要使用到的swftools插件,那么如何在程序中使用这个插件,并且该插件是如何将PDF文件转化为SWF文件的呢?接下来 ...

  2. html中嵌入swf文件的几种方法

    转自:http://blog.163.com/yuki_1154/blog/static/7120277120126109315935/ 找了很久终于找到一个比较全面的: 1. object + em ...

  3. 如何实现SP文档库类似百度文档库的效果 (副标题:如何在SP2013文档库的SWF文件用FlexPager显示)

    1. 编辑文档库列表显示页面,如下图: 2. 添加内容编辑器,如下图: 3. 添加如下在[内容编辑器中]-[编辑源],添加如下JS代码,如下图: ​ 代码如下: <scrip type=&quo ...

  4. Wix 安装部署教程(四) 添加安装文件及快捷方式

    通过之前三篇的介绍,大家对wix的xml部署方式也应该有一些认识,今天天气不错,再来一发.主要介绍桌面,开始菜单,卸载等功能的如何添加.希望园友们支持! 一.如何添加文件 Demo打包程序很简单,就一 ...

  5. java将office文档pdf文档转换成swf文件在线预览

    第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行. 主要模块有writer(文 ...

  6. ASP.NET在主题中添加CSS文件

    ASP.NET在主题中添加CSS文件 在ASP.NET中,可以使用CSS来控制页面上HTML元素和ASP.NET控件的皮肤.如果在主题文件夹中添加了CSS文件,则在页面应用主题时也会自动应用CSS. ...

  7. flash 中无法导出swf文件的解决方法

    近一个星期,我的flash cs6一直导不出swf文件,郁闷了好长时间,今天终于在网上找到了解决办法:总结了一下,如下:      一.是把文字打散,变成形状.      二.是把汉字的字体设成fla ...

  8. 几种访问其他域swf文件,或本地浏览器运行环境【安全沙箱】冲突解决方法

    声明: 几种方法都源自网络,我只负责汇总一下子,因为来自多方转载,也找不到初始出处了,需要的可以随意收藏,物尽其用,蛮好^_^ 对于类似的出错信息:SecurityError: Error #2148 ...

  9. 将SWF文件用作资源打包

    使用Flash开发网页游戏少不了与各种美术资源打交道.对于静态资源的那就是各种图片,对于会动的资源可以考虑直接做成swf.制作成swf的美术资源又可以分为两种:一种是直接将关键帧罗列在主时间轴上,那么 ...

随机推荐

  1. CGAffineTransform相关函数

    CoreGraphics.h CGAffineTransform rotation = CGAffineTransformMakeRotation(M_PI_2);
[xxx setTransform ...

  2. NSArrary和NSString间的转换

    将string字符串转换为array数组 NSArray  *array = [Str componentsSeparatedByString:@","]; // 注意:NSArr ...

  3. -join 和 -split 用法

    具体可参考 PowerShell_ISE的帮助文件: -Join(一元联接运算符): 一元联接运算符 (-join <string[]>) 的优先级高于逗号.因此,如果向一元联接运算符提交 ...

  4. MySQL Cluster初步测试结果汇总图示报告 --> 用mysqlslap与sysbench进行测试

    Cluster结构图                                       测试环境简介 Mysql cluster集群测试环境 4 data node,32G 8核cpu 4 ...

  5. java_jdbc_spring框架查询操作简例

    1.添加commons-dbcp-1.4,commons-logging,commons-pool-1.2//线程池,commons.collections-3.2.1.jar,spring.jar ...

  6. c#_delegate_异步调用_BeginInvoke

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. datagrid rownumber行号与数据行显示错位的解决办法

    最近在使用datagrid控件,遇到问题多多. 其中一个就是datagrid在使用行编号的情况下,行编号与数据行出现错位的情况,如图:

  8. 3D分析之Functional Surface工具箱(转)

    来自:http://blog.csdn.net/kikitamoon/article/details/8195797 1. Add Surface Information(添加表面信息) 向点.线或面 ...

  9. LLDB调试基本使用

    在平时开发中,我们可能需要调试某些东西,比如查看给服务器发请求时传过去的参数,如果不适用LLDB的话我们用的最多的就是通过NSLog方式去打印,但现在我们可以精简这个步骤,那就是使用LLDB调试命令. ...

  10. vagrant Ubuntu server 12.04 dpkg: dependency problems prevent configuration of python-gi

    Ubuntu server 12.04因为尝试安装过xfce,导致sudo apt-get install xxx 都会返回,如: vagrant@precise32:~$ sudo apt-get ...