通过ActionScript更新Flash文本



我想在比赛的下角得分。我制作了一个名为Score的新层,拖出一个文本区域,将其转换为符号并命名为Score。然后我将其实例名称设置为Score

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

1046:找不到类型或该类型不是编译时常数:Score。

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

编辑:忘了提一下,当我将"导出ActionScript"框转换为符号时,我点击了它。如果这很重要的话,它是MovieClip类型的。

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

  • 出现此错误是因为类和instace使用了相同的名称
  • 你应该检查一下它们并使用不同的名称
  • 我通常以_mc结尾命名实例

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

层名称没有区别。您需要设置动态文本字段的实例名称,而不是包含该字段的剪辑。也不需要将其转换为MovieClip。在你的后台创建文本字段,确保它不是静态的,给它一个实例名,你可以用来访问它

例如,我使我的文本字段名称scoreText_txt

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

如果你想把你的文本文件放在电影剪辑中,你需要给剪辑和你的文本字段一个名字。然后您可以使用访问它。

MyMovieClip.MyText.text="new text"

除非您打算为文本字段创建额外的逻辑(因为它将有自己的类)或希望将其动态添加到阶段(通过addChild()),否则不要导出ActionScript。

实例名称为Score时,尝试一下:

Score.text = "822";

我建议使用小写的实例名称来区别于用于类的CamelCase。对于更有经验的开发人员来说,以上内容将被解读为更新类Score内的static属性text

最新更新