0

这可能看起来有点模糊/令人困惑,但我希望你能明白。

我正在从 XML 填充数组。这些数组内部有动态文本字段,这些文本字段是影片剪辑的子项。

我对这个movieclip 进行补间,因此使textFields 数组在舞台上一个接一个地进行动画处理。XML 有两种来源,一种来自实际站点,另一种来自存储在硬盘中的 XML。首先我填充文本字段数组,然后为影片剪辑设置动画。我对第一个执行此操作,然后对其进行动画处理,对第二个执行此操作,对其进行动画处理,对第一个执行此操作,对其进行动画处理,依此类推。

myTween = new Tween(mc,"x",None.easeNone,sizeOfStage,0 - mc.width,mcSpeedAuto,true);

我的补间结束于0 - mc.width,问题是,如果我首先补间“更大”的 XML,当下一个较小的 XML 补间时,在它再次补间大的之前有大量的空白空间(补间空格?)。

myTween.addEventListener(TweenEvent.MOTION_FINISH, onFinish);

onFinish我清除了所有数组(否则第二个的补间仍然会有第一个的信息,例如:第一个有 25 个字段,第二个有 10 个,第一个显示它是 25 个字段,第二个显示 10 个,而剩下的 15 个来自第一个)并在第二个调用补间。我认为这样做我也会清除所有的空白,显然不是。我认为mc.width只是保持“更大”的价值,并且总是与它相辅相成,在第二种情况下需要更长的时间才能结束。我尝试将 mc.width 设置为每次填充数组时文本字段宽度的总和,但这也不起作用,所以我不太确定问题出在哪里:/

这太混乱了吗?有任何想法吗?

提前致谢。

4

1 回答 1

1

注意:使用默认as3Tween类是bunk。我这么说是因为很多时候补间会在它完成动画GC 之前被收集到(这听起来像是你的“空白”来自哪里)。

我建议一个新的补间。有很多关于哪种补间最适合性能的讨论,但是当我的补间相当小(例如您的示例)时,我个人倾向于轻松。

良好的替换补间:

最后两个基于相同的引擎。有人说 Tweener 的性能规模很低,但我更喜欢它的独创性和易用性。做出明智的选择!

** 编辑 - 使用 Caurina Tweener 的示例 **

import caurina.transitions.Tweener;

/* tweens "myClip" from it's current alpha to alpha=1.0 in 250ms (1/4
second) using the "linear" functionality */ Tweener.addTween(myClip,
{alpha:1.0, time:0.25, transition:"linear"});

/* tweens "otherClip" from it's current x position to x=100 in 500ms
(1/2 second) using the "easeOutCirc" functionality */
Tweener.addTween(otherClip, {x:100, time:0.5,
transition:"easeOutCirc"});

此外,这里是补间的过渡类型列表(单击补间查看它的动画图播放)

于 2011-08-19T15:11:27.123 回答