通过ActionScript更新Flash文本

时间:2012-03-29 02:02:17

标签: actionscript-3 actionscript textarea

我希望在游戏的底角有一个分数。我创建了一个名为Score的新图层,拖出了一个文本区域,将其转换为符号并将其命名为Score。然后我将其实例名称设置为Score

我的Flash游戏的主要类别称为Main.as。但是,我似乎无法访问我在代码中创建的Score文本区域。我收到这个错误:

  

1046:未找到类型或不是编译时常量:得分。

我错过了什么?如何更新代码中的文本区域文本?

编辑:忘记提及我在将其转换为符号时单击“导出为ActionScript”框。如果重要的话,它就是MovieClip类型。

3 个答案:

答案 0 :(得分:2)

导出ActionScript 3的符号时,Flash会为其创建一个具有给定名称的类(与您在类定义和实例中使用的名称相同)。

  • 您收到此错误是因为您在课程和实例中使用相同的名称。
  • 您应该检查它们并使用不同的名称。
  • 我通常将我的实例命名为_mc

e.g。在您的情况下,您应该使用Score作为类,并将实例命名为score_mc(或仅使用小写S命名score

答案 1 :(得分:0)

图层名称没有区别。您需要设置动态文本字段的实例名称,而不是包含它的剪辑。也无需将其转换为MovieClip。在舞台上创建文本字段,确保它不是静态的,为其指定可用于访问它的实例名称。

示例,我将文本字段命名为scoreText_txt

//inside main.as
scoreText_txt.text="new text";

如果要将文本归档到MovieClip中,则需要为剪辑和文本字段指定名称。然后,您将使用。

访问它
MyMovieClip.MyText.text="new text"

答案 2 :(得分:0)

除非您打算为文本字段创建其他逻辑(因为它将拥有自己的类)或者想要动态地将其添加到舞台(通过addChild()),否则不要导出ActionScript。

如果实例名称为Score,请执行以下操作:

Score.text = "822";

我建议使用小写实例名称来区分用于类的CamelCase。以上内容会向更有经验的开发人员宣读更新班级static中的text属性Score