AS3:更改MovieClip中的TextField

时间:2017-03-03 20:40:21

标签: actionscript-3 flash actionscript

我想制作一个带有TextField的按钮,如果您愿意,可以使用AS3更改标签。

我意识到我不能用SimpleButton做到这一点,但是通过使用MovieClip的时间轴并来回导航,我设法改变了按钮的功能。当它悬停并点击时纹理。我确实在时间轴的每一帧中的按钮顶部制作了三个TextFields,但我无法找到永久更改TextField的方法。

btn是MovieClip,l1是第1帧的TextField。

btn.l1.text = "label"

一直工作,直到我触摸按钮(它改变了时间轴上的MovieClip框架),当它返回到第1帧时,它的标签又回到了零。

我基本上需要知道的是;如何永久更改正在更改帧的MovieClip中的TextField?

2 个答案:

答案 0 :(得分:2)

如果您的文本字段在其时间轴图层上只有1个关键帧,则在更改帧时将保留文本值。但任何关键帧都将重新创建文本字段,并在到达该帧时重置文本。如果您使用关键帧更改文本颜色或过滤器,则可以将文本字段放在MovieClip中,并在MovieClip上使用带有颜色色调的关键帧(只要每个关键帧对MovieClip使用相同的实例名称)将重新创建)。因此,您可以使用以下内容更改文本:

btn.labelMC.textField.text = "label";

如果您正在使用关键帧更改文本字体或样式(MovieClip无法执行的任何操作),那么唯一的方法是在每次更改帧后重置.text

btn.gotoAndStop(2);
btn.l1.text = "label";

您可以使用可重复使用的类来隔离此问题。

答案 1 :(得分:1)

你的三帧是不同还是相同?如果它们不同,请确保更改每个按钮的文本字段的文本,因为不同的帧将具有全新的对象。