0

我有一个 TextField 和一个 Sprite y = -20;,它们都在正确的位置。

然后我做这个补间。

Tweener.addTween(t, {y: 20, time:0.5, transition:"linear"});
Tweener.addTween(noteBar, {y: 20, time:0.5, onComplete:Hold, transition:"linear"});

(t 是 TextField,noteBar 是 Sprite)

当我这样做时,Sprite 变为 y = 0; 但 TextField 变为 y = 20;

如果我的 TextField y 为 0,Sprite y 为 20,它可以正常工作。

但是我需要这样做才能让他们回到原来的位置。

Tweener.addTween(t, {y: -20, time:0.5, transition:"linear"});
Tweener.addTween(noteBar, {y: 0, time:0.5, transition:"linear"});

因为如果我让 Sprite 变为 -20,那么它将以 y = -40 结束;

为什么它会这样?

4

1 回答 1

1

当您说“两者都在 y=-20”时,您是否使用 Flash 中的信息调色板来确定这一点?

我问是因为信息面板有两种显示 x,y 的模式:注册和转换。这可以通过单击信息面板中 X 字段左侧的小注册点图标来切换。

问题是在转换模式下,显示的 x,y 将是文本字段的 CENTER,但实际上,文本字段的 x,y 是左上角。

因此,简短的回答是确保信息面板处于注册模式(带有十字线的图标),然后将文本字段设置为 -20。

另一种解决方案是将 TextField 包装在 sprite 中,使其行为方式与 NoteBar 相同,在这种情况下,信息面板处于何种模式并不重要。

当然,如果您是在代码中完成这一切,而不是在 Flash 中定位项目,那么我的解决方案是没有实际意义的。

-加布里埃尔

于 2010-08-10T21:33:28.210 回答