html向flash传参数

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://crazyrabbit.blogbus.com/logs/30667726.html

我们都知道在dw中插入flash,dw会用几种方式插入保证swf在各种浏览器中正常运行,当然这都是dw自动完成的,不劳我们动手,但是要传递参数时就要靠我们自己了,要如何传递才能保证兼容性问题呢


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
</head>

<body>
<script type="text/javascript">
AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0',
'width','500','height','300','flashvars','data=xml/index.xml','src','swf/Currencyshow','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','swf/Currencyshow' ); //end AC code
</script><noscript><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="500" height="300">
<param name="movie" value="swf/Currencyshow.swf?data=xml/index.xml" />
<param name="quality" value="high" />
<embed src="swf/Currencyshow.swf?data=xml/index.xml" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="500" height="300"></embed>
</object></noscript>
</body>
</html>

只要保证这几个地方参数一样即可顺利通过啦



一片参考转自 http://www2.flash8.net/teach/6942.htm



先来看看flash自动生成的网页是如何插入flash文件的:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh_cn" lang="zh_cn">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>test</title>
<script language="javascript">AC_FL_RunContent = 0;</script>
<script src="AC_RunActiveContent.js" language="javascript"></script>
<style type="text/css">
<!--
body {
background-color: #999900;
}
-->
</style></head>
<body>
<!--影片中使用的 URL-->
<!--影片中使用的文本-->
<!--
eee
-->
<!-- saved from url=(0013)about:internet -->
<script language="javascript">
if (AC_FL_RunContent == 0) {
alert("此页需要 AC_RunActiveContent.js");
} else {
AC_FL_RunContent(
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
'width', '550',
'height', '400',
'src', 'test',
'quality', 'high',
'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
'align', 'middle',
'play', 'true',
'loop', 'true',
'scale', 'showall',
'wmode', 'transparent',
'devicefont', 'false',
'id', 'test',
'bgcolor', '#666666',
'name', 'test',
'menu', 'true',
'allowFullScreen', 'false',
'allowscriptAccess','sameDomain',
'flashvars','txt=wwwww',
'movie', 'test',
'salign', ''
); //end AC code
}
function sendvar(){
test.style.height=500;
test.SetVariable("mv","kkkkkk")
}
</script>
<noscript>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="550" height="400" id="test" align="middle">
<param name="allowscriptAccess" value="sameDomain" />
<param name="allowFullScreen" value="false" />
<param name="movie" value="test.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#666666" /><embed src="test.swf" quality="high" bgcolor="#666666" width="550" height="400" name="test" align="middle" allowscriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</noscript>
<br>
<label>xxx
<input type="submit" name="Submit" value="提交" onClick="sendvar()">
</label>

</body>
</html>
这个网页插入flash共使用了3种方式,应对各种情况,尽可能使swf文件在各种情况、各种浏览器中都能够正常显示运行。

先来看看第一种情况:
最开始使用javascript插入swf文件,这种方式兼容性最好,可以同时兼容IE内核的浏览器及FireFox 浏览器,而且这种插入方式可以避免IE中控件激活框的出现,非常实用。这段自动生成的代码包含的内容很丰富,你可以在其中任意添加IE或者其他浏览器使用的参数,例如:
'name', 'test',
'id', 'test',
这个是javascript引用swf文件的变量名,使javascrit可以直接对该swf文件进行操作,其中IE只使用id变量就可以了,name变量是针对embed插入方式FireFox使用的。

虽然javascript的插入方式优点多多,但是一旦用户禁用了javascript,就不行了。下面说说第二种方式:
删除所有的javascript代码(同时删除<noscript>和</noscript>)。
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="550" height="400" id="test" align="middle">
<param name="allowscriptAccess" value="sameDomain" />
<param name="allowFullScreen" value="false" />
<param name="movie" value="test.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#666666" />
这是IE使用的flash文件插入方式,如果只使用了这段代码,IE可以正常显示,但是FireFox就不能显示了。

第三种,embed插入方式
<embed src="test.swf" quality="high" bgcolor="#666666" width="550" height="400" name="test" align="middle" allowscriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
这种方式IE和FireFox都可以正常显示

第二种和第三种的参数解释可以参考下面的文章
http://space.flash8.net/space/?246908/action_viewspace_itemid_408019.html

就算不使用javascript,后面两种flash插入方式也可以通过htm页面向flash传递变量:

1、object插入方式:
增加参数:<param name="flashvars" value="mv=hello!">

2、embed插入方式:
在后面加入: flashvars="mv=hello!"

通过以上两种方式,flash都可以收到一个变量名为“mv”的变量,内容为“hello!" 。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值