import flash.display.Sprite;
var bin:Sprite = new Sprite();
var cir:Sprite = new Sprite();
cir.graphics.beginFill(0x00ff00,1);
cir.graphics.drawCircle(0,0,30);
cir.graphics.endFill();
bin.graphics.beginFill(0xff0000,1);
bin.graphics.drawRoundRect(40,40,100,100,5,5);
bin.graphics.endFill();
addChild(bin);
bin.addChild(cir);
//为什么在方框外添加圆圈?
答案 0 :(得分:2)
因为你添加了一个x:40 / y:40的矩形,但你的圆圈是x:0 / y:0
var bin:Sprite = new Sprite();
var cir:Sprite = new Sprite();
cir.graphics.beginFill(0x00ff00,1);
cir.graphics.drawCircle(40,40,30);
cir.graphics.endFill();
bin.graphics.beginFill(0xff0000,1);
bin.graphics.drawRoundRect(40,40,100,100,5,5);
bin.graphics.endFill();
addChild(bin);
bin.addChild(cir);
工作正常
答案 1 :(得分:2)
它被添加到框外的原因是drawRoundRect仍然在舞台上创建0,0精灵,但直到40,40才开始填充。您可以通过追踪bin x和y属性来查看它们,看它们是从0,0和width and height属性开始看到它们都是100而不是60.你可能会更好地从0绘制所有对象, 0,然后只需调整父DisplayObject,如下所示:
import flash.display.Sprite;
var bin:Sprite = new Sprite();
var cir:Sprite = new Sprite();
bin.graphics.beginFill(0xff0000,1);
bin.graphics.drawRoundRect(0,0,60,60,5,5);
bin.graphics.endFill();
cir.graphics.beginFill(0x00ff00,1);
cir.graphics.drawCircle(0,0,30);
cir.graphics.endFill();
addChild(bin);
bin.addChild(cir);
bin.x = bin.y = 40; //move the parent object, all child objects will move with it
答案 2 :(得分:1)
看看你的绘画作品:
drawCircle(x, y, radius)
drawRoundRect(x, y, width, height...)
因此,圆的中心位于0,0点,半径为30px,矩形从40,40开始,因此它比圆形末端开始得更远。 你应该尝试:
drawCircle(90, 90, radius)
drawRoundRect(40, 40, 100, 100...)
在矩形中间有一个圆圈。