AS3类扩展精灵

时间:2010-03-05 14:05:04

标签: actionscript-3 actionscript

我是ActionScript新手,请原谅我这是一个愚蠢的问题。

所以,我创建了一个类,扩展了sprite类,现在在构造函数中我试图设置从DisplayObject继承的Sprite的width和height属性。但是,在我设置this.width和this.height并打印值之后,我得到0。

到底发生了什么事?当我查看livedocs时,我看到DisplayObject的宽度和高度被列为公共属性。我已经能够直接实例化一个Sprite,并在实例化之后设置宽度和高度,所以我没有得到它。

package  {
    import flash.display.*;

    public class ScrollBar extends Sprite {
        public function ScrollBar(width:Number, height:Number) {
            trace(width + "x" + height);
            this.width = width;
            this.height = height;
            trace(this.width + "x" + this.height);          
    }
}

输出:

20x400
0x0

1 个答案:

答案 0 :(得分:5)

来自docs

  

根据宽度计算   显示内容的界限   宾语。设置宽度时   属性,scaleX属性是   相应调整......除外   TextField和Video对象,一个显示   没有内容的对象(例如   空精灵)的宽度为0,偶数   如果您尝试将宽度设置为不同的宽度   值。

你需要渲染一些东西作为精灵的一部分来获得有效的w / h。