Actionscript 动作脚本3:将MovieClip放置在特定层上?

Actionscript 动作脚本3:将MovieClip放置在特定层上?,actionscript,mask,layer,Actionscript,Mask,Layer,我目前正在开发一个平台,我有一堆不同的瓷砖,我用它们来形成我的地图。这些瓷砖在外观上非常不同,而且放置在彼此旁边,它们会产生非常剧烈的变化,这在视觉上不是很吸引人。我一直试图通过以下方式解决此问题: 我有四层,每层两层。第一层是实际的瓷砖(图形)所在的位置。第二层是遮罩。在遮罩层中,我有一个梯度,它与其他瓷砖遮罩层正好相反(遮罩层1向下,遮罩层2向上)。然而,我需要能够动态地改变这些,在适当的遮罩层中放置新的渐变,在适当的图形层中放置新的平铺 我在谷歌上搜索了大约一个小时,试图找到一种方法来定义

我目前正在开发一个平台,我有一堆不同的瓷砖,我用它们来形成我的地图。这些瓷砖在外观上非常不同,而且放置在彼此旁边,它们会产生非常剧烈的变化,这在视觉上不是很吸引人。我一直试图通过以下方式解决此问题:

我有四层,每层两层。第一层是实际的瓷砖(图形)所在的位置。第二层是遮罩。在遮罩层中,我有一个梯度,它与其他瓷砖遮罩层正好相反(遮罩层1向下,遮罩层2向上)。然而,我需要能够动态地改变这些,在适当的遮罩层中放置新的渐变,在适当的图形层中放置新的平铺

我在谷歌上搜索了大约一个小时,试图找到一种方法来定义一个新的MovieClip放在哪一层上,但我找到的只是setChildIndex,因为有一层用作掩码,所以我不能使用它。Actionscript中是否有这样的功能,或者我是否要手工制作所有的瓷砖组合

谢谢你的帮助,
-Birjolaxew

尝试使用类似于此类的内容:

package
{
    import flash.display.Sprite;

    public class LayeredContainer extends Sprite
    {
        // vars
        private var _layers:Array = [];

        /**
         * Constructor
         */
        public function LayeredContainer()
        {
            createLayer("_fallback_");
        }

        /**
         * Defines the layers to use
         * @param ...layers A list of layers to add
         */
        public function createLayers(...layers):void
        {
            var i:String;
            for each(i in layers)
                createLayer(i);
        }

        /**
         * Creates a single layer, adding it to the top of the display list
         * @param id The layer id
         */
        public function createLayer(id:String):Sprite
        {
            var l:Sprite = new Sprite();
            _layers[id] = l;

            addChild(l);

            return l;
        }

        /**
         * Returns a layer based on id
         * @param id The layer to return
         */
        public function layer(id:String):Sprite
        {
            return _layers[id] || layer("_fallback_");
        }
    }
}
然后,您可以创建图层并添加如下内容:

var lc:LayeredContainer = new LayeredContainer();
lc.createLayers("tiles", "whatever", "mask");

addChild(lc);

lc.layer("tiles").addChild(_some_tile_you_made_);

谢谢你,非常有趣的方法。