闪烁不透明度不影响子元素的不透明度

时间:2011-12-14 18:30:12

标签: flash actionscript-3

我正在尝试创建一种树形图,其中树的最新分支具有100%不透明度,并且树的每个重复分支的不透明度减少了75%。我将不透明度更改应用于每个分支包含的影片剪辑 - 实际的图形元素(全部使用Flash的graphics.line和graphics.shape命令绘制)作为子元素添加到此容器中。但是,更改容器的不透明度似乎不会影响其中包含的实际图形元素。我该如何做到这一点?以下是对正在发生的事情的概述:

嵌套订单:

var circle:Shape = new Shape();
var circleClip:MovieClip = new MovieClip();
var childHolder:MovieClip = new MovieClip();
var circleHolder:MovieClip = new MovieClip();
circleClip.addChild(circle);
circleHolder.addChildAt(circleClip,0);
circleHolder.addChildAt(childHolder,1);

点击circleHolder,我创建一个新分支,将其附加到子持有者,然后移动

it, drawing a line to wherever it moves to:
childHolder.addChild(newCircle);
newCircle.moveTo(x,y);

我现在要做的是减少父级的不透明度。我是通过这种方程式做到的:

private function fadeParents(circleHolderRef)
{
    var curCircleHolderRef = circleHolderRef;
    var curOpacity = 1;
    var circleDepth = circleHolderRef.depthFromStart;

    for (var i=0;i<circleDepth;i++)
    {
        var childHolderRef = curCircleHolderRef.parent;
        var parentCircleHolderRef = childHolderRef.parent;
        curOpacity = curOpacity * .75;
        trace (i + "| opacity: " + curOpacity);
        TweenMax.to(parentCircleHolderRef,.5,{opacity: curOpacity});
        curCircleHolderRef = parentCircleHolderRef;
    }

    //trace (circleHolderRef.depthFromStart)
}

但这没有效果。

1 个答案:

答案 0 :(得分:1)

您正在补间名为opacity的属性,这应该抛出错误,MovieClip透明度设置为alpha

 TweenMax.to(parentCircleHolderRef, .5, { alpha: curOpacity} );