设为首页   |  加入收藏夹 快速导航:  热门文章  |  最新文章  |  梦想博客  
当前位置:编程之家 -> 文章频道 ->flash 
站内搜索:  

HTML接收来自GET的参数并传递给包含在HTML中的Flash

作者:佚名 来源:艾小米工作室 整理日期:2008-05-08
本人网站上的新闻系统采用下面的方式实现:
主页面的总Flash(main.swf)读取nexs.xml文件,并分析其中的数据完成加载。在用户点击按钮后打开新Flash(news.swf)。news.swf根据刚才点击的链接使用GET方法传递的参数打开相应的新闻。
在一开始我直接用GET的方式将参数直接传给news.swf,链接构造方式是news.swf?id=0403。这样的话带来一个麻烦:新窗口中的Flash没有保持原始大小,根据新窗口的大小自动调节到和新窗口一样大,Flash里包含的图片什么的都严重变形。于是我就想把参数传给一个静态页面,news.swf包含在其中,news.swf的大小被固定,接收来自这个静态页面的参数。
我先在网上找了一下HTML接收来自GET参数的方式的文章,得到下面的一段javascript代码:
String.prototype.getQueryString = function(name)
{
var reg = new RegExp("(^|&|\\?)"+ name +"=([^&]*)(&|$)"), r;
if (r=this.match(reg)) return unescape(r[2]); return null;
};
var sSearch=location.search;
var sName = sSearch.getQueryString("Name");
alert(sName);
将以上代码保存为一个HTML文档,采用text.html?Name=ishowing的方式访问此HTML文件的话会弹出一个内容为“ishowing”的对话框,以上代码的作用就是接收来自GET的参数。对上面代码加以改造就可以将此参数传递给Flash。
在javascript里可以使用document.write的方式可以把符号、内容等输出到屏幕上,我们就可以使用document.write将包含Flash的部分及使用GET方法获得得参数全部输出。请看下面代码:
<script language="javascript">
        document.write(<table width="400" height="300" border="0" align="center" cellpadding="0" cellspacing="0">);//将表格等代码输出,下同
        document.write(<tr>);
        document.write(<td>);
        document.write(<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab
#version=7,0,19,0" width="400" height="300">);
        document.write(<param name="movie" value="news.swf?id=);document.write(nm);document.write(" />);//输出Flash部分,并将参数追加到Flash上
        document.write(<param name="quality" value="high" />);
        document.write(<embed src="news.swf?id=);document.write(nm);document.write(" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="400" height="300">);
        document.write(</embed>);
        document.write(</object>);
        document.write(</td>);
        document.write(</tr>);
        document.write(</table>);
</script>
使用上面的代码,就可以把HTML接收自GET提交的参数传递给Flash。
相关代码请参考我的网站:http://www.ishowing.net/news.html(您可以试着在后面加上参数,格式为:http://www.ishowing.net/news.html?cs=0620
如果对此文章有疑问的话请给我留言或者直接加我的QQ和我联系:402059203转载请注明转自艾小米工作室,谢谢!