我創建了我自己的Button,它只是從Sprite擴展而來。 它能夠使用計時器顯示3個不同的文本淡入淡出。 在我的繪圖函數中,我首先繪製了一個代表按鈕背景的Sprites圖形對象的矩形。AS3繪製比我設置的更大的Sprite(填充/邊距?)
我添加了一個函數來設置按鈕的寬度。該屬性用於繪製矩形。我知道精靈的大小在矩形繪圖後更新。但由於某些原因,精靈的寬度總是超過我通過「setButtonWidth」函數設置的寬度。
現在我有一個簡單的精靈作爲一個按鈕有一個graphics.drawRectangle部分繪製一個簡單的矩形。可以說500px寬度。但是當我追蹤那個按鈕的寬度時,它總是多出10%左右。這10%來自哪裏?
我讀了關於調用validateNow()。但這僅適用於標籤或複選框。出於某種原因,我無法訪問標籤庫。這必須以某種方式與TextFields一起工作。但是如何?
// this function is part of MyButtonClass.as file
function drawButton()
{
this.graphics.clear();
this.graphics.beginFill(currentBackColor);
this.graphics.drawRoundRect(0, 0, int(this.buttonWidth)+20, 30, 10, 10);
this.graphics.endFill();
}
// this code is in main action code frame
// the buttonWidth is set this way
stage.addEventListener(Event.RESIZE, updateBtn);
function updateBtn(event:Event)
{
// access the container in which the buttons are in like ...
for(var i = 0; i < buttonContainer.numChildren; i++) {
var btn = buttonContainer.getChildAt(i) as MyButtonClass;
// MyButtonClass is the class which extends from Sprite drawing my button
// and using buttonWidth to draw the backgrounds width.
btn.setButtonWidth((stage.stageWidth/2) - 20);
// i set half of stageWidth because i have two columns with a list of buttons
// after setButtonWidth is called in MyButtonClass, the draw function is called
// which does the graphics stuff above.
}
}
this.buttonWidth設置爲500.在該精靈上沒有特別的做法。沒有孩子被添加,只有這個繪圖的東西。但是這將精靈的寬度設置爲550或者其他東西。
創建實例是否確定按鍵寬度實際上是500像素寬,您不會錯過邊框/文本的寬度字段/低alpha的內容? – Marty 2012-03-30 00:36:22
關心如何設置'this.buttonWidth'?所有這些代碼誰的寬度是從一個名爲'buttonWidth' + 20像素的變量計算出來的,我懷疑這是否會導致您遇到的問題。 – Daniel 2012-03-30 02:33:20
'buttonWidth'如何設置? 'buttonWidth'的類型是什麼,使用'int'的類型轉換的用法是什麼? – Diode 2012-03-30 06:48:46