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