(转)利用flashvars传参 AS2
做了一个图片展示的flash,想用一个简单的方法来吧外部参数(图片张数)传递给flash文件,以便控制上一页下一页的按钮,研究了半天,终于找到了一个比较简单的方法。就是利用 flashvars
IE中:
- ...
- <param name="movie" value="test.swf" />
- <param name="quality" value="high" />
- <param name="flashvars" value="picnum=5" />
- <param name="menu" value="false" />
- ...
FirFox中:
- ...
- <param name="movie" value="test.swf" />
- <param name="quality" value="high" />
- <param name="flashvars" value="youUrl=123″ />
- <param name="menu" value="false" />
- <embed flashvars="picnum=5" src="test.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="550″ height="400″ />
- ...
在这两个不同的浏览器中添加的位置不同,要注意啊。不过为了保险,最好是都加上,反正也不碍事。因为IE升级,所以如果在以前的版本中发布Flash(按F12),会在Flash 周围有一个虚框,只有点击一下之后,Flash才能获得焦点,但是现在的Flash发布,直接解决了这个问题,直接生成了一个AC_RunActiveContent.js文件,所以现在要想通过Flashvars传递参数,也要记得修改HTML文件的这里:
- <script type="text/javascript">
- AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','614','height','493','src','pic','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','flashvars','picnum=5','movie','pic' ); //end AC code
- </script>
另外flashvars的大小写也不能搞错!
好了,最后说一下在SWF文件里面的AS怎么获得这个数据呢?从上面看到,我定义的参数是 picnum=5 ,那么在AS代码中怎么调用呢,很简单用这个 _root.picnum 就可以了!它的值就是5!
例如:
if (i == _root.picnum)
{...}
最后说明一下,如果要调用多个不同的参数,可以这样写
<param name="flashvars" value="picnum=5&add=zhongxinlu&time=5minutes" />
看出来了吧,用&作为分割符就可以了!
==================
最后说一下AS3.0中调用这个参数的方法:
var temp=this.loaderInfo.parameters["temp"];