【问题标题】:Does setting properties in AS3 prevent timeline tweens?在 AS3 中设置属性会阻止时间线补间吗?
【发布时间】:2010-11-01 22:07:40
【问题描述】:
如果我有一个分配了类的影片剪辑,并且我在代码中更改了该影片剪辑的属性,则似乎无法再对时间轴上的属性进行补间。
例如,如果我的班级设置 this.x = 100,然后在时间轴上对对象的位置进行补间,则不会发生时间轴补间。
更改 scaleX 或 scaleY 属性似乎也可以阻止时间线补间的发生。
有没有其他人经历过这种情况,如果有,有没有办法解决它?
【问题讨论】:
标签:
actionscript-3
timeline
tween
【解决方案1】:
你说得对。在舞台上更改 MC 的某些属性将导致 Flash 假定您将使用脚本定位它,并且补间将不再起作用。几种解决方法:
- Reparent 事物,以便您将脚本定位和 IDE 定位分开。也就是说,如果您在补间对象的 X 位置并使用脚本旋转它,请更改它以便补间容器剪辑的 X,并在内部旋转内部剪辑。
- 使用脚本进行所有定位 - 即使用 Tween 类或 tween 库。
- 如果播放头越过剪辑不在舞台上的帧,然后到它所在的帧,这将“重置”剪辑以使用 IDE 定位和补间。即使您使用
gotoAndPlay 跳过空框也是如此。例如,如果您使用脚本在第 10 帧上移动剪辑,然后在第 20 帧上执行gotoAndPlay(30);,那么如果您在第 20 帧和第 30 帧之间放置一个空白帧,则第 30 帧的补间将正常工作。
【解决方案2】:
如果我是你,我会严格遵守 as3 代码。
在你的动作脚本的顶部导入这些
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
然后像这样设置补间:
var myTween:Tween = new Tween(object, "property", EasingType, begin, end, duration, useSeconds);