2011-05-09 65 views
0
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); 

//這裏爲什麼在圓形方塊外面添加圓圈?addChild中的Actionscript問題

回答

1

看:

drawCircle(x, y, radius) 
drawRoundRect(x, y, width, height...) 

所以圓的中心位於0,0點,半徑爲30px,長方形從40,40開始,所以它的起始點比圓的兩端更遠。 OU cound而嘗試:

drawCircle(90, 90, radius) 
drawRoundRect(40, 40, 100, 100...) 

有在矩形中間的圓。

2

因爲你把你的矩形斧: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); 

你平局fnctions做工精細

+0

但我在「bin」精靈中添加了「cir」精靈。沒關係。 讓我知道,什麼是應用x,y pos內外的差異b/w? bin.graphics.drawRoundRect(40,40,100,100,5,5); // bin.graphics.drawRoundRect(0,0,100,100,5,5); bin.x = bin.y = 40; – Benny 2011-05-10 05:03:47

2

在框外添加的原因是drawRoundRect仍然在舞臺上創建了0,0的精靈,但直到40,40纔開始填充。您可以通過查看bin x和y屬性來查看它們,以查看它們從0,0開始並且寬度和高度屬性看到它們都是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 
+0

感謝您對我的幫助 – Benny 2011-05-11 06:53:41