情景:
Y值越多,影片剪辑的“前面”就越多。
所以,如果我有两个电影片段。
Movieclip1.y is 50
Movieclip2.y is 20
然后movieclip1应该是movieclip2的前面。
如果
movieclip1.y = 20
movieclip2.y = 20
movieclip3.y = 56
movieclip4.y = 921
然后
movieclip4应该是最重要的 movieclip3应该排在第二位 而另外两个应该是相同的深度
类似
this.z = this.y?
但我不知道代码是怎么回事。
答案 0 :(得分:0)
您可以使用addChild
this.addChild(movieclip1);
this.addChild(movieclip2); // is stacked above movieclip1;
您可以使用setChildIndex
方法更改顺序:
this.setChildIndex(movieclip1, 1);
this.setChildIndex(movieclip2, 0); // switch the depths
答案 1 :(得分:0)
您可以使用我制作的片段根据它的z值更改MovieClip的深度(伪代码,您可能需要稍微编辑一下):
addEventListener(Event.ENTER_FRAME, changeDepth);
function changeDepth():void
{
var movs = [movieclip1, movieclip2];
var movsVal = [movieclip1.z, movieclip2.z];
var a = movsVal.indexOf(Math.max.apply(movsVal));
if(movs.indexOf(a) === 0)
{
swapChildren(a, movs[movsVal.indexOf(a) + 1])
}else
{
if(movs.indexOf(a) === 1)
{
swapChildren(a, movs[movsVal.indexOf(a) - 1])
}
}
movs = [movieclip3, movieclip4];
movsVal = [movieclip3.z, movieclip4.z];
a = movsVal.indexOf(Math.max.apply(movsVal));
if(movs.indexOf(a) === 2)
{
swapChildren(a, movs[movsVal.indexOf(a) + 1])
}else
{
if(movs.indexOf(a) === 3)
{
swapChildren(a, movs[movsVal.indexOf(a) - 1])
}
}
}
基本上检查最大z
(3d坐标)并将其与其后面的任何内容交换。