Actionscript 3 更改as3中按钮内部的动态文本字段

Actionscript 3 更改as3中按钮内部的动态文本字段,actionscript-3,flash,button,Actionscript 3,Flash,Button,我在使此代码正常工作时遇到一些问题。我想更改按钮内文本字段上的文本。这是可行的,但只适用于北部地区。我一悬停或单击按钮,它就会变回原来的名称。有没有办法把它定义为任何州 var doc:DisplayObjectContainer = m1.upState as DisplayObjectContainer; var tf:TextField = doc.getChildAt(1) as TextField; var boldText:TextFormat = new TextFormat()

我在使此代码正常工作时遇到一些问题。我想更改按钮内文本字段上的文本。这是可行的,但只适用于北部地区。我一悬停或单击按钮,它就会变回原来的名称。有没有办法把它定义为任何州

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);
例如:

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


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

您的问题是,您的代码只是在更改按钮向上状态的文本。其他州仍然不受影响

您可以简单地复制并粘贴代码,以对over和down状态进行相同的更改-在现有代码之后添加此代码将完成以下操作:

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);

不过,这是一种为按钮编写简单文本更改代码的笨拙方式。创建一个定制的button类,或者甚至将movieClip作为一个按钮来使用,都会更加简洁。如果您需要帮助学习这些内容,请创建一个新问题。

如果您要在时间线上创建Flash中的按钮,请尝试将文本字段放在它自己的图层上,在不同的按钮状态中没有关键帧。发布您的fla文件以获得更好的帮助。我实际上要做的是在for循环中更改所有按钮文本。我有一个不同语言的xml文件,我将通过JS告诉flash使用哪种语言。所以它不仅仅是一个按钮,而是15个左右。例如,每个按钮都有一个非常特定的点击框(一个奇怪的形状),我被告知movieclips不支持这个。似乎我需要为每个州复制粘贴代码..复制粘贴的效果很好。因为我使用的是for循环,所以没有那么多代码:)谢谢