AS3常用代码(三):AS3与HTML的交互
老实说,对AS3与HTML的交互实际上了解的不多,也很少运用。
其实HTML在嵌入SWF时使用的OBJECT标签也有很多可以挖掘的地方,那我们就来研究一下···
- <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
- codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"
- WIDTH="550" HEIGHT="400" id="myMovieName">
- <PARAM NAME=movie VALUE="myFlashMovie.swf">
- <PARAM NAME=quality VALUE=high>
- <PARAM NAME=bgcolor VALUE=#FFFFFF>
- <EMBED src="/support/flash/ts/documents/myFlashMovie.swf" quality=high bgcolor=#FFFFFF WIDTH="550" HEIGHT="400"
- NAME="myMovieName" ALIGN="" TYPE="application/x-shockwave-flash"
- PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">
- </EMBED>
- </OBJECT>
以上是常用的模板,其中:
一,标签结构:
<OBJECT>
<PARAM NAME= VALUE>
<EMBED></EMBEL>
</OBJECT>
其中<OBJECT>是用于Windows IE3.0及以后浏览器或者其它支持Activex控件的浏览器。“classid”和“codebase”属性必须要精确的copy,作用是告诉浏览器自动下载flash player的地址。
<PARAM>标签是具体的属性
<EMBED>是用于非IE浏览器的写法。
二,必写和非必写的属性:
这里偷懒一下,使用COPY大法,因为感觉实在很没必要一个一个详细解释,但是还是标明一些比较有用的
一、必需属性:
·CLASSID-设置浏览器的Activex控件,仅用于OBJECT标签。
·CODEBASE-设置flash Activex控件的位置,因而如果浏览器如果没有安装的话,可以自动下载安装。仅用于OBJECT标签。
·WIDTH-以百分比或象素指定flash影片的宽度。
·HEIGHT-以百分比或象素指定flash影片的高度。
·SRC-指定影片的下载地址。仅用于EMBED标签。
·PLUGINSPAGE-设置flash 插件的位置,因而如果浏览器如果没有安装的话,可以自动下载安装。仅用于EMBED标签。
·MOVIE-指定影片的下载地址。仅用于OBJECT标签。
二、可选属性及可用的值:
·ID-设定变量名,用于脚本代码的引用。仅用于OBJECT。
·NAME -设定变量名,用于脚本代码(如javascript)的引用。仅用于EMBED。
·SWLIVECONNECT - (true或false)指定当flash player第一次下载时,是否启用java。如果些属性省略,默认值为false。你果你在相同页同使用javascript和flash,java必须使用FSCommand来工作。
·PLAY -(true或false)指定flash影片是否在下载完成后就自动播放,如果省略此属性,则默认为true。
·LOOP - (true或false)指定影片播放完最后一帧后是停止还是继续循环播放,如果省略此属性,则默认为true。
·MENU - (true或false) True 显示全部的菜单,允许用户放大,缩小等控制影片播放等操作。 False 显示只包含设置选项和关于flash的菜单。
·QUALITY - (low, high, autolow, autohigh, best ) Low 速度优于美观,而且不应用反锯齿。 Autolow 刚开始着重于速度,但当需要时随时提升美观。 Autohigh 同时着重播放速度和美观,但需要时则牺牲美观来保证播放速度。 Medium 应用一些反锯齿而不平滑位图。它质量高于low设置而低于high设置。 High 美观优于播放速度,而且一直应用反锯齿。如果影片不包含动画,位图会被平滑化;而如果影片包含动画,位图将不变平滑。 Best 提供最好的显示质量而不考虑播放速度。所有输出都应用反锯齿及所有位图都被平滑化。
·SCALE - (showall, noborder, exactfit) Default(Show all)影片在指定的区域内显示,但保持原始的比例。影片两侧将会出现边框。 No Boder 收缩影片以适合指定的区域,保持影片不失真,但部分影片将可能将裁切。然而保持影片的原始比例。 Exact Fit 使整个影片在指定的区域内显示,影片有可能变形失真,而且不保持原始的比例。
·ALIGN - (l, t, r, b) 默认为居中,当浏览器窗口小于影片时,边缘会被裁切。 Left,Right,Top,Bottom按照相应的设置沿浏览器的边缘对齐。如果需要,另外三边将被裁切。
·SALIGN - (l, t, r, b, tl, tr, bl, br)
·L,R,T,B
·TL,TR
·BL,BR
·WMODE- (window, opaque, transparent) 设置flash影片的window mode属性,指定flash在浏览器中的透明,层叠及位置。 Window 影片在浏览器中自己的矩形窗口内播放。 Opaque 影片隐藏了所有在它后面的内容。 Transparent 使flash影片透明,显示透明影片后面的网页内容。这将会降低动画的性能。而且这个属性不是在所有浏览器中都可用的。
·BGCOLOR - (#RRGGBB, 十六进制RGB值。)指定影片的背景颜色。使用这个属性覆盖flash中设定的背景颜色。
·BASE - 设定基准目录或URL,用来解决所以flash中的相对路径。类似网页中的<base>标签。
·FLASHVARS 传递变量到flash player,需要flash player6及以后的版本。 传递root级变量到影片。字符串的格式是用“&”分隔的name=value集。 浏览器支持64kB大小的字符串长度。 更多关于FlashVars的信息,请查看相关文档。
另外想提一个比较有意思的用法···大家都知道Flash一个被人诟病的地方就是Flash所看到的页面不能被正确保存,而且也没有IE的后退和前进功能。其实有一个办法可以解决这个问题:
那就是利用浏览器地址栏的参数,因为IE收藏夹保存的是完整的浏览器地址栏值,那么举例如果我的FLASH有两个个PAGE,那么我完全可以把他分为http://www.xxx.com/#page=1和http://www.xxx.com/#page=2两个值,#号后面的数值不影响页面的浏览,但是可以记录下页面的位置。
而JS是可以直接访问到浏览器的地址栏的,方法如下:
document.location.herf
而更改浏览器地址的值则直接用不引起刷新的“#”,再加上想要修改的值即可,例如:
document.location.herf = "#page=1";
再通过我们之前的AS3与JS的交互,即可达到收藏夹保存Flash具体页面的效果。而稍微做一点变动,就可以实现前进后退的功能。
注:
AS3与JS交互方法请参考《AS3语言研究(二):AS3与JS的交互》hi.baidu.com/dannyfd/blog/item/1909ff29ec5796345343c111.html