JS控制网页中Flash影片的播放(附带各参数) --转载
实现功能:
在网页中嵌入一段swf视频,加载网页时不播放,点击下面的播放按钮实现播放
首先在网页中嵌入Object代码:
1 <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" 2 codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" id="swf"> 3 <param name="movie" value="images/zf03320.swf"> 4 <param name="quality" value="high"> 5 <param name="bgcolor" value="#F0F0F0"> 6 <param name="menu" value="false"> 7 <param name="wmode" value="opaque"> 8 <param name="FlashVars" value=""> 9 <param name="allowScriptAccess" value="sameDomain"> 10 <param name="loop" value="false"> 11 <param name="play" value=""false""> 12 <embed name="swf" src="images/zf03320.swf" 13 width="400" height="300" 14 align="middle" 15 quality="high" 16 menu="false" 17 play="false" 18 loop="false" 19 FlashVars="" 20 allowScriptAccess="sameDomain" 21 type="application/x-shockwave-flash" 22 pluginspage="http://www.adobe.com/go/getflashplayer"> 23 </embed> 24 </object>
object标签是用于windows IE3.0及以后浏览器或者其它支持Activex控件的浏览器。“classid”和“codebase”属性必须要精确地按上例所示的写法写,它们告诉浏览器自动下载flash player的地址。如果你没有安装过flash player 那么IE3.0以后的浏览器会跳出一个提示框访问是否要自动安装flash player。当然,如果你不想让那些没有安装flash player的用户自动下载播放器,或许你可以省略掉这些代码。 embed标签是用于Netscape Navigator2.0及以后的浏览器或其它支持Netscape插件的浏览器。“pluginspage”属性告诉浏览器下载flash player的地址,如果还没有安装flash player的话,用户安装完后需要重启浏览器才能正常使用。 为了确保大多数浏览器能正常显示flash,你需要把EMBED标签嵌套放在OBJECT标签内,就如上面代码例子一样。支持Activex控件的浏览器将会忽略object标签内的embed标签。Netscape和使用插件的IE浏览器将只读取EMBED标签而不会识别OBJECT标签。也就是说,如果你省略了embed标签,那firefox就不能识别你的flash了(不过纳闷的是,省略了object只写embed,IE也能正常显示flash,呵呵,具体的再仔细看看了)。 下面列出了用于发布影片的object和embed标签的必要以及可选属性。
下面附带Object中的各个参数的意义表:
一、必需属性: calssid-设置浏览器的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的代码:
1 <input type="button" value="播放SWF" id="playSWF"> 2 <script type="text/javascript"> 3 var btn=document.getElementById("playSWF"); 4 btn.onclick=function(){ 5 document.swf.Play(); 6 } 7 </script>
下面是JS控制flash的一些方法:
Play() ---------------------------------------- 播放动画 StopPlay()------------------------------------停止动画 IsPlaying()----------------------------------- 动画是否正在播放 GotoFrame(frame_number)---------------- 跳转到某帧 TotalFrames()------------------------------- 获取动画总帧数 CurrentFrame()------------------------------回传当前动画所在帧数-1 Rewind()-------------------------------------使动画返回第一帧 SetZoomRect(left,top,right,buttom)-------放大指定区域 Zoom(percent)------------------------------改变动画大小 Pan(x_position,y_position,unit)------------使动画在x,y方向上平移 PercentLoaded()----------------------------返回动画被载入的百分比 LoadMovie(level_number,path)----------- 加载动画 TGotoFrame(movie_clip,frame_number)- movie_clip跳转到指定帧数 TGotoLabel(movie_clip,label_name)------ movie_clip跳转到指定标签 TCurrentFrame(movie_clip)--------------- 回传movie_clip当前帧-1 TCurrentLabel(movie_clip)-----------------回传movie_clip当前标签 TPlay(movie_clip)---------------------------播放movie_clip TStopPlay(movie_clip)----------------------停止movie_clip的播放 GetVariable(variable_name)-----------------获取变量 SetVariable(variable_name,value)-----------变量赋值 TCallFrame(movie_clip,frame_number)---call指定帧上的action TCallLabel(movie_clip,label)----------------call指定标签上的action TGetProperty(movie_clip,property)--------获取movie_clip的指定属性 TSetProperty(movie_clip,property,number)-设置movie_clip的指定属性 其中TGetProperty 和 TSetProperty 的属性是使用数字0-18来获取的,下面是各数字代表的属性: 属性 作用 数字 使用方式
X Position X坐标 0 Get,Set Y Position Y坐标 1 Get,Set X Scale X方向缩放比率 2 Get,Set Y Scale Y方向缩放比率 3 Get,Set CurrentFrame movie_clip当前所在帧数 4 Get TotalFrames movie_clip总帧数 5 Get Alpha movie_clip的透明度 6 Get,Set Visibility movie_clip是否可见 7 Get,Set Width movie_clip的宽度 8 Get Height movie_clip的高度 9 Get Rotation movie_clip的旋转度 10 Get,Set Target movie_clip的路径 11 Get Framesloaded movie_clip已载入的帧数 12 Get Name movie_clip的实体名字 13 Get,Set DropTarget movie_clip的拖拽 14 Get Url 包含movie_clip的动画的url 15 Get HighQuality 设置画面质量为高质量 16 Get,Set FocusRect 显示按钮边框 17 Get,Set SoundBufTime 预设声音缓冲时间 18 Get,Set flash调用js: 可以使用fscommand来调用js,但使用getUrl方面更为的方便,比如:getURL("BLOCKED SCRIPTalert('"+ message+ "')");就可以使用js的alert的方法作为调试使用.