Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3:Z是做什么的?如何有深度?_Actionscript 3_Layer_Perspective_Depth - Fatal编程技术网

Actionscript 3 AS3:Z是做什么的?如何有深度?

Actionscript 3 AS3:Z是做什么的?如何有深度?,actionscript-3,layer,perspective,depth,Actionscript 3,Layer,Perspective,Depth,情景: Y值越大,电影剪辑越“在前面” 如果我有两个电影剪辑 Movieclip1.y is 50 Movieclip2.y is 20 那么movieclip1应该在movieclip2之前 如果 然后 movieclip4应该在最前面 movieclip3应该排在第二位 另外两个深度应该相等 差不多 this.z = this.y? 但是我不知道代码是怎样的。您可以使用以下方法对它们进行分层: 您可以使用该方法更改顺序: this.setChildIndex(movieclip1, 1)

情景:

Y值越大,电影剪辑越“在前面”

如果我有两个电影剪辑

Movieclip1.y is 50
Movieclip2.y is 20
那么movieclip1应该在movieclip2之前

如果

然后

movieclip4应该在最前面 movieclip3应该排在第二位 另外两个深度应该相等

差不多

this.z = this.y?
但是我不知道代码是怎样的。

您可以使用以下方法对它们进行分层:

您可以使用该方法更改顺序:

this.setChildIndex(movieclip1, 1);
this.setChildIndex(movieclip2, 0); // switch the depths

您可以使用我制作的这个片段,它根据MovieClip的z值更改MovieClip的深度(伪代码,您可能需要编辑一下):


基本上检查最大的
z
(3d坐标)并将其与后面的任何东西交换。

您想到的是z-index:@adaam它在as3中不叫
z-index
。@Wobbafter道歉-我在as3中编程已经有一段时间了@是的,我只在as3中编写代码,因为我制作应用程序,这是一种简单的代码语言,但我从JavaScript中获得了大部分知识。我重新阅读了这个问题。你是说剪辑y位置的值会影响它的深度吗?但是如果我想让他们根据移动的位置改变z轴呢?所以它不是永远这样的,所以有时候movieclip 1可以走在movieclip 4前面,等等
this.addChild(movieclip1);
this.addChild(movieclip2); // is stacked above movieclip1;
this.setChildIndex(movieclip1, 1);
this.setChildIndex(movieclip2, 0); // switch the depths
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])
        }
    }
}