我制作了这个插件,它将容器的所有子对象以网格形式定位。现在我为容器中的子元素添加了一个点击处理程序,当我单击其中一个时,它被删除了。当我在右侧删除一整行(从上到下)时,一切顺利,但是当我在左侧删除一整行时,容器中所有项目的位置都保持在原位,但容器本身将被移动到 x = 0 和 y = 0。我想要的是容器中的所有孩子都被移动到 x:0, y:0 作为一组。
一些关于我得到什么和我想要什么的图片:
1)我得到什么:
2)当我删除左侧的一整行时得到什么:
3)我想要什么:
我使用的代码:
private function clickHandler(event:MouseEvent):void {
var name:String = event.currentTarget.name;
if(container.getChildByName(name) != null)
container.removeChild(container.getChildByName(name));
trace(name, "container.width: ", container.width);
trace(name, "container.width: ", container.height);
trace(name, "container.x: ", container.x);
container.graphics.clear();
container.graphics.beginFill(0x2C2C2C);
container.graphics.drawRect(container.x ,container.y, container.width, container.height);
container.graphics.endFill();
}
有人知道如何解决这个问题吗?:)
编辑:创建网格的代码:
private function generateGrid(rows:int, cols:int, spacing:int):void
{
for (var py:int = 0; py <rows; py++)
{
for (var px:int = 0; px <cols; px++)
{
if(childs.length > 0)
{
var child:* = childs.shift();
child.x = (child.width + spacing) * px;
child.y = (child.height + spacing) * py;
} else {
break;
}
}
}
}