网页往flash传参数
我们一般向网页swf文件传入参数有两种方式,一种是URL如 test.swf?page=5..... 一种是通过网页flashvars传入。 对于AS3是通过parameters对象来管理这些参数及值的,它是一个Object对象,当传入参数后,参数与参数值会以值对形式储存在 parameters对象中,访问可以为parameters,也可以为parameters.page这种形式,来个小例子: //获得page参数 var myPara:String=stage.loaderInfo.parameters.page; //输出参数值 myText.text=myPara;
flex接收flashvars的方法和flash不一样,在as3中是用“root.loaderInfo.parameters”或“stage.loaderInfo.parameters”来取得传递的参数,而在flex中则要用“Application.application.parameters”来取得。
网页端:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,79,0" width="600" height="400" id="FlashMovie" align="middle"> <param name="allowScriptAccess" value="sameDomain" /> <param name="FlashVars" value="myName=julabs&myHometown=china" /> <param name="movie" value="demo20.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <embed src="demo20.swf" FlashVars="myName=julabs&myHometown=china" quality="high" bgcolor="#ffffff" width="600" height="400" NAME="FlashMovie" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" swLiveConnect="true" pluginspage="http://www.macromedia.com/go/getflashplayer" /> </object>
Flex端:
myName = Application.application.parameters.myName; myHometown = Application.application.parameters.myHometown;
其中需要注意的是如果你想在火狐和Opera中也能正常使用这项功能的话一定要在网页中的flash代码中使用“embed”标签,并且一定要在“embed”标签加入“FlashVars”参数的值,否则在火狐和Opera中就取得不到“FlashVars”所传递的值。