Re: [問題] 使用的movieclip為變數時 要怎麼呼叫쌠…

看板Flash作者 (001)時間19年前 (2007/01/13 22:49), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串4/4 (看更多)
※ 引述《achilles03 (achilles)》之銘言: : 在使用 movieclip.swapDepths(100)的時候 : movieclip一定要是固定的名稱嗎? : 因為我現在有好多個movieclip, : 必須等待回傳是哪個movieclip才決定使用哪個movieclip : 所以想請問有人知道如何讓movieclip能夠動態的由變數決定? 先理解一下 你將影片片段的深度設定成100是為什麼? 若是只要單一依個影片片段交換深度的話 直接設定那個影片片的onPress事件 但若是你想讓場景上每一個不同的影片片段被按到時 深度皆設為100( 假設一 ) 或是你想讓場景上每一個不同的影片片段被按到時 都交換到目前場景上的最上層(假設二 ) 又或是你想讓場景上每一個不同的影片片段被按到時 到交換到不同的深度( 假設三 ) 以上3點 都會有不同的寫法 不過我提出我認為最容易理解的寫法給你看 你可以參考看看 若是在 "假設一" 的情況下 首先先宣告一個陣列 將場景上想交換深度的MovieClip 名稱放入陣列內 再利用for迴圈一次設定所有mc被按下的事件(簡略程式碼如下): //點點點代表可隨意放置,Array內影片片段不一定名稱要取一樣 var MCArray:Array=new Array(mcBtn_mc,mcBtnXX_mc,.......); for(var i:Number=0;i<MCArray.length;i++){ MCArray[i].onPress=function(){ this.swapDepths(100); }; }; ----------------------------------------------------------------------- 若是在 "假設二" 的情況下 程式碼跟上面一模一樣 只有一個地方有差別 var MCArray:Array=new Array(mcBtn_mc,mcBtnXX_mc,.......); for(var i:Number=0;i<MCArray.length;i++){ MCArray[i].onPress=function(){ this.swapDepths(_root.getNextHighestDepth()); //Sorry,_root.getNextHighestDepth()不知道有沒有拼錯 //表示會將被按下的mc交換到場景上的最上層 }; }; ------------------------------------------------------------------------- 若是在 "假設三" 的情況下 最簡單的作法和假設一相同 首先先宣告一個陣列 將場景上想交換深度的MovieClip 名稱放入陣列內 再宣告另一個陣列放置mc按下後會交換的深度 再利用for迴圈一次設定所有mc被按下的事件(簡略程式碼如下): //點點點代表可隨意放置,Array內影片片段不一定名稱要取一樣 var MCArray:Array=new Array(mcBtn_mc,mcBtnXX_mc,.......); var depthArray:Array=new Array(100,521,5543,......); for(var i:Number=0;i<MCArray.length;i++){ MCArray[i].onPress=function(){ this.swapDepths(depthArray[i]); //這樣第一個影片片段的深度會是100; }; }; 當然 程式的寫法有很多 不一定要照我的寫法寫 ^^ 希望這能解答你的問題 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.167.30.142

01/15 18:00, , 1F
謝謝
01/15 18:00, 1F
文章代碼(AID): #15gF6F0g (Flash)
文章代碼(AID): #15gF6F0g (Flash)