Подскажите, каким образом можно правильно заполнить ячейки изометрической сетки (массива массивов) перетаскивая на нее объект определенного размера (1х6 и т.д.) как только я не пробовал это делать.

Код AS3:
public function Click(e:MouseEvent):void
{
if (! drag)
{
if (e.target == osel)
{
curX = 16;
curY = 10;
objectMass = new Array();
for (var rows:int=0; rows<curX; rows++)
{
objectMass.push(new Array());
}
while (true)
{
var tempCont = new MovieClip();
for (var col:int=0; col<curX; col++)
{
for (var row:int=0; row<curY; row++)
{
var ball2x2 = new ball2x2_mc ;
objectMass[col][row] = ball2x2;
ball2x2.x = col * 24;
ball2x2.y = row * 24;
ball2x2.mouseEnabled = false;
tempCont.addChild(ball2x2);
}
}
break;
}
gameMovieClip.addChild(tempCont);
targ = tempCont;
targ.startDrag(true);
targ.mouseEnabled = false;
drag = true;
}
if (e.target == tile)
{
curX = 1;
curY = 1;
objectMass = new Array();
for (rows=0; rows<1; rows++)
{
objectMass.push(new Array());
}
while (true)
{
tempCont = new MovieClip();
for (col=0; col<1; col++)
{
for (row=0; row<1; row++)
{
ball2x2 = new ball2x2_mc ;
objectMass[col][row] = ball2x2;
ball2x2.x = col * 24;
ball2x2.y = row * 24;
ball2x2.mouseEnabled = false;
tempCont.addChild(ball2x2);
}
}
break;
}
gameMovieClip.addChild(tempCont);
targ = tempCont;
targ.startDrag(true);
targ.mouseEnabled = false;
drag = true;
}
}
else
{
var score:int = 0;
for (col=0; col<slots; col++)
{
for (row=0; row<slots; row++)
{
if (grid[col][row] == e.target)
{
for (var cur1:int=0; cur1<curX; cur1++)
{
for (var cur2:int=0; cur2<curY; cur2++)
{
if (grid[col + cur1][row + cur2].full == false)
{
score++;
if (curX >= curY)
{
if (score == curX)
{
targ.x = e.target.x;
targ.y = e.target.y;
targ.stopDrag();
targ = new MovieClip();
for (var cur3:int=0; cur3<curX; cur3++)
{
for (var cur4:int=0; cur4<curY; cur4++)
{
grid[col + cur3][row + cur4].full = true;
}
}
drag = false;
}
}
if (curX < curY)
{
if (score == curY)
{
targ.x = e.target.x;
targ.y = e.target.y;
targ.stopDrag();
targ = new MovieClip();
for (cur3=0; cur3<curX; cur3++)
{
for (cur4=0; cur4<curY; cur4++)
{
grid[col + cur3][row + cur4].full = true;
}
}
drag = false;
}
}
}
}
}
}
}
}
}
}