2013-03-18 56 views
0

試圖創建一個帶有文本的按鈕,似乎無法找到一個簡單的方法讓他們正確定位。我在構建按鈕之後想到了,我可以將該按鈕的x/y/height/width作爲textfield的參數。但是trace(bStart.x)和trace(bStart.y)都返回0.我做錯了什麼?如何使用按鈕保持文本的位置?

我有什麼:

var bFormat:TextFormat = new TextFormat(); 
bFormat.font = "Arial"; 
bFormat.bold = true; 
bFormat.color = 0x000000; 
bFormat.size = 28; 
bFormat.align = "center"; 

var bStart:Sprite = new Sprite(); 
bStart.graphics.beginFill(0X00FF00, 1); 
bStart.graphics.drawRect(stage.stageWidth/2 - 100, stage.stageHeight/2 - 200, 100, 50); 
bStart.graphics.endFill(); 
bStart.buttonMode = true; 
bStart.mouseChildren = false; 

var bStartText:TextField = new TextField(); 
bStartText.defaultTextFormat = bFormat; 
bStartText.text = "Start"; 
bStartText.x = bStart.x; 
bStartText.y = bStart.y; 
bStartText.height = bStart.height; 
bStartText.width = bStart.width; 

stage.addChild(bStart); 
bStart.addChild(bStartText); 

回答

1

,因爲你並沒有改變bStart的x & Y,你只是從X &Ÿ起點, Sprite對象本身繪製仍然以0,0

試試這個

... 
bStart.graphics.drawRect(stage.stageWidth/2 - 100, stage.stageHeight/2 - 200, 0, 0); 
bStart.graphics.endFill(); 
bStart.x = 100; 
bStart.y = 50; 
... 

如果您選擇加入雪碧中的文本將具有相同的coordinat es作爲精靈,因此不需要設置文本x,y相同。

+0

+1 ahh這一切都有道理現在大聲笑。感謝您澄清繪製區域和位置。我以爲他們是在同一個= / – Mechaflash 2013-03-18 18:08:52