Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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 为什么在构造函数中设置Sprite子类对象的宽度和高度会使其TextFieldRenders不显示?_Actionscript 3_Flash_Actionscript_Sprite - Fatal编程技术网

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中,当您没有同名的局部变量时,这一点非常重要。是含蓄的。呃,对我来说并不总是含蓄的。隐式有时可能是不可靠的。一个很好的经验法则:如果你能写出来,一定要写出来。尽管如此,这可能确实不是问题所在,但这正是我所发现的。