我使用以下代码将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位置的好方法吗?
是否有更好,更简单的方法来做到这一点?
答案 0 :(得分: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;
}
}
答案 1 :(得分:1)
是的,使用Flex以horizontalCenter = 0和verticalCenter = 0为中心有一种更简单的方法。