Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 Flash AS3动态文本不断给出错误1119_Actionscript 3_Flash_Dynamic Text - Fatal编程技术网

Actionscript 3 Flash AS3动态文本不断给出错误1119

Actionscript 3 Flash AS3动态文本不断给出错误1119,actionscript-3,flash,dynamic-text,Actionscript 3,Flash,Dynamic Text,So我有一个方法,它接收一个字符串,然后假设将按钮上的动态文本框设置为所述字符串 public function setText(caption:String) { this.btext.text = caption; } 我真的不明白为什么这个方法会产生1119错误。 通过引用静态类型按钮访问可能未定义的属性btext。as 动态文本框的实例名是btext,我尝试删除该文本框并创建一个新的文本框,但这仍然会产生1119错误。我还读到另一个堆栈问题,尝试这个['btext'].text=c

So我有一个方法,它接收一个字符串,然后假设将按钮上的动态文本框设置为所述字符串

public function setText(caption:String) {
  this.btext.text = caption;
}
我真的不明白为什么这个方法会产生1119错误。
通过引用静态类型按钮访问可能未定义的属性btext。as

动态文本框的实例名是
btext
,我尝试删除该文本框并创建一个新的文本框,但这仍然会产生1119错误。我还读到另一个堆栈问题,尝试
这个['btext'].text=caption这给了我很多运行时错误

基本上我做错了什么?
谢谢你的帮助

编辑 这是我正在使用的代码,我创建了button的一个实例,将其添加到stage中,并使用此代码将其存储在一个数组中

创建按钮的代码 Button.as
我认为变量btext根本不存在,或者它是从Movieclip继承的?

正如您所说的,btext是对象的实例名。这里我假设btext是您在库中创建的对象。
在你们班上,你们做错了两件事。因此,让我们检查一下您的方法。

public function setText(caption:String) {
  this.btext.text = caption;
}
第一个错误是你用的是“this”。“this”是对您所在类的当前实例的引用。你是说btext是上述实例的一个属性。我假设这不是因为您在库中将btext定义为对象。这将为您提供获取的属性为未定义错误。

现在,第二个问题是你将要问“好的,那么我如何在课堂上引用btext呢?”。您需要知道的是,只有添加到显示列表(即:stage)的对象才能通过stage访问对象。
您可以通过三种方式完成此操作。
第一种方法是将对按钮的引用传递到类中,并将其存储为类的属性。
第二种方法是将类添加到stage,并在类中侦听addedStatage事件。此时,您可以访问该对象。

MovieClip(root)["btext"].text

前两种方法不是很好的实践,因为btext不是类的一部分,一般的经验法则是封装类。
要使此工作正常,您可以让您的类将值指定给类中的属性,然后触发一个事件并使该类的父级侦听该事件,然后只需获取值并进行赋值。


如果您不使用“this”会发生什么?您在哪里声明和初始化“btext”?我尝试过不使用“this”并得到相同的结果。我想如果你在Flash中创建了文本框,并给它一个实例名,你不必声明或初始化它?如果是这样的话,您是否介意发布代码来执行此操作?我假设您有一个名为Button的类,并且btext是此类的一个实例,其创建方式类似于“btext:Button=new Button;”。但是我现在意识到上面的函数可能在Button类中。。。可以发布完整的类吗?因为问题可能不在此函数范围内。btext是我在Dynamic Textfield中给出的实例名称。
public function setText(caption:String) {
  this.btext.text = caption;
}
MovieClip(root)["btext"].text