修改显示对象颜色

时间:2016-06-06 08:39:34

标签: actionscript-3 colors actionscript

我正在尝试使用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!")
            }

1 个答案:

答案 0 :(得分:1)

好吧,我现在觉得有点愚蠢,因为答案很明显...... 在尝试更改动画片段的颜色时,我忘记了动画片段本身尚未加载。要解决这个问题,我所要做的就是在改变颜色之前调用movieclip框架。