Я пытаюсь создать пользовательскую кнопку с помощью ActionScript 3.0. Я использую круглый прямоугольник в качестве фона, но у меня проблема с размером.
Это мой пользовательский класс кнопок:
package
{
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.display.Shape;
public class customButton extends Sprite
{
private var background:Shape;
public var bgColor:uint;
public var borderColor:uint;
public var borderSize:uint;
public var cornerRadius:uint;
private var label:TextField;
public function customButton(text:String)
{
super();
this.opaqueBackground = 0xFF0000;
background = new Shape();
borderSize = 1;
borderColor = 0x666666;
bgColor = 0xFFCC00;
cornerRadius = 9;
label = new TextField();
label.text = text;
var format:TextFormat = new TextFormat();
format.font = "Verdana";
format.color = 0;
format.size = 38;
format.underline = true;
label.defaultTextFormat = format;
addChild(background);
addChild(label);
buttonMode = true;
mouseChildren = false;
}
public function draw():void
{
background.graphics.lineStyle(borderSize, borderColor);
background.graphics.beginFill(bgColor);
background.graphics.drawRoundRect(0, 0, this.width, this.height cornerRadius);
background.graphics.endFill();
}
}
}
А вот код, используемый для отображения кнопки:
public function Test01()
{
super();
// support autoOrients
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
button = new customButton("Button");
button.x = 200;
button.y = 300;
button.width = 200;
button.height = 100;
button.draw();
addChild(button);
}
Если я установлю этот размер на кнопку:
button.width = 200;
button.height = 100;
Я получаю следующее:
Но я установил размер кнопки:
button.width = 40;
button.height = 20;
(Этот размер такой же, как в классе customButton). Я получаю:
Я не знаю, почему, когда я использую размер (40, 20), я получаю прямоугольник меньшего размера, чем этот размер.
Любой совет?