0

我使用以下代码将 DisplayObject 的位置设置为中心。

obj.x = (screen_width - obj.width) / 2;

或者

obj.x = (parentObj.width - obj.width) / 2;


我使用以下代码垂直显示 2 个对象。

obj2.x = obj1.width + interval


我使用以下代码垂直显示 2 个对象并将它们的位置设置为居中。

var obj3:Sprite = new Sprite;

obj3.addChild(obj1);
obj3.addChild(obj2);

obj2.x = obj1.width + interval;
obj3.x (screen_width - obj3.width) / 2;


以上代码是管理DisplayObjects位置的好方法吗?
有没有更好更简单的方法来做到这一点?

4

2 回答 2

1

好吧,您也可以将它们添加到 HGroup 或 VGroup 中(如果您使用的是 Flex 3,也可以将它们添加到 HBox 和 VBox 中)。但是当我想在不使用这些复杂对象的情况下实现垂直布局时,我通常会创建一个“update()”方法(注意以下代码可能包含语法错误:它只是作为算法示例提供):

private function update():void
{
    // The vertical gap between elements
    var gap:int = 4;

    // The cumuled height
    var cumuledHeight:Number = 0;

    // The number of elements
    var n:int = numElements;

    // The element at each loop
    var o:IVisualElement;
    for (var i:int = 0; i<n; i++) {

        // Gets the element
        o = getElementAt(i);

        // Sets its vertical position
        o.y = cumuledHeight + gap*i;

        // Updates the cumuled height
        cumuledHeight += o.height;
    }
}
于 2011-09-02T06:32:16.847 回答
1

是的,有一种更简单的方法是使用 Flex 将其居中设置为水平中心 = 0 和垂直中心 = 0。

于 2011-09-02T06:32:44.257 回答