Я пытаюсь создать своего рода диаграмму дерева, в которой самая последняя ветвь дерева имеет непрозрачность 100%, а каждая повторяющаяся ветвь дерева имеет свою непрозрачность, уменьшенную на 75%.Я применяю изменение непрозрачности к каждому фрагменту ролика, содержащему каждую ветвь - фактические графические элементы (все они нарисованы с помощью команд Flash's 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);
При щелчке по кольцу круга, я создаю новую ветку, прикрепляю ее к дочернему держателю и перемещаю
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)
}
, но это не имеет никакого эффекта.