このプラグインは、コンテナのすべての子オブジェクトをグリッド構成に配置するように作成しました。ここで、コンテナ内の子にクリックハンドラを追加しました。子の1つをクリックすると、その子は削除されます。右側の全列(上から下)を削除すると、すべてうまくいきますが、左側の全列を削除すると、コンテナ内のすべてのアイテムの位置はそのままになりますが、コンテナ自体はx=0およびy=0に移動されます。必要なのは、コンテナ内のすべての子が1つのグループとして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;
}
}
}
}