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

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

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

Регистрация: Jun 2010
Сообщений: 189
По умолчанию Не удаляются объекты.

В конце игры удаляю объекты одного типа.
Код AS3:
private function removeCloud() : void {
for (var p:int = 0; p < _view.numChildren; p++){
      var cloud:CloudCloud = _view.getChildAt(p) as CloudCloud;
      if (cloud != null){
	_view.removeChild(cloud );
	}
   }
}
Не удаляются, или удаляются не все.


Последний раз редактировалось Nemez; 24.02.2011 в 14:14.
Старый 24.02.2011, 14:24
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 2  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
Не удаляются, или удаляются не все
Потому как на каждой итерации цикла p увеличивается, а _view.numChildren уменьшается.
Правильный способ:
Код AS3:
while (_view.numChildren) {
	_view.removeChildAt(0);
}
__________________
...вселенская грусть

Старый 24.02.2011, 14:33
Nemez вне форума Посмотреть профиль Отправить личное сообщение для Nemez Найти все сообщения от Nemez
  № 3  
Ответить с цитированием
Nemez
 
Аватар для Nemez

Регистрация: Jun 2010
Сообщений: 189
Spasibo. Но... там есть разные объекты, и если нулевым будет объект другого типа , то не сработает?


Последний раз редактировалось Nemez; 24.02.2011 в 14:38.
Старый 24.02.2011, 15:42
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 4  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Да, невнимательно прочитал первый раз...
Ну тогда проще всего сохранить все Cloud'ы в массив и идти по нему циклом, удаляя каждый элемент массива из отображения
__________________
...вселенская грусть

Старый 24.02.2011, 16:46
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 5  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
А что нам мешает просто пройтись циклом с конца, проверяя текущую позицию?
Должно сработать.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.

Старый 24.02.2011, 17:15
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 6  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Код AS3:
private function removeCloud() : void {
for (var p:int = 0; p < _view.numChildren;){
      var cloud:CloudCloud = _view.getChildAt(p) as CloudCloud;
      if (cloud != null){
	_view.removeChild(cloud );
	}
	else p++;
   }
}
=(
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 24.02.2011, 17:23
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 7  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Каждый раз запрашивать намчилдрен дольше, чем один раз.
Да и вообще -- все это лишние телодвижения.

Код AS3:
function removeCloud():void {
  for (var i : int = _view.numChildren - 1; i >= 0 ; i--) {
    var cloud : CloudCloud = _view.getChildAt(i) as CloudCloud;
    if (cloud) {
      _view.removeChild(cloud );
    }
  }
}
и все
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.

Старый 24.02.2011, 17:31
Nemez вне форума Посмотреть профиль Отправить личное сообщение для Nemez Найти все сообщения от Nemez
  № 8  
Ответить с цитированием
Nemez
 
Аватар для Nemez

Регистрация: Jun 2010
Сообщений: 189
Spasibo vsem.

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

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

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


 


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


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