我需要帮助AS3中的按钮位置。与Topic之前相同,我使用AS3创建了一个IRC客户端,但是当用户加入频道时,会添加一个按钮,但是如果已经有一个按钮并且用户在IRC上加入新频道,则会添加新按钮此外,这适用于用户所加入的每个频道,但它应该位于最后一个按钮(并排)之后。如果用户加入更多频道,则相同。我怎样才能在x和y位置的最佳方式上做到这一点?
这是我现在的代码:
function onChannelButton(channel)
{
var test:MovieClip = new MovieClip();
var btn:Button;
for(var j:int = 0; j < btn.length; j++) {
btn = new Button();
btn.name = "btn";
btn.label = channel;
btn.width = 90;
btn.x = 120;
btn.y = 487.25;
test.addChild(btn);
}
addChild(test);
}
希望你能帮助我!谢谢!
答案 0 :(得分:2)
试试这个:
const PADDING:uint = 10;
const NUM_BUTTONS:uint = 10;
onChannelButton();
function onChannelButton():void {
var test:Sprite = new Sprite();
var btn:Button;
//NUM_BUTTONS or btn.length ? (Don't know about your Button class
for (var i:int = 0; i < NUM_BUTTONS; i++)
{
btn = new Button();
btn.name = "btn";
btn.width = 90;
btn.x = (btn.width + PADDING) * i;
test.addChild(btn);
}
addChild(test);
}
答案 1 :(得分:0)
我通常使用您的迭代器j
执行类似下面的操作来确定x和y位置。
我已经创建了四个变量,希望这些代码能够自我解释。在这种情况下,y位置不会改变每个btn,这就是btnSpacingY设置为0的原因。
var btnStartX:Number = 120;
var btnStartY:Number = 487.25;
var btnSpacingX:Number = 120;
var btnSpacingY:Number = 0;
function onChannelButton(channel) {
var test:MovieClip = new MovieClip();
var btn:Button;
for (var j:int = 0; j < 10; j++) {
btn = new Button();
btn.name = "btn";
btn.label = channel;
btn.width = 90;
btn.x = btnStartX + (j * btnSpacingX);
btn.y = btnStartY + (j * btnSpacingY);
test.addChild(btn);
}
addChild(test);
}