Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/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 动作脚本3:使子A中的某些对象显示在子B的上方,而其他对象显示在子B的下方_Actionscript 3_Parent Child_Z Index - Fatal编程技术网

Actionscript 3 动作脚本3:使子A中的某些对象显示在子B的上方,而其他对象显示在子B的下方

Actionscript 3 动作脚本3:使子A中的某些对象显示在子B的上方,而其他对象显示在子B的下方,actionscript-3,parent-child,z-index,Actionscript 3,Parent Child,Z Index,假设我有一个背景,我想在播放器对象下显示背景。这可以轻松完成: var player:Player = new Player(); addChild(player); var background:Background = new Background(); addChildAt(background, 0); 然而,想象一下,在这个背景下,我有透明的云,它们必须出现在船的上方,而不透明的恒星则必须出现在船的下方。上面的代码只会使所有背景对象都进入船下。有什么提示吗?制作一个前景层,在播放器

假设我有一个背景,我想在播放器对象下显示背景。这可以轻松完成:

var player:Player = new Player();
addChild(player);

var background:Background = new Background();
addChildAt(background, 0);

然而,想象一下,在这个背景下,我有透明的云,它们必须出现在船的上方,而不透明的恒星则必须出现在船的下方。上面的代码只会使所有背景对象都进入船下。有什么提示吗?

制作一个前景层,在播放器对象之后渲染。这是实现此效果的最简单方法

i、 e

我想你将有多个对象,你想出现在前景层和背景层之间,所以我还建议你创建一个“活动”层,它是“玩家”对象的实际父对象

因此,对象层次结构与此类似:

Scene
    Background
        Rolling hills
    Active
        Player Sprite
        Enemies
        Obstacles
    Foreground
        Clouds

这是唯一的办法吗?因为这将迫使我为不同的对象创建几个后台引擎,因为后台是动态生成的()。你确定这会对性能造成很大影响吗?这似乎是在过早优化之前要尝试的事情。由于背景层和前景层中的对象不是同一组对象,因此这与只有一个背景对象的方法几乎没有区别。这是不可能的。你必须把云放在玩家对象上方的另一个父对象中。谢谢你清理了它。
Scene
    Background
        Rolling hills
    Active
        Player Sprite
        Enemies
        Obstacles
    Foreground
        Clouds