Как управлять позициями объектов DisplayObject в ActionScript? - PullRequest
0 голосов
/ 02 сентября 2011

Я использую следующий код для установки положения объекта 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;


Являются ли приведенные выше коды хорошим способом управления позициями объектов DisplayObject?
Есть ли лучшие и простые способы сделать это?

Ответы [ 2 ]

1 голос
/ 02 сентября 2011

Да, есть более простой способ, используя Flex для центрирования с горизонтальным центром = 0 и вертикальным центром = 0.

1 голос
/ 02 сентября 2011

Ну, вы также можете добавить их в HGroup или VGroup (или HBox и VBox, если вы используете Flex 3). Но когда я хочу реализовать вертикальную компоновку без использования таких сложных объектов, я обычно создаю метод "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;
    }
}
...