我想制作一个带有TextField的按钮,如果您愿意,可以使用AS3更改标签。
我意识到我不能用SimpleButton做到这一点,但是通过使用MovieClip的时间轴并来回导航,我设法改变了按钮的功能。当它悬停并点击时纹理。我确实在时间轴的每一帧中的按钮顶部制作了三个TextFields,但我无法找到永久更改TextField的方法。
btn是MovieClip,l1是第1帧的TextField。
btn.l1.text = "label"
一直工作,直到我触摸按钮(它改变了时间轴上的MovieClip框架),当它返回到第1帧时,它的标签又回到了零。
我基本上需要知道的是;如何永久更改正在更改帧的MovieClip中的TextField?
答案 0 :(得分:2)
如果您的文本字段在其时间轴图层上只有1个关键帧,则在更改帧时将保留文本值。但任何关键帧都将重新创建文本字段,并在到达该帧时重置文本。如果您使用关键帧更改文本颜色或过滤器,则可以将文本字段放在MovieClip中,并在MovieClip上使用带有颜色色调的关键帧(只要每个关键帧对MovieClip使用相同的实例名称)将不重新创建)。因此,您可以使用以下内容更改文本:
btn.labelMC.textField.text = "label";
如果您正在使用关键帧更改文本字体或样式(MovieClip无法执行的任何操作),那么唯一的方法是在每次更改帧后重置.text
:
btn.gotoAndStop(2);
btn.l1.text = "label";
您可以使用可重复使用的类来隔离此问题。
答案 1 :(得分:1)
你的三帧是不同还是相同?如果它们不同,请确保更改每个按钮的文本字段的文本,因为不同的帧将具有全新的对象。