正如您可以在问题下方的评论中看到的那样,有几种方法可以解决这个问题。
但实际上,您所要求的“将影片剪辑的深度设置为任意数字”在 AS3 中并不能真正做到。如果我是正确的,您可以在 AS2 中执行此操作,所以...
... 它曾是怎样的 ...
_root.createEmptyMovieClip("mc", -1000);
或者
_root.createEmptyMovieClip("mc1", 1);
_root.createEmptyMovieClip("mc2", 10);
工作,但在 AS3 中不起作用。在 AS3 中,深度从 0 开始,您不能强制 DisplayObject 位于从零开始不连续的级别。
因此,容器中的 3 个影片剪辑的深度只能使用以下值:0、1、2。
例如,深度不能是负数。
现在,如果你想构建一个自定义深度管理器,你可以这样做,但你必须考虑这些事实。
可以这么说,您可以创建虚拟深度。
所以我想,你可以覆盖addChildAt
例如方法。目前,如果你给出一个错误的数字:负数,或者高于孩子的数量,flash 会返回错误:
RangeError: Error #2006: The supplied index is out of bounds.
所以mc.addChildAt(newchild, -1000)
给出了一个错误。
但是通过覆盖该方法,您可以制作一个技巧,因此您可以将深度存储在一个数组中。您可以存储任何数字,然后根据 AS3 的需要转换该顺序。
就像将深度与添加的孩子配对,按深度对数组进行排序,然后按照顺序管理孩子。
如果您有更多问题,请随时提问,希望这能让您更接近解决方案。