我有一个由多个图层组成的MovieClip,其中一个图层是动画背景图形。让我们称这个MyMovieClip为背景形状,实例名称为“mcBackground”;
我正在通过以下方法将MovieClip添加到ActionScript的舞台上:
var myMovieClip = new MyMovieClip();
addChild(myMovieClip);
这很好用,当影片剪辑添加到舞台时,它会按预期播放(背景正在移动)。
问题是当我尝试将colorTransform应用于背景形状时,它会停止移动。我正在做的是在MyMovieClip类中:
var ct:ColorTransform = mcBackground.transform.colorTransform;
ct.color = some color value;
mcBackground.transform.colorTransform = ct;
当我这样做时,背景颜色正确,但它不再动画,它似乎停留在第1帧,尽管显示了我在后面的帧中执行的任何代码。所以它看起来像一个显示问题。
这里有什么问题?是否可以将transform.colorTransform更改为动画形状?
如果描述不清楚,请告诉我,我会尝试解释更多。
答案 0 :(得分:2)
通常,应用于任何时间轴补间对象的动作脚本都会破坏补间。 您可以尝试使用另一个剪辑包装时间轴,并将colorTransform应用于该剪辑。
答案 1 :(得分:1)
当您的动作脚本代码设置实例的任何显示方面(位置,缩放,旋转,Alpha,颜色,过滤器等)时,由于时间轴上的关键帧而导致的任何更改都不会应用于实例了。该实例的显示属性将被冻结' (就时间轴而言)是动作脚本设置属性值的那一刻,并且只能从那时起动作脚本改变。
此行为也适用于没有补间的时间轴/关键帧。
当actionscript对不转换/过滤器相关的实例执行某些操作时,不会发生此行为,并且按预期执行时间轴。例如,设置DisplayObject.visible不会触发此行为。此外,更改TextField的文本不会触发该行为。
在实例的子级上设置display属性时不会触发该行为,因此将实例包装在额外的movieclip中是一个很好的解决方法。
答案 2 :(得分:0)
还要感谢doamnaT(我还没有足够的代表进行upvote)。我还发现,一般来说,与主时间轴分离的时间表是一种良好的做法,巧合地避免了这样的问题。通常我的主时间轴只有一帧。