当前位置: 首页 > article >正文

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

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 requiredvar 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 passedAC_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 pluginvar 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">
http://www.lryc.cn/news/2414788.html

相关文章:

  • esp32-S3专题三:外设1之WIFI的扫描和sta模式使用
  • onlylady 摘录-婚礼回礼
  • 乐优商城(六)ElasticSearch搜索
  • android studio虚拟机运行react-native项目全流程(避坑笔记)
  • JSP中的JavaBean的基本使用方法
  • 华为发布凌霄芯片华为正式发布鸿蒙,凌霄芯片
  • 选举算法
  • 同一个网站可以放2个服务器吗,两个网站放在同一个服务器 备案
  • 40个在线杀毒网站
  • xftp6设置默认打开文件的程序_Xshell、Xftp 5、6 解决“要继续使用此程序,您必须应用最新的更新或使用新版本”...
  • Windows平台下常见快捷指令
  • HMS Core携手厦门大学打造AR增强现实技术
  • 由于该计算机受到限制本次操作已被取消请与你的系统管理员联系
  • python爬虫总结,看这篇就够了
  • 网络入门基础(基本网络的了解和配置)
  • 快手狂人
  • 虚拟环境安装,ubuntu18和16的一些不同
  • 简报 | 欧洲区块链投资 将达到8.15亿欧元
  • 亚马逊云科技为企业出海提供全方位的安全合规保障
  • EXCEL难题一网打尽 无意间看到的 转过来 自己看看
  • 探索Web前端:新手必看的入门指南
  • js实现数组浅拷贝和深拷贝
  • 秋招Java开发----牛客刷题错题总结
  • Qt 将中文汉字转成拼音与简拼
  • 【QQ技术】群文件报毒怎样下载?~ 变相绕过QQ复杂检验过程
  • Android版xx助手之天天酷跑外挂详细分析
  • 数仓之归因分析
  • 百度你皮 调教百度
  • 150首中国翻唱韩国原歌曲
  • 求水仙花_500万株水仙花争相绽放,这个日本小岛人少冬天还能看花!| 日本淡路岛...