0

我在定位时遇到了奇怪的问题

1) 我用 AS 创建的 MovieClip()

2) 此 MovieClip() 内的文本字段。

1) 的问题:当我设置 MC.x = 0; MC.y = 0 影片剪辑不会出现在左上角。

swf图片

2) 的问题:文本既不垂直也不水平居中。

我的 AS3 代码:

var button:ButtonMC = new ButtonMC();
button.y = 100;
button.x = 100;
button.width = 260;
button.height = 50;
button.buttonMode = true;
button.useHandCursor = true;
button.mouseChildren = false;

var tf:TextFormat = new TextFormat();
tf.size = 70;
tf.bold = true;
tf.font = "Arial"
tf.color = 0xFFFFFF;

var myText:TextField = new TextField();
myText.defaultTextFormat = tf;
myText.autoSize = TextFieldAutoSize.CENTER;

button.addChild(myText);
myText.text = 'ThisIsATestText1234';
myText.y = button.height * 0.5 - myText.textHeight * 0.5;

addChild(button);
4

2 回答 2

0

由于 myText 已经在您尝试获取按钮高度的位置添加到按钮中,因此可能会搞砸计算。尝试首先对齐文本字段并将其添加到按钮。您还更改了 Button 的宽度和高度,这会改变比例,因此也会影响内部文本字段的外观和行为(因为它将成为按钮的子项)

一次解决这两个问题的最佳方法是在按钮内创建一个背景剪辑并赋予其适当的大小。然后创建文本字段并根据背景调整其比例。这样,按钮保持原来的比例,不会弄乱里面的东西。

希望这可以帮助。

PS:useHandCursor = true设置时不需要buttonMode = true;)

于 2013-01-23T21:02:35.140 回答
0

删除这些行:

button.width = 260;
button.height = 50;

并且您将更容易定位文本 - 按钮高度也受添加的文本字段的影响,因此更好地使用固定值,例如

myText.y = 25 - (myText.height * 0.5);
于 2013-01-23T21:02:41.327 回答