|
|
|||||
Регистрация: Apr 2013
Сообщений: 82
|
Удаление всех объектов массива
Допустим есть код, который что-то создаёт. То что он создаёт, он добавляет в массив. И объекты, которые в массиве появляются на экране. Но во время выполнения кода понадобилось, что бы все объекты массива были удалены. И таких массивов много. Есть простой способ удалить их объекты с поля всех сразу? Или нужно прибегать к помощи циклов и удалять по одному?
|
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Если Вам нужно удалить все обьекты, то нужно сначала удалить все ссылки на них ( то есть удалить их в вашем примере из массива, а потом самую главную ссылку\переменную занулить ).
Если вам нужно за раз очистить весь массив, то его тоже можно занулить. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Речь то, судя по "удалить их объекты с поля", о дисплейных объектах, которым нет дела до ссылок на них в каком-то там массиве. Ну занулите вы массив — дисплейные объекты то никуда не денутся.
__________________
Reality.getBounds(this); |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Не денутся.. Можно уточнить,
Цитата:
var container:Sprite = new Sprite(); $doc.addChild(container); var array:Array = []; var sp:Sprite var spX:int = 0; var spY:int = 0; for (var i:int = 0 ; i < 10 ; i++) { sp = new Sprite(); sp.graphics.beginFill(0xFC1D55); sp.graphics.drawCircle(spX, spY, 50); sp.graphics.endFill(); array[i] = sp; container.addChild(array[i] as DisplayObject); spX += 50; } while (container.numChildren) { container.removeChildAt(0) } //или сразу всех container.removeChildren(); |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
__________________
Reality.getBounds(this); |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Нет конечно.
__________________
Reality.getBounds(this); |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Если все объекты лежат в одном контейнере и надо очистить ВЕСЬ контейнер, то делаем removeChildren().
Если при этом надо еще и удалить объекты из памяти, то еще и зануляем массив. Если нужно очистить НЕ весь контейнер, или объекты массива разбросаны по разным контейнерам, пробегаемся по массиву циклом, выдергивая каждый объект из его парента, а затем зануляем массив.
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Feb 2012
Сообщений: 1,540
|
И с чего Вы взяли, что DisplayObject, который добавлен на сцену, должен быть собран и удален GC?
|
Часовой пояс GMT +4, время: 02:50. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|