在 AS3 中设置属性是否会阻止时间线补间?

发布于 2024-07-23 10:43:36 字数 206 浏览 5 评论 0原文

如果我有一个分配有类的影片剪辑,并且我在代码中更改了该影片剪辑的属性,则该属性似乎无法再在时间轴上进行补间。

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

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

有其他人经历过这种情况吗?如果是的话,有没有办法解决?

If I have a movieclip that has a class assigned to it and I change a property of that movieclip in code, it seems that the property can no longer be tweened on the timeline.

For example, if my class sets this.x = 100, and later on the timeline I tween the position of the object, that timeline tween will not occur.

Changing either scaleX or scaleY property also seems to stop timeline tweens from happening.

Has anyone else experienced this, and if so, is there a way around it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

〆一缕阳光ご 2024-07-30 10:43:36

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

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

You have it right. Changing certain properties of an MC on the stage will cause Flash to assume that you are going to position it with script, and tweens will no longer work. A couple of workarounds:

  1. Reparent things so that you separate scripted and IDE positioning. That is, if you were tweening an object's X position and also rotating it with script, change it so that you tween the X of a container clip, and rotate an inner clip inside.
  2. Do all your positioning with script - i.e. use the Tween class, or a tween library.
  3. If the playhead goes past a frame where the clip is not on the stage, and then to a frame where it is, this will "reset" the clip to work with IDE positioning and tweens. This is true even if you jump past the empty frame with gotoAndPlay. So for example, if you use script to move the clip on frame 10, and then on frame 20 you do gotoAndPlay(30);, then a tween at frame 30 will work correctly if you put a blank frame somewhere between frames 20 and 30.
缱绻入梦 2024-07-30 10:43:36

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

I would stick strictly to the as3 code if I were you.

import these at the top of your actionscript

import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;

and then set your tween like this:

var myTween:Tween = new Tween(object, "property", EasingType, begin, end, duration, useSeconds);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文