Actionscript 3 为什么在构造函数中设置Sprite子类对象的宽度和高度会使其TextFieldRenders不显示?
请解释为什么只有在未设置宽度和高度时才会显示标签:Actionscript 3 为什么在构造函数中设置Sprite子类对象的宽度和高度会使其TextFieldRenders不显示?,actionscript-3,flash,actionscript,sprite,Actionscript 3,Flash,Actionscript,Sprite,请解释为什么只有在未设置宽度和高度时才会显示标签: package { import flash.display.Sprite; import flash.text.TextField; public class Screen extends Sprite { public function Screen() { super(); // width = 640;
package
{
import flash.display.Sprite;
import flash.text.TextField;
public class Screen extends Sprite
{
public function Screen()
{
super();
// width = 640;
// height = 480;
var lbl:TextField = new TextField();
lbl.textColor = 0xFFFFFF;
lbl.text = "This is a disclaimer.";
addChild(lbl);
}
}
}
如果我读对了这篇文章,我想我是对的,那就归结为一个基本的错误。您尚未在类或函数的作用域中的任何位置声明宽度和高度属性。因此,基本上发生的是,由于错误,代码在定义TextField之前就中止了 您似乎正在尝试设置精灵的宽度和高度。要做到这一点,线路需要
this.width = 640;
this.height = 480;
这是一个特殊的关键字,将AS3直接指向与其直接相关的对象。如果没有这个,AS3认为您只是在处理一些变量,并且您还没有在范围中声明任何这样的变量
不过,坦白地说,我很惊讶你没有收到错误消息。您使用的是哪种IDE?在ActionScript 3中,当您没有同名的局部变量时,这一点非常重要。是含蓄的。呃,对我来说并不总是含蓄的。隐式有时可能是不可靠的。一个很好的经验法则:如果你能写出来,一定要写出来。尽管如此,这可能确实不是问题所在,但这正是我所发现的。