无法更改AS3中形状的宽度和高度值

时间:2017-11-14 21:39:10

标签: actionscript-3 flash

这是我的实体课程。

package  {
    import flash.display.Shape;
    public class Entity extends Shape{
        public var color:int;
        public function 
        Entity(xA:Number,yA:Number,widthA:Number,heightA:Number,c:int) {
            this.x=xA;
            this.y=yA;
            this.width=widthA;
            this.height=heightA;
            color=c;
            graphics.beginFill(color);
            graphics.drawRect(x,y,width,height);
            graphics.endFill();
        }
    }
}

这是我的主要代码。

var rectangle:Entity = new Entity(10,10,100,100,0xFF0000);
addChild(rectangle);
trace(rectangle.x+" "+rectangle.y+" "+rectangle.width+" "+rectangle.height+" "+rectangle.color);

我期待的是widthA和heightA更改形状的宽度和高度,但是当我运行代码时,我得到了这个

10 10 0 0 16711680

从迹线开始,表示x和y位置正在变化但不是高度。这是为什么?

1 个答案:

答案 0 :(得分:2)

问题是您正在设置没有图形的显示对象的宽度和高度。由于该点的宽度和高度为零,因此您要求Flash将比例值设置为无穷大。空显示对象的宽度和高度不能为零。

试试这个:

        this.x=xA;
        this.y=yA;
        color=c;
        graphics.beginFill(color);
        graphics.drawRect(0,0,widthA,heightA); // I suspect you don't want x and y here.
        graphics.endFill();

将自动设置宽度和高度。