Показать сообщение отдельно
Старый 01.02.2010, 10:38
envy вне форума Посмотреть профиль Отправить личное сообщение для envy Найти все сообщения от envy
  № 7  
Ответить с цитированием
envy

Регистрация: Jan 2010
Сообщений: 23
Код AS3:
removeChild(_block);
 
	for (k = 0; k < _block.numBricks; k++) {
	bricks.push(_block.getChildAt(k));
	_brick = new Brick();
	addChild(_brick);
	_brick.x = bricks[l].x;
	_brick.y = bricks[l].y;
Вот что сделала на падение блока - переместила в общий спрайт.
Но!
При попытке удалить элемент из массива выдает ту же ошибку. Если массив не менять, удаляет первый брик как надо, но потом, соответственно, выдает ошибку о не соответствии индексов (в массиве элемент есть, а потомка я удалила).



Добавлено через 13 минут
Код AS3:
function DeleteLine(y:int) : void {
		  for (var i: int = 0; i<l; i++) {
			if (bricks[i].y == y) {
				 var deleteMovie:Brick = bricks[i];
				 trace(deleteMovie.y);
				 deleteMovie.parent.removeChild(deleteMovie);
				 deleteMovie = null;
				 bricks[i] = [];
 
				}
			}
			}
Пробовала такой вариант, l - количество бриков. Ошибки не выдает, но ничего не удаляет.

Добавлено через 2 часа 17 минут
Функция shift у массива работает, но без аргумента
Код AS3:
function DeleteLine(y:int) : void {
		 for each(var item:Brick in bricks) {
          //item.y += 20;
		  trace(bricks);
          if( item.y > y - 1 ) {
               var deleteMovie:Brick = bricks.shift();
               deleteMovie.parent.removeChild(deleteMovie); 
               deleteMovie = null; 
           }
     }
			}
Такая конструкция удаляет первые брики, потом выдает ошибку. Помогите, пожалуйста, я уже все просмотрела, а решения найти не могу