为什么在其构造函数中设置Sprite子类的对象的宽度和高度会使其TextFieldRenderers不显示?

时间:2014-01-13 01:04:19

标签: 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;
            // height = 480;

            var lbl:TextField = new TextField();
            lbl.textColor = 0xFFFFFF;
            lbl.text = "This is a disclaimer.";
            addChild(lbl);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

如果我正在读这个,我认为我是正确的,那就是一个基本错误。您没有在范围内(在类或函数内)声明宽度和高度属性。因此,基本上发生的是,由于错误,代码在定义TextField之前就会中止。

您似乎正在尝试设置Sprite的宽度和高度。要做到这一点,行必须是......

this.width = 640;
this.height = 480;

this是一个特殊关键字,它将AS3直接指向与此直接相关的对象。没有this,AS3认为你只是在处理一些变量,并且你没有在范围内声明任何这样的变量。

然而,坦率地说,我很惊讶你没有收到错误信息。你在用什么IDE?