作者easeeasy (001)
看板Flash
标题Re: [问题] 使用的movieclip为变数时 要怎麽呼叫쌠…
时间Sat Jan 13 22:49:50 2007
※ 引述《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
1F:→ achilles03:谢谢 01/15 18:00