我在使代码正常工作时遇到一些问题。我想更改按钮内文本字段上的文本。它可以工作,但仅适用于upState。只要我悬停或单击按钮,它就会更改回原始名称。有什么办法可以将它定义为anyState吗?
var doc:DisplayObjectContainer = m1.upState as DisplayObjectContainer;
var tf:TextField = doc.getChildAt(1) as TextField;
var boldText:TextFormat = new TextFormat();
boldText.bold = true;
tf.text = "Sterno Cleido Mastoid";
tf.setTextFormat(boldText);
答案 0 :(得分:2)
您的问题是您的代码只是更改了按钮状态的文本。其他州不受影响。
您只需复制并粘贴代码即可对上下状态执行相同的更改 - 在现有代码执行此操作后添加此代码:
doc = m1.overState as DisplayObjectContainer;
tf = doc.getChildAt(1) as TextField;
tf.text = "Neck";
tf.setTextFormat(boldText);
doc = m1.downState as DisplayObjectContainer;
tf = doc.getChildAt(1) as TextField;
tf.text = "Neck";
tf.setTextFormat(boldText);
这对于为按钮编写简单的文本更改是一种尴尬的方式。创建自定义按钮类,甚至使movieClip作为按钮工作会更加清晰。如果您在学习其中任何一项方面需要帮助,请创建一个新问题。
答案 1 :(得分:0)
我会将文本字段放在按钮顶部的自己的图层上,因此无论按钮状态如何,它都始终具有相同的文本。
或者,您可以将该代码复制并粘贴到每个按钮状态,然后更改代码以反映当前状态。 (第一种解决方案更快/更容易)