从HTML中传递参数给Flash(FlashVars的使用)
FlashVars 提供一个解决方案用户把HTML变量作为参数传递给SWF。这点在传递一些简单的数据给SWF时是非常有用的功能,例如当web services URL发生变化时你可能需要传递一个新的URL给SWF,这样就可避免再次重新编译SWF。
FlashVars 方案有两部分组成,一部分通过HTML实现,另一部分由ActionScript实现。HTML部分需要在<object> 标签中添加一个<param name="FlashVars"> 标签, 例如下面的
FlashVars 定义了两个键值对:url1 和url2:
url1=http://www.example.com&url2=http://www.sample.com
在ActionScript方面,可通过任何可视化组件都有的root.loaderInfo.parameters 属性得到FlashVars传递进来的参数,root.loaderInfo.parameters 属性是一个关联数组,例如根据上面例子的变量值,root.loaderInfo.parameters 属性将得到两个键值:url1 和url2 。
通过JavaScript的FlashVars,我们可传递一个字符串序列给SWF,下面的例子演示如何编写<object> 和<embed> 标签以及通过FlashVars传递字符串序列给SWF:
// Retrieve the query string, and assign it to a variable. var parameters = window.location.search.substr(1); var objectEmbed = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="Example" width="100%" height="100%" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">'; objectEmbed += '<param name="movie" value="Example.swf" />'; objectEmbed += '<param name="quality" value="high" />'; objectEmbed += '<param name="bgcolor" value="#869ca7" />'; objectEmbed += '<param name="allowScriptAccess" value="sameDomain" />'; objectEmbed += '<param name="FlashVars" value="' + parameters + '" />'; objectEmbed += '<embed src="Example.swf" quality="high" bgcolor="#869ca7" width="100%" height="100%" name="Example" align="middle" play="true" loop="false" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" FlashVars="' + parameters + '"></embed>'; objectEmbed += '</object>'; document.write(objectEmbed);
FlashVars 是Flash 播放器一个重要的功能,但是仅仅用FlashVars 是不够的,它只能传递一些简单的数据,如果要传递复杂的数据,可使用URLLoader 对象。
来自:http://www.cuplayer.com/player/PlayerCodeAs/2011/0818110.html