Я пытался сделать аналогичное с игрой SameGame (т.е. блок над удаленными блоками падает вниз). Перед попыткой этого с массивом, содержащим MovieClips, этот код работал (пробовал с значениями int). С MovieClips в массиве, кажется, не работает так же.
со значениями типа int, например:
popUp(0, 4): Before: 1,2,3,4,5,6,7,8,9,10; After: 1,2,3,4,6,7,8,9,10
Но с мувиклипами:
popUp(0, 4): Before: 1,2,3,4,5,6,7,8,9,10; After; 1,2,3,4
// Assume the numbers are movieclips XD
По сути, он удаляет все остальное, а не только указанный блок> _ <</p>
Вот весь метод. По сути, два дополнительных массива перемещают значения над значением, которое скоро будет удалено, удаляют значение, а затем повторно складывают его в исходный массив.
Что может быть не так с этим? И правильно ли я делаю то, что я действительно хотел подражать?
function popUp(col:uint, row:uint)
{
var tempStack:Array = new Array();
var extraStack:Array = new Array();
tempStack = IndexArray[col];
removeChild(tempStack[0]);
for(var ctr:uint = tempStack.length-(row+1); ctr > 0; ctr--)
{
removeChild(tempStack[ctr]);
extraStack.push(tempStack.pop());
trace(extraStack);
}
tempStack.pop();
for(ctr = extraStack.length; ctr > 0; ctr--)
{
tempStack.push(extraStack.pop());
//addChild(tempStack[ctr]);
}
IndexArray[col] = tempStack;
}
PS: Если спросить не так уж и много, есть ли бесплатные пошаговые инструкции по созданию SameGame в AS3 (боюсь, что я не все делаю правильно)? Заранее спасибо =)