我有一个由多个层组成的MovieClip,其中一个层是一个动画背景形状。让我们用实例名为“mcBackground”的背景形状来调用这个MyMovieClip;
我通过以下方式将ActionScript中的MovieClip添加到舞台:
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更改为动画形状吗?
如果描述不清楚,请告诉我,我会尝试解释更多。
发布于 2009-12-02 16:42:37
通常,应用于任何时间轴补间对象的actionscript都会中断补间。您可以尝试用另一个剪辑换行您的时间轴,并将colorTransform应用于该剪辑。
发布于 2015-01-08 21:13:17
当actionscript代码设置实例的任何显示方面(位置、缩放、旋转、alpha、颜色、滤镜等)时,由于时间轴上的关键帧所做的任何更改将不再应用于该实例。该实例的显示属性将‘冻结’到actionscript设置属性值的时刻(就时间轴而言),并且从那时起只能由actionscript更改。
此行为也适用于没有补间的时间轴/关键帧。
当actionscript对与变换/过滤器无关的实例执行某些操作时,不会发生此行为,并且时间轴将按预期执行。例如,设置DisplayObject.visible不会触发此行为。此外,更改TextField的文本不会触发此行为。
在实例的子实例上设置显示属性时不会触发行为,因此将实例包装在额外的电影剪辑中是一个很好的解决方法。
发布于 2010-01-09 02:14:04
还要感谢doamnaT (我还没有足够的代表支持)。我还发现,一般来说,将时间轴与主时间轴分离是一种很好的做法,它巧合地避免了这样的问题。通常我的主要时间线只有一帧。
https://stackoverflow.com/questions/1830486
复制相似问题