这是我的实体课程。
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位置正在变化但不是高度。这是为什么?
答案 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();
将自动设置宽度和高度。