在论坛上经常看见有新手问到“我想让FLASH得到URL中的参数ID号,该怎么办?”“某某视频网站的FLASH播放器是如何播放不同ID的视频的?”...诸如此类问题看到了太多,每次都有一堆回帖,众说纷纭,里面难免有误导性质的回复。今天特结合自己平时工作中使用的心得对此类问题做一个小小的归纳。

  我所指的静态传值是区别于与服务端通信进行值传递的方式,例如LoadVars,XML,Remoting之类,后者暂且不在本文的讨论范围内,当你想让FLASH获取URL中的参数时,你为何不换个角度想了?其实我们可以让服务端动态生成SWF的的插入代码,主动将我们需要的参数“静态”传递给FLASH,FLASH直接用就可以了,根本不需要自己去拿,而以何种形式传递给FLASH,就是我所指的静态传值。我知道的可行的HTML与FLASH之间的静态传值方法有三种:

SWF地址后使用参数传递符“?”
FlashVars传递
JS控制

  下面来具体介绍下这三种方式的传递是如何工作的:

   一、SWF地址后使用参数传递符“?”

  我们知道,在ULR地址中使用参数传递符“?”可以以GET方式传递参数,例如http://www.v-sky.com?uid=12&uname=vsky,这里使用了参数传递符“?”,同时使用了连接符“&”做为变量分隔标识,以这种规范的格式来传递两个参数:uid=12和uname=vsky,那么服务端可以使用GET方式获取这两个值。

  在FLASH中我们同样可以采用类似的方式来传递参数,HTML页面中插入SWF文件最常用的就是使用Object标签和Embed标签结合的方式,这也是Adobe的推荐方式:

< object classid ="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase ="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width ="400" height ="300" id ="flashvars" align ="middle" >
< param name ="allowScriptAccess" value ="sameDomain" />
< param name ="movie" value ="demo.swf?uid=12&uname=vsky" />
< param name ="quality" value ="high" />< param name ="bgcolor" value ="#ffffff" />
< embed src ="demo.swf?uid=12&uname=vsky" quality ="high" bgcolor ="#ffffff" width ="400" height ="300" name ="flashvars" align ="middle" allowScriptAccess ="sameDomain" type ="application/x-shockwave-flash" pluginspage ="http://www.macromedia.com/go/getflashplayer" />
</ object >

更多相关文章

  1. WebService Restful方式 Post请求Java无法获取到前台请求的参数,
  2. html中页面传递参数不用cookie不用缓存,js方法搞定
  3. 问一个高深的问题,静态html页面如何接收来自服务器的参数?
  4. 黑马程序员---在HTML文档中引用CSS有几种方式?请指出它们分别是
  5. 小强的HTML5移动开发之路(53)——jQueryMobile页面间参数传递
  6. Linux 抓取网页方式(curl+wget)
  7. php 带参数以post方式跳转
  8. 如何解析命令行字符串来使用regex获取每个参数?
  9. 如何在Laravel 5表单请求中使用请求路由参数?

随机推荐

  1. Android SAX API XmlResourceParser及其
  2. Android + eclipse +ADT安装完全教程
  3. Android航班时刻查询
  4. Android三级目录、ListView单选/GridView
  5. EditView某些属性说明
  6. Android 5.0 Telephony关键类初始化和相
  7. Android原生(Native)C开发之九:OpenGL ES
  8. Android onActivityResult()不执行的几个
  9. Android的视频播放之VideoView与SurfaceV
  10. Android入门之helloworld