AS3中的设置属性是否会阻止时间轴补间?

时间:2009-06-10 18:38:02

标签: actionscript-3 timeline tween

如果我有一个分配了类的动画片段并且我在代码中更改了该动画片段的属性,则似乎该属性不能再在时间轴上进行补间。

例如,如果我的类设置this.x = 100,稍后在时间轴上设置对象的位置,则不会发生该时间轴补间。

更改scaleX或scaleY属性似乎也会阻止时间轴补间发生。

有没有其他人经历过这种情况,如果是这样,有没有办法实现呢?

2 个答案:

答案 0 :(得分:3)

你做得对。更改舞台上MC的某些属性将导致Flash假定您将使用脚本定位它,并且补间将不再起作用。几个解决方法:

  1. 重新显示事物,以便您分离脚本和IDE定位。也就是说,如果您正在补间对象的X位置并使用脚本旋转它,请更改它以便补间容器剪辑的X,并在内部旋转内部剪辑。
  2. 使用脚本完成所有定位 - 即使用Tween类或补间库。
  3. 如果播放头经过剪辑不在舞台上的帧,然后到达帧所在的帧,则会“重置”剪辑以使用IDE定位和补间。即使您使用gotoAndPlay跳过空框架也是如此。因此,例如,如果您使用脚本在第10帧上移动剪辑,然后在第20帧上移动gotoAndPlay(30);,那么如果您在第20帧和第30帧之间放置一个空白帧,则第30帧处的补间将正常工作

答案 1 :(得分:0)

如果我是你,我会严格遵守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);