js與flash的互動FLASH連播控制器_Flash As

來源:互聯網
上載者:User
該執行個體主要實現了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的指定屬性 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.