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

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

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

Регистрация: Jan 2008
Сообщений: 34
По умолчанию Подскажите где ошибка removeChildAt не всё удаляет

подскажите где ошибка не удаляется второй элемент из 3х, не пойму где ошибка. может кто подскажет?
Фунция Анонс выводит на экран 3 фото через интервал по оси Х=300.
Код:
public function Anons(e:Event=undefined) :void {
		var url:String ;
		var urlReq:URLRequest;
		for(i=1;i<4;i++){
		ldr=new Loader();
		url=i+".jpg";
		ldr.x=(-600)+(i*300);
		ldr.y=250;
		ldr.load(new URLRequest(url));
		addChildAt(ldr,i);
		}
		}
public function DelAnons(e:Event=undefined) :void {
		for(i=1;i<4;i++){
		removeChildAt(i); 
		}
		}

Старый 26.03.2008, 01:47
Xelat вне форума Посмотреть профиль Отправить личное сообщение для Xelat Найти все сообщения от Xelat
  № 2  
Ответить с цитированием
Xelat

Регистрация: Oct 2007
Сообщений: 22
А почему бы не написать
Код:
while (numChildren) removeChildAt(0);
А у тебя помоему даже две причины.
1. Все дети нумеруются от нуля, а не от единицы.
2. Когда ты удаляешь 1-й элемент, то у тебя их уже остаётся не 4 а 3, следовательно УЖЕ невозможно удалить элемент с индексом 3 (остались только 0,1,2).

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

Регистрация: Jan 2008
Сообщений: 36
Display list нужно начинать заполнять с 0 индекса

Старый 26.03.2008, 01:55
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Вообще-то индексы у детей начинаются с нуля.

Старый 26.03.2008, 02:10
Anri_k вне форума Посмотреть профиль Отправить личное сообщение для Anri_k Найти все сообщения от Anri_k
  № 5  
Ответить с цитированием
Anri_k

Регистрация: Jan 2008
Сообщений: 34
у меня фунции Anons срабатывает от наведение курсора на объект. при удалении всех детей, то удаляеться и сам объект. как этого избежать?

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

Регистрация: Oct 2007
Сообщений: 22
Сам объект у тебя не может удаляться, по крайней мере в этой функции. А вот все дети удаляются. Если тебе нужно удалять детей именно с индексами 1-3, то пиши обратный цикл:
Код:
for(i=3;i>=1;i--) removeChildAt(i);
Либо ещё так:
Код:
for(i=1;i<4;i++) removeChildAt(1);


Последний раз редактировалось Xelat; 26.03.2008 в 02:20.
Старый 26.03.2008, 02:18
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Класть лоадеры в отдельный контейнер, потом его сносить с потрохами, когда не нужен.

Старый 26.03.2008, 02:58
Anri_k вне форума Посмотреть профиль Отправить личное сообщение для Anri_k Найти все сообщения от Anri_k
  № 8  
Ответить с цитированием
Anri_k

Регистрация: Jan 2008
Сообщений: 34
надо будет с контейнером попробовать. кстати получилось удалить без потери объекта. почему то он являеться ребёнком под номером 1, интересно почему он туда записываеться

Старый 26.03.2008, 10:23
CrazyFlasher вне форума Посмотреть профиль Отправить личное сообщение для CrazyFlasher Найти все сообщения от CrazyFlasher
  № 9  
Ответить с цитированием
CrazyFlasher
 
Аватар для CrazyFlasher

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
ну или те, что нужно удалять - забивать в массив
__________________
Flash Developer
Папа TDP4 Team Battle

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

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

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


 


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


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