从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 对象。
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例