作者sextitanic (阿信163)
看板Flash
標題Re: [問題] AS2 按鈕重複按有不同結果?
時間Mon Jul 19 22:10:10 2010
※ 引述《s24601 (24601)》之銘言:
: 比如說按第一次是讓影片元件A播放
: tellTarget ("A") {
: play();
: }
: 按了第二次變成讓B播放
: tellTarget ("B") {
: play();
: 但不知道在動作那邊要點什麼才有辦法這樣
: 請問有人知道嗎
哦哦,應該是我之前回覆有誤,讓原 po 誤會了
應該是要說 this["元件名"+變數].play(); 才對
以下單就 2 個影片片段的情形來講
因為後來也不鼓勵把程式寫在元件上面
所以我這邊就改成寫在時間軸上的寫法,不過其實沒什麼差
假設控制播放的按鈕你取叫「play_btn」
一、if 判斷法
var boo:Boolean = false;//布林函數,只有 false or true
play_btn.onRelease = function(){
if(boo == false){//如果是 false 就播 A1
A1.play();
boo = true; //然後把它設成 true,這樣下次就會去播 A2
}else{
A2.play();
boo = false;
}
}
如果另一個要播放另一個要停止的時候就給它加個 stop();
二、另一位大大說的取餘數方法,這邊我直接用很多個不同影片片段要播放舉例
假設有 20 個影片片段要輪流按了會播放,1個播放其他都會停
影片片段名稱命名為 A1、A2.....A19、A20
var mcTotal:Number = 20;//將有幾個影片片段獨立出來,方便修改
var nowPlay:Number = 0;//這是決定要讓哪一個影片片段來跑
play_btn.onRelease = function(){
nowPlay = nowPlay % mcTotal + 1;
//因為設名字是 1 開始,而 nowPlay 初始值為 0,故取餘數後再 +1決定控制的影片
//+1 是避免當nowPlay = 20,20 % 20 為0,會找不到要 play 的影片
for(var i:Number=1; i<=mcTotal; i++){
if(nowPlay == i){//如果 nowPlay = i 就播放,其他則停止
this["A"+i].play();
}else{
this["A"+i].stop();
}
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.136.191.178
→ diabloevagto:其實我也不知道取餘數可不可以說...只是剛好看到樓上 07/19 22:54
→ diabloevagto:的說可以加數字... 07/19 22:54
推 s24601:太酷了我來研究一番!!!!!感謝高手!!!!! 07/20 01:28