Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.12.2014, 05:06
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 1  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
По умолчанию Проблема с удалением объектов из массива

Кидаю объекты в массив. После чего пытаюсь удалить все объекты

Код AS3:
for (var i:int = 0; i <   LE.massive_01.length; i++)
            {
               removeChild(LE.massive_01[i]);
 LE.massive_01.splice(i);
            }
Объекты не удаляются таким способом. Но при этом получается их скрыть
Код AS3:
(var i:int = 0; i <   LE.massive_01.length; i++)
            {
 LE.massive_01[i].visible = false;
}
Не могу понять в чем фигня такая, вроде скрываются, а удалить нельзя.

Старый 13.12.2014, 05:26
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 2  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
Ну я конечно не спец, но сначала нужно удалить объект из отображения,если он на сцене
Код AS3:
removeChild(LE.massive_01[i])
, а потом уже использовать
Код AS3:
splise
при этом отправляются два параметра, первый это индекс удаляемого элемента, а второй количество, т.е.
Код AS3:
LE.massive_01.splice(i, 1);
что означает, на сколько помню, удалить элемент с индексом i, второй параметр сколько удалить элементов после индекса i, включая первый. Код LE.massive_01.splice(i, 1) удаляет только один элемент

Добавлено через 1 минуту
если хочешь удалить все объекты, то я думаю код должен быть LE.massive_01.splice(0, i);

Добавлено через 13 минут
removeChild(LE.massive_01[i]) как я понимаю удалит лишь один объект из отображения с индексом i, то бишь если нужен массив без объектов отображения, то нужен цикл вроде
Код AS3:
var i: int = LE.massive_01.length;
while (--i)
    {
    removeChilde(LE.massive_01[i])
    }
не знаю, будет ли у вас работать в вашем коде, у меня один класс, содержал массив, мне класс с массивом в определённый момент становился не нужен и я просто сносил класс, аналогично должно получится, если написать
Код AS3:
this.removeChild(LE.massive_01)
должно снести сам массив


Последний раз редактировалось neonoviiwolf; 13.12.2014 в 05:42.
Старый 13.12.2014, 05:48
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 3  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
Не один из вариантов к сожалению не помог. Не удаляет объекты и всё...( Странная ситуация с тем, что если

LE.massive_01[0].visible = false; - то объект с индексом 0 станет невидимым
Но если аналогичным образом попытаться удалить его
LE.removeChild(LE.massive_01[0]); - то нефига не удаляет.

Старый 13.12.2014, 06:02
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 4  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
приведите более полный код

Добавлено через 42 минуты
и почему стоит в начале LE, у вас класс наследует stage?

Старый 13.12.2014, 12:14
Ёлочка вне форума Посмотреть профиль Отправить личное сообщение для Ёлочка Найти все сообщения от Ёлочка
  № 5  
Ответить с цитированием
Ёлочка
 
Аватар для Ёлочка

Регистрация: Jun 2013
Адрес: Воронеж
Сообщений: 101
Код AS3:
for ( var i:int = 0; i < LE.massive_01.length; i++ )
{
	LE.massive_01[i].parent.removeChild( LE.massive_01[i] );
}
LE.massive_01.splice( 0 );
__________________
В лесу родилась ёлочка, в лесу она росла! Зимой и летом...

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:19.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:19.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.