- 浏览: 994714 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (367)
- JavaScript (23)
- Java (60)
- Python (41)
- 其他 (36)
- SQL (4)
- 开发工具 (26)
- Linux (15)
- AJAX (6)
- Cache (3)
- 正则 (4)
- 架构 (9)
- 手机 (3)
- MySQL (4)
- Android (115)
- vps (1)
- 网站 (4)
- scale (3)
- 搜索引擎 (3)
- iPhone (2)
- hessian (1)
- hessdroid (1)
- 411 (1)
- jstat (1)
- gc (1)
- gallery (1)
- 惯性 (1)
- eclipse (1)
- mac wget error (1)
- miui file explorer 无用 解决办法 (1)
- vim (1)
最新评论
-
qingyezhangluo:
哎。楼主您既然是分享代码的为什么要加密的呢?而且问你密码还不回 ...
android应用换皮肤(转) -
MagicError:
kavoe 写道下载文件有密码。。。。
http抓包工具 -
knightdf:
我先试下再来
JAVA的RAS加密例子 -
kavoe:
下载文件有密码。。。。
http抓包工具 -
changanfounder:
hmc1985 写道setCallbackDuringFlin ...
android gallery滑动惯性问题
Flash 嵌入的问题论坛中有人问了好多次,到底应该怎么用,为什么通不过验证,要通过验证怎么办等等等。讨论中也出现了不少的误解,所以我单开一个帖总结一下我所知道的东西,不想看我罗嗦的直接跳到最后看结论就可以了。
一、传统的方法
XML/HTML代码
<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 上,后来又经过了几次完善:
XML/HTML代码
<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>
这方法没 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
UFO - Unobtrusive Flash Objects
Macomedia(现在是Adobe了..)提供的脚本 [这里] 和 [这里]。
我 SWFObject 用的比较多,就挑它来说一些这种方法的优点:
IE中没有讨厌的虚框问题了。
提供了完善的版本检测功能,如果版本不够则显示其他东西,比如图片或文字。
易于使用,只要在页面头加载一个 .js 文件,然后 HTML 写一个容器,里面放普通的文本或图片(用于无法显示 Flash 时显示),最后用脚本来替换这个元素里面的内容为 Flash。
可以通过验证——当然这个不是重点,只是顺带效果罢了。
四、我的结论
现阶段用 JS 嵌入 Flash 是最完美的方法,虽然这法子这也是由于浏览器的种种问题而作出的妥协。
但它在保证 Flash 功能的前提下还利用 JS 提供了额外的好处,再者又已经有人写了很完善的嵌入脚本可以方面地下载使用(推荐 SWFObject),我们还有什么理由不用它呢?
SWFObject 那网页是英文的,这里写个简单的用法教程:
下载它的.js文件,在这里: http://blog.deconcept.com/swfobject/swfobject1-4.zip (如果链接失效可能是版本有更新,请用上面给出的地址去主页下载最新版本)
在你的 HTML 页面头部<head>区嵌入这个脚本文件:
<script type="text/javascript" src="swfobject.js"></script>
在你的 HTML 中写一个用来放 Flash 的容器,比如<div>,并随便给一个 id 比如 flashcontent。然后在里面放上你的替换内容。
<div id="flashcontent">
这里放替换内容,用来在 Flash 无法显示时显示。
</div>
使用脚本替换这个内容:
XML/HTML代码
<script type="text/javascript">
var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
//参数意思: 地址,Flash 的 id(不是容器的 id),宽,高,版本需求,背景颜色
//这是最基本的,如果你要高级的设置,就仔细翻翻说明吧。
so.write("flashcontent");
</script>
这脚本可以写在 HTML 中也可以写在外部 .js 文件中。OK!
来源:蓝色理想 作者:old9
经典论坛讨论: http://bbs.blueidea.com/thread-2699979-1-2.html
附白冰(blog.goupwing.com)自己的方法:
只是为了消除 IE 里恼人的控件激活虚线框,没必要太过关注标准与不标准,或是产品设计、用户体验等等,毕竟真正上网的人不装 Flash 播放器和禁止 Script 的人少之又少。一切从精简代码,浏览器兼容出发,所以我还是选择采用 embed 的方法,用 js 嵌入。如果不在 swf 文件里传递参数的话,貌视不错的,呵呵。。。
PS:虽然现在 Adobe Dreamweaver CS3 中也采用 js 和 object 并列判断插入,可惜代码冗长。
1、创建一个外部文件 JS 函数;
JavaScript代码
<script type="text/javascript">
function C_flashs(url,width,height,transparent) {
// Clear active line of the flashs for IE
var param_t='';
if (transparent!=0) {
param_t='wmode="transparent"';
}
document.write('<embed src="'+url+'" quality="high" menu="false" '+param_t+' pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="'+width+'" height="'+height+'"></embed>');
}
</script>
2、在需要的地方,调用 JS 函数;
<script type="text/javascript">C_flashs('http://goupwing.com/flashs/banner.swf',1000,200,0);</script>
资料引用:http://www.knowsky.com/532468.html
- swfobject_2_1.zip (29.9 KB)
- 下载次数: 30
发表评论
-
网站 变灰 兼容各浏览器
2010-08-23 17:28 84<script src="gray ... -
js小技巧
2009-12-10 16:24 1019感谢:http://hi.baidu.com/lundy521 ... -
prototype 1.6
2009-07-08 18:41 827http://www.never-online.net/blo ... -
display:blocK 导致的换行
2009-04-03 19:01 5251#divHeader #divNav #divLogo{mar ... -
jQuery插件---按需加载JavaScript和CSS.
2009-04-02 18:12 4040jQuery插件---按需加载JavaScript和CSS. ... -
JavaScript中的Timer是怎么工作的
2009-03-19 14:35 1434JavaScript中的Timer是怎么 ... -
JS踢掉HTML TAG
2009-02-26 17:31 1011function delHtmlTag(str){ ... -
json 格式化工具
2009-02-20 16:31 2799http://lab.gracecode.com/format ... -
javascript+dom更改html内容总结
2009-02-19 18:01 2350利用JavaScript和dom结合来动态改变HTML内容。1 ... -
IE,firefox内存溢出原因与解决方法
2009-02-18 18:51 4042JavaScript 中的内存泄漏JavaScript 是一种 ... -
js压缩
2009-01-13 15:57 1134http://dean.edwards.name/packer ... -
json注意事项
2009-01-11 18:44 12721.JavaScript 用eval 经行转换json数据时。 ... -
Cookie的规范介绍
2009-01-05 16:20 1199Cookie的规范介绍 目前有 ... -
cookie(1)
2009-01-05 16:19 1050我们已经知道,在 document 对象中有一个 cookie ... -
js压缩
2008-12-28 19:26 1250js压缩,既可压缩,又可简单加密 先去这个网站 http:// ... -
郁闷。。。
2008-12-27 16:34 1090搞了大半天,总算弄明 ... -
用JS访问操作iframe里的dom
2008-12-25 13:41 1679很多人一直都有个想法,要是可以随心所欲的操作iframe就好了 ... -
js飞舞
2008-12-23 15:32 932javascript:R=0; x1=.1; y1=.05; ... -
javascript屏蔽F5刷新键
2008-11-25 13:21 2350<script language="Javas ... -
js 两种继承方法(call prototype)
2008-11-11 14:19 3176<SCRIPT LANGUAGE="JavaS ...
相关推荐
关于怎样在网页中嵌入swf文件的几种方法
主要介绍了使用iframe在网页中嵌入其他网页的方法,需要的朋友可以参考下
一个非常优秀的flash批量上传文件的控件,可以直接嵌入在网页中使用
相信有很多人在网页中嵌入FLASH后,在网页中打开时需要点击激活才能播放,那么您可以使用我上传的此款FLASH脚本,可以完美的解决你遇到的问题! 使用方法: 1.首先在头里引用此脚本,如:<head><script src="/js/...
NULL 博文链接:https://zjcheng.iteye.com/blog/653472
在wpf中嵌入flash,操作文档加程序
1.将enum控件嵌入表格中。 2.enum列表控件值改变才能写入,当前勾选值未改变导致无法触发写入。 3.将多个enum控件嵌入表格中并指定某列。
网页中嵌入windows media player示例
用asp,js,css实现的网页树形控件
网页嵌入winform控件的简单例程
Flash Media flash流媒体服务,在asp或HTML页面嵌入Flash Media Playback控件,实现流媒体播放
NULL 博文链接:https://handrenliang.iteye.com/blog/763770
实现在网页中嵌入flash,解除阻止,不出现阻止栏,自动播放
将windows form下编写的程序转换成...嵌入到web页面中,既可以避免重复编码,又能够弥补普通web客户端无法满足复杂需求的弊端。例子比较简单,但把实现原理基本说清楚了,接下来要做的事情无非是将控件写得更复杂一些。
很多人都希望自己的网站能更具活力,所以不少人就希望可以在ASP.NET网页中嵌入Flash动画, 如今上传这个,希望能帮助大家
本文介绍了网页中嵌入Flash动画的几种方法,并通过示例进一步说明了在网页中如何插入Flash动画,最后对网 站建设中如何使用F1ash技术做了阐述。
上传的是一个库存盘点表自定义控件,它是在在ObjectListView中嵌入了一个下拉框控件和按钮控件,并通过按钮打开选择窗体,源代码中有详细说明嵌入原理,以此可以在ObjectListView 嵌入任何控件,同时还说明了...
工业组态软件中嵌入视频控件OCX,组态王,wincc,ifix等
网页中嵌入excel控件,在线编辑excel。上面的例子我是装的office 2003 测试通过,如果客户端是office 2007 请更改classid。
找了很久才找到这个免费的VB.net中加入Flash的控件Flash9.ocx,特地共享一下。支持下.......