Re: [問題] 多個影片片段之播放與暫停
※ 引述《sextitanic (阿信163)》之銘言:
: ※ 引述《tira0419 (提拉)》之銘言:
: : 恕刪一點原文
: : 我需要做一個播放與暫停鈕,能停止動畫播放,卻又在暫停的地方開始播放。
: : 我試了很久,一開始發現STOP跟PLAY只能控制最上層的時間軸,無法暫停影片片段裡的
: : 播放。所以後來又開始把第一層的每個影片片段設一個實體名稱,然後再用程式碼去暫
: : 停這些影片片段的播放。(感覺很土法煉鋼...)
: : 程式碼如下:(假設10個影片片段的實體名稱是aaa bbb ccc ddd eee .........)
: : on (release) {
: : aaa.stop();
: : bbb.stop();
: : ccc.stop();
: : ddd.stop();
: : eee.stop();
: : fff.stop();
: : ggg.stop();
: : hhh.stop();
: : iii.stop();
: : sss.stop();
: : }
: 其實如果是命名成 a1、a2、a3....a11
: 那可以寫成
: for(var i=1; i<=11; i++){
: this["a" + i].stop();
: }
: : (恕再刪一點原文)我必須每個
: : 都設實體名稱,再設定相對應的程式碼。這樣搞下去程式碼就一長串比鄉民的30cm還
: : 長了...
: : 然後...我總共有60個flash要改,每個都有一模一樣的情況.....= ="
: : 所以來請教各位大大...有沒有程式碼可以一次控制這麼多層的影片片段
: : 設定我按下暫停鈕,這些動畫就全部暫停
: : 按下播放鈕,就從我剛剛暫停的那個畫面開始播放?
: : 懇求各位大大幫忙了>"<
: 如果不想要每一個都設名字的話,倒可以用另一個方法
: typeof
: 嗯.....就是偵測場景上的元件是什麼類型
: 如果是 movieclip 就停止
: 大概範例如下:
: for(var i in _root){ //迴圈,會跑在 _root 裡面的所有物件,指定給 i
: if(typeof(this[i])=="movieclip"){ // movieclip 就是影片片段
: this[i].stop(); //先把第一層的停下來
: for(var j in this[i]){ //再來就是停 i 影片片段裡面的囉
: if(typeof(this[i][j]) == "movieclip"){
: this[i][j].stop();
: }
: }
: }
: }
: 嗯......這個應該是 ok 的,寫的還挺醜的啊 XD
寫成遞迴 就能支援到所有層級
function stopMC(MC)
{
MC.stop();
for(var i in MC)
if(typeof(MC[i]) == "movieclip")
stopMC(MC[i]);
}
不過其實等到復原的時候就出包了,因為
function playMC(MC)
{
MC.play();
for(var i in MC)
if(typeof(MC[i]) == "movieclip")
playMC(MC[i]);
}
當初停止全部的MC之前,也許只有少數幾個MC會動
但是復原時卻是所有MC都在動阿~~~(無解)
有辦法判斷出某個MC是否正在play嗎?
==嘗試修改推文中提到的問題
function stopMC(MC)
{
for(var i in MC)
if(typeof(MC[i]) == "movieclip")
stopMC(MC[i]);
//備份資料
MC.onEnterFrameBackup = MC.onEnterFrame;
MC._currentFrameBackup = MC._currentFrame;
MC.onEnterFrame = function()
{
//判斷這MC本身會不會動
if(this._currentFrame == this._currentFrameBackup)
this.stopByFunction = false;
else
this.stopByFunction = true;
//馬上停掉
this.onEnterFrame = null;
MC.stop();
}
//MC.stop(); 放這裡就錯了
}
function playMC(MC)
{
for(var i in MC)
if(typeof(MC[i]) == "movieclip")
playMC(MC[i]);
MC.onEnterFrame = MC.onEnterFrameBackup;
if(MC.stopByFunction)
MC.play();
}
測試檔案:用滑鼠左鍵點到球 球就會停下或繼續跑
http://cgm.cs.ntust.edu.tw/etrex/stopPlay/stopPlay.html
http://cgm.cs.ntust.edu.tw/etrex/stopPlay/stopPlay.fla
有組件也ok的版本:
http://cgm.cs.ntust.edu.tw/etrex/stopPlay/stopPlay2.html
http://cgm.cs.ntust.edu.tw/etrex/stopPlay/stopPlay2.fla
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.9.202
推
12/10 17:30, , 1F
12/10 17:30, 1F
→
12/10 17:31, , 2F
12/10 17:31, 2F
→
12/10 17:37, , 3F
12/10 17:37, 3F
→
12/10 17:45, , 4F
12/10 17:45, 4F
→
12/10 17:47, , 5F
12/10 17:47, 5F
→
12/10 17:48, , 6F
12/10 17:48, 6F
→
12/10 17:49, , 7F
12/10 17:49, 7F
→
12/10 17:49, , 8F
12/10 17:49, 8F
→
12/10 17:49, , 9F
12/10 17:49, 9F
→
12/10 17:50, , 10F
12/10 17:50, 10F
→
12/10 17:50, , 11F
12/10 17:50, 11F
※ 編輯: etrexetrex 來自: 140.118.9.202 (12/10 18:04)
推
12/10 19:46, , 12F
12/10 19:46, 12F
→
12/10 19:47, , 13F
12/10 19:47, 13F
→
12/10 19:48, , 14F
12/10 19:48, 14F
推
12/10 20:39, , 15F
12/10 20:39, 15F
推
12/10 20:59, , 16F
12/10 20:59, 16F
→
12/10 21:08, , 17F
12/10 21:08, 17F
※ 編輯: etrexetrex 來自: 118.168.163.148 (12/10 21:09)
→
12/10 21:16, , 18F
12/10 21:16, 18F
→
12/10 21:17, , 19F
12/10 21:17, 19F
推
12/10 21:20, , 20F
12/10 21:20, 20F
推
12/10 21:26, , 21F
12/10 21:26, 21F
→
12/10 21:27, , 22F
12/10 21:27, 22F
→
12/10 21:28, , 23F
12/10 21:28, 23F
推
12/10 21:29, , 24F
12/10 21:29, 24F
推
12/10 21:35, , 25F
12/10 21:35, 25F
→
12/10 21:35, , 26F
12/10 21:35, 26F
→
12/10 21:43, , 27F
12/10 21:43, 27F
→
12/10 21:43, , 28F
12/10 21:43, 28F
→
12/10 21:44, , 29F
12/10 21:44, 29F
→
12/10 21:47, , 30F
12/10 21:47, 30F
※ 編輯: etrexetrex 來自: 118.168.163.148 (12/10 21:52)
→
12/10 21:53, , 31F
12/10 21:53, 31F
→
12/10 21:53, , 32F
12/10 21:53, 32F
→
12/10 21:55, , 33F
12/10 21:55, 33F
推
12/10 21:55, , 34F
12/10 21:55, 34F
→
12/10 21:56, , 35F
12/10 21:56, 35F
→
12/10 22:00, , 36F
12/10 22:00, 36F
→
12/10 22:07, , 37F
12/10 22:07, 37F
推
12/10 22:16, , 38F
12/10 22:16, 38F
→
12/10 22:16, , 39F
12/10 22:16, 39F
→
12/10 22:20, , 40F
12/10 22:20, 40F
→
12/10 22:32, , 41F
12/10 22:32, 41F
※ 編輯: etrexetrex 來自: 118.168.163.148 (12/10 22:35)
推
12/11 11:45, , 42F
12/11 11:45, 42F
→
12/11 11:52, , 43F
12/11 11:52, 43F
→
12/13 13:41, , 44F
12/13 13:41, 44F
討論串 (同標題文章)