我在使该代码正常工作时遇到一些问题。我想更改按钮内文本字段上的文本。它有效,但仅适用于 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);
最佳答案
您的问题是您的代码仅更改按钮弹起状态的文本。其他州不受影响。
您只需复制并粘贴代码即可对结束和关闭状态进行相同的更改 - 在现有代码之后添加此代码即可实现此目的:
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 作为按钮工作会更加简洁。如果您需要帮助学习这些内容,请创建一个新问题。
关于actionscript-3 - 更改 as3 中按钮内的动态文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11550854/