在as3中更改按钮内的动态文本字段

时间:2012-07-18 21:47:02

标签: actionscript-3 flash button

我在使代码正常工作时遇到一些问题。我想更改按钮内文本字段上的文本。它可以工作,但仅适用于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);

实施例: http://www.testdummies.dk/dynamictext.fla

2 个答案:

答案 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)

我会将文本字段放在按钮顶部的自己的图层上,因此无论按钮状态如何,它都始终具有相同的文本。

或者,您可以将该代码复制并粘贴到每个按钮状态,然后更改代码以反映当前状态。 (第一种解决方案更快/更容易)