AS3:在同一MovieClip的多个实例上更改TextField Text

时间:2014-09-08 14:48:59

标签: actionscript-3 flash

我在库中有一个名为“number”MovieClip。我需要将该MovieClip的多个实例添加到舞台上。应该将实例称为number1number2number3 ...并且每个实例都需要在其中包含不同的文本。

是否可以在没有代码的情况下执行此操作,只需使用Flash界面工具?如果没有,有人可以帮我编码吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

对于包含名为MyNumber的文本字段的<{1}}类:

output

答案 1 :(得分:1)

你必须使用代码 - 至少一点点。

除了 @helloflash 的答案之外,这里还有一个更简单的解决方案(下面将介绍一些注意事项)。

在您的movieClip上,让您的文本框动态化,并为其指定实例名称txt(或您喜欢的任何内容)。然后,将以下代码行放在movieClips的时间轴的第一帧:

txt.text = this.name;  //works if your text is a simple word with no spaces/puntuaction/symbols and doesn't match any actionscript keywords

这会将文本设置为每个movieClip的实例名称。如果你的文字是简单的像#34; Hello&#34;或&#34; Player1&#34;。


现在,如果您的文字是一个数字(或以一个开头),或者您的文字与关键字或已定义的变量匹配(如此/ continue / function / break / stop / play等),那么您&# 39;我需要让它更复杂一点,如下:

txt.text = this.name.replace("$MC_","");

然后以这种格式提供您的实例名称: $ MC_stop ,代码将删除$MC_部分并显示其余部分。所以文本字段将是&#34;停止&#34;。


现在,如果您想要包含空格或大多数符号(美元符号,下划线和短划线,我认为是唯一受支持的符号),您必须为每个符号添加替换并为其创建占位符那个角色。

因此,如果你的文字是&#34; 这是我的文字&#34;,你应该给它一个实例名称`this_is_my_text&#34;这应该是代码:

txt.text = this.name.replace("_"," "); //replace all underscores with space

为所需的字符添加尽可能多的替换语句。

所以,如果你发短信是&#34; 1。这是我的文字!!! &#34; - 实例名称可以是:$MC_1$dot_This_is_my_text$ex$ex$ex和代码:

txt.text = this.name.replace("$MC_","").replace("_"," ").replace("$dot",".").replace("$ex","!"); //you can keep chaining on as many replace statements as you need.

当然,在这一点上你也可以使用像@ helloflash的答案那样完整的代码。但是如果你的文字并不那么复杂,那对你来说这可能是一个很好的解决方案。