js与flash的交互FLASH连播控制器

该实例主要实现了js与flash的交互,运行前提是浏览器安装了flash插件!

前段时间领导提出的一个问题:能否实现多个flash的连续播放?
查了相关资料并通过自己的努力,最终实现了如下一个简单的Flash连续播放的js脚本。
该功能的实现实际上相当简单,主要是要了解js对flash控制的接口函数,知道了这些,问题的难度马上就降到了1+1=?的级别。


代码如下:

var flashs=[   
"http://60.210.98.23/theater/flash/2007-07/1436151_1183823655.swf",   
"http://www.flashempire.com/theater/flash/2007-08/1300680_1186654843.swf",   
"http://60.210.98.23/theater/flash/2007-05/1178503513_chinese.swf",   
"http://60.210.98.23/theater/flash/2007-07/1192848_1183734914.swf"  
];

function makeFlashStr(url){   
  return '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="550" height="400" id="swf">\  
    <param name="bgcolor" value="#ffffff">\  
    <param name="movie" value="'+url+'">\  
    <param name="quality" value="high">\  
    <embed src="'+url+'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="550" height="400"></embed></object>';   
}

var curFlash=0;   
var flashLen=flashs.length;   
var $=function(obj){return document.getElementById(obj)}   
//判断是否需要播放下一个flash   
function updateMovie(){   
  var swf=$("swf");   
  var swf_container=$("swfcontain");   
  if(swf.PercentLoaded()==100){   
    var totalFrames;   
    //IE与标准浏览器的差别   
    try{  //For Opera/FF   
      totalFrames=swf.TotalFrames();   
    }catch(e){  //For IE   
      totalFrames=swf.TotalFrames;   
    }   
    var curFrame=swf.CurrentFrame()+1;

var isPlay=swf.IsPlaying();   
    if(totalFrames==curFrame){   
      swfcontain.innerHTML=makeFlashStr(flashs[++curFlash%flashLen]);   
      $("flashList").selectedIndex=curFlash;   
    }   
    //调试信息   
    $("curFlash").value=flashs[curFlash%flashLen];   
    $("totalFrames").value=totalFrames;   
    $("curFrame").value=curFrame;   
    $("playStatu").value=(isPlay?"播放中"+[".","..","..."][parseInt(curFrame/10)%3]:"停止");   
  }else{   
    //调试信息   
    $("curFlash").value=flashs[curFlash%flashLen];   
    $("totalFrames").value="Loading Flash";   
    $("curFrame").value="Loading Flash";   
    $("playStatu").value="Loading Flash";   
  }   
  setTimeout("updateMovie()",100);   
}   
//手工指定要播放的flash   
function setMovie(index){   
  curFlash=index;   
  $("swfcontain").innerHTML=makeFlashStr(flashs[index]);   
}   
window.onload=function(){   
  var sel=$("flashList");   
  //初始化并生成flash列表   
  for(var i=0;i<flashLen;i++){   
    $("flashList").add(new Option(flashs[i],i));   
  }   
  setMovie(0);  //播放第一个flash   
  //循环检测并更新flash   
  setTimeout("updateMovie()",10);   
}

另奉上js与flash的操作接口函数,一方面自己备忘,另一方面希望对这个程序有兴趣的朋友能有所帮助。

--------------------------------------------------------------------------------

可控制Flash Player的Javascript方法一览表:

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的指定属性

(0)

相关推荐

  • js与flash的交互FLASH连播控制器

    该实例主要实现了js与flash的交互,运行前提是浏览器安装了flash插件! 前段时间领导提出的一个问题:能否实现多个flash的连续播放? 查了相关资料并通过自己的努力,最终实现了如下一个简单的Flash连续播放的js脚本. 该功能的实现实际上相当简单,主要是要了解js对flash控制的接口函数,知道了这些,问题的难度马上就降到了1+1=?的级别. 复制代码 代码如下: var flashs=[    "http://60.210.98.23/theater/flash/2007-07/14

  • js实现延时加载Flash的方法

    本文实例讲述了js实现延时加载Flash的方法.分享给大家供大家参考,具体如下: 当页面中包含自动播放视频的flash播放器时,flash的流媒体播放会一直不停的下载视频(哪怕你点击了播放暂停/停止也一样在不停下载),这样会影响到页面其它元素的加载. 最简单的优化办法就是让Flash一开始不要播放:当然,你可以修改fla源文件,让视频播放一开始就处于暂停,直到用户点击了播放按钮.但问题是,如果您嵌入的是没有源文件的flash动画,这种路子就走不通了. 思路: 可以先在放置flash的地方,放一张

  • JS判断浏览器是否安装flash插件的简单方法

    1. 直接判断是否有flash插件 var myFlash = (function(){ if(typeof window.ActiveXObject != "undefined"){ return new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); }else{ return navigator.plugins['Shockwave Flash']; } })(); chrome: Edge浏览器中取消了wind

  • 原生js和jQuery实现淡入淡出轮播效果

    本文实例为大家介绍了基于jQuery实现淡入淡出轮播效果的关键代码,分享给大家供大家参考,具体内容如下: 基本原理:将所有图片绝对定位在同一位置,透明度设为0,然后通过jQuery的淡入淡出实现图片的切换效果. html代码: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>一个轮播&l

  • JS中Swiper的使用和轮播图效果

    Swiper是移动端的一款非常强大的触摸滑动插件,下面代码只展示一些常用的配置,具体可以查看官网api <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="swiper.min.cs

  • JS仿hao123导航页面图片轮播效果

    hao123网站大家都很熟悉吧,具体的效果不用我多说吧,感兴趣的朋友可以去参考效果图,下面小编给大家分享下实现代码思路,当然大家可以根据需求适当的添加修改删除代码. 关键代码如下所示: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>图片轮播</title> <style> .warp{ wi

  • js实现点击左右按钮轮播图片效果实例

    本文实例讲述了js实现点击左右按钮轮播图片效果的方法.分享给大家供大家参考.具体实现方法如下: $(function () { var index = 1; var pPage = 1; var $v_citemss = $(".citemss"); var $v_show = $v_citemss.find("ul"); v_width = $v_citemss.width();//图片展示区外围div的大小 //注:若为整数,前边不能再加var,否则会被提示un

  • 利用JS做网页特效_大图轮播(实例讲解)

    废话不多说,直接上代码: <style> * { margin: 0px; padding: 0px; } .stage { width: 500px; height: 300px; border: 5px solid black; margin: 200px; position: relative; overflow: hidden; } .to-left, .to-right { position: absolute; top: 0px; width: 50px; height: 300p

  • Bootstrap 最常用的JS插件系列总结(图片轮播、标签切换等)

    在Bootstrap下载与安装后,可以在D:\Program Files\nodejs\node_modules\bootstrap\js中找到12个JS文件,这些JS文件是Bootstrap自带的12个jQuery插件,也可以在D:\Program Files\nodejs\node_modules\bootstrap\dist\js中找到bootstrap.js和bootstrap.min.js,这两个文件都包含12个jQuery插件. 在这12个jQuery插件中,最常用的有图片轮播car

  • js实现3D图片逐张轮播幻灯片特效代码分享

    本文实例讲述了javascript实现3D图片逐张轮播幻灯片特效.分享给大家供大家参考.具体如下: 这是一款基于javascript实现3D图片逐张轮播幻灯片特效代码,实现过程很简单. 运行效果图:-------------------查看效果 下载源码------------------- 小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式. 为大家分享的js实现3D图片逐张轮播幻灯片特效代码如下 <head> <meta http-equiv="Content-Type

随机推荐