Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Сортировка объектов в массиве. (http://www.flasher.ru/forum/showthread.php?t=185208)

Вопросник 07.10.2012 20:53

Сортировка объектов в массиве.
 
Здраствуйте. Я вывожу на экран много картинок. Если я их вставлю в массив, как мне потом удалить объект с экрана найдя его через массив?

Krusty 07.10.2012 20:54

Код AS3:

removeChild


caseyryan 07.10.2012 22:05

Код AS3:

for each (var do:DisplayObject in _array) {
      if (do.parent) do.parent.removeChild(do);
}

кто-то скажет, что не правильно это, когда ребенок дергает функции родителя, но в данном случае это позволит удалить объект из дисплей листа, в каком бы контейнере он не находился

Вопросник 07.10.2012 22:41

А что значит parent?

bav 07.10.2012 22:58

DisplayObject.parent. Добавьте справку в закладки. caseyryan, небольшое замечание, do - зарезервированное слово, хотя всем ясно, что это display object. Я просто так тоже где-то здесь написал :-)

Newred 07.10.2012 23:41

Способ 1.
Код AS3:

for(var i:uint = 0; i < arr.length ; i ++)
{
        removeChild(arr[i]);
}

Способ 2.
Код AS3:

for each (var temp in arr)
{
        removeChild(temp);
}

Способ 3.
Код AS3:

while(arr.length)
{
        removeChild(arr.shift());
        /*removeChild(arr[0]);
        arr.shift();*/

}


КорДум 07.10.2012 23:48

А где "сортировка" в вопросе?

Frost47rus 08.10.2012 00:21

Код AS3:

for (var i:int = 0; i < array.length; i++ ){
 if (array[i].name == neededName){
      removeChild(array[i]);
      array.split(1, i);
 }
}


caseyryan 08.10.2012 13:21

Цитата:

Сообщение от bav (Сообщение 1098943)
DisplayObject.parent. Добавьте справку в закладки. caseyryan, небольшое замечание, do - зарезервированное слово, хотя всем ясно, что это display object. Я просто так тоже где-то здесь написал :-)

Точно ) не обратил внимания =)

Цитата:

Сообщение от Frost47rus (Сообщение 1098955)
Код AS3:

for (var i:int = 0; i < array.length; i++ ){
 if (array[i].name == neededName){
      removeChild(array[i]);
      array.split(1, i); // тут параметры должны быть наоборот (i, 1).
 }
}


Frost47rus, этот вариант не рабочий. В комментарии подписал где ошибка.
+ removeChild подразумевает, что объект находится внутри текущего контейнера. А если нет? Зачем такой корявый вариант предлагать?

udaaff 08.10.2012 14:06

Название темы не отражает сути вопроса.


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

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