我正在尝试使用colorTransform更改多个显示对象的颜色,但无法使其正常工作 -
private function getChildren(mc:DisplayObjectContainer):Array {
var children:Array = [];
for (var i:int = 0; i < mc.numChildren; i++) {
var child:DisplayObject = mc.getChildAt(i);
if(child.name == "color1"){
children.push(child);
} else if(child.name == "color2"){
children.push(child);
}
if (child is DisplayObjectContainer) {
var childChildren:Array = getChildren((child as DisplayObjectContainer));
children = children.concat(childChildren);
}
}
return children;
}
并在我的输入阶段活动中:
var mychildren:Array = getChildren(this.spartan);
for each(var child:DisplayObject in mychildren) {
if(child.name == "color1"){
child.transform.colorTransform = _colorTransform1;
}
trace(child.name);
我已将颜色声明为_colorTransform1.color = 0xCCFF00
我的角色由几个动画片段组成,这些动画片段目前是color1:red或color2:green的实例。作为一个新的程序员,我想知道我是否应该继续使用另一种方法?
trace(child.name)
if(child.name == "color1"){
trace("found color!")
}
答案 0 :(得分:1)
好吧,我现在觉得有点愚蠢,因为答案很明显...... 在尝试更改动画片段的颜色时,我忘记了动画片段本身尚未加载。要解决这个问题,我所要做的就是在改变颜色之前调用movieclip框架。