Re: [問題] 使用的movieclip為變數時 要怎麼呼叫쌠…
※ 引述《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
討論串 (同標題文章)
完整討論串 (本文為第 4 之 4 篇):
Flash 近期熱門文章
PTT數位生活區 即時熱門文章