Flash AS3: 引用错误:错误#1056:无法创建属性

17

我正在使用Flash/AS3编写代码,遇到了以下问题:

ReferenceError: Error #1056: Cannot create property txtInput on package.name.DocumentClasss

我的代码中有一个文档类,我可以创建影片剪辑的实例并编译,没有问题。但是当我在舞台上放置一个输入文本字段(调色板中的“T”图标)时,它拒绝编译,并出现上述错误。

我不确定这是否有所不同,但我是在FlashDevelop中编写ActionScript代码,然后在Flash IDE中进行编译。我还在 Publish Settings -> Flash -> Script -> Settings... -> Errors 下选择了Strict ModeWarnings Mode

我在网上搜索了解决方案,唯一的建议似乎是不要在Flash IDE中插入文本字段,而是在文档类中动态创建它们。

是否有更好的解决方案?

谢谢!


请发布堆栈跟踪和抛出错误的行(以及一些上下文)的代码行。 - Ryan Lynch
1个回答

28

看起来你未勾选“自动声明场景实例”,因此如果你想要添加命名的实例,你需要在你的类中声明它。

import flash.text.TextField;
...
public var txtInput:TextField;
...

你可以在电影属性的 Flash 选项卡中找到“声明阶段实例”设置,并在 Script: ActionScript 3 下拉菜单旁边点击“设置”。

个人而言,我总是取消这个选项,这样可以强制在类中声明实例,并更好地跟踪发生了什么。


谢谢!你说得对,我确实没有勾选声明舞台实例,这正是我想要的行为。我的错误在于我将文本字段声明为 flash.text.TextField 而不是 TextInput。我感到困惑的原因是它给了我一个引用错误而不是类型错误。 - bguiz
“自动声明舞台实例”选项在哪里找到? - Leon Gaban
2
如果您前往发布设置,选择“Flash”选项卡,您应该会看到一个显示“ActionScript 3”的下拉框旁边有一个“设置”按钮。在这个窗口中,您可以取消勾选“自动声明阶段实例”。 - Les

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接