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

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

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

Регистрация: Aug 2004
Адрес: N. Novgorod
Сообщений: 127
Отправить сообщение для klafuda_klalafu с помощью ICQ
По умолчанию как очистить Sprite?

создаю спрайт, в нем еще создаю спрайты... а как очистить родительский не удаляя его самого !.....
Код:
var ObjSprite:Sprite = new Sprite();
addChild(ObjSprite);

var NSprite:Number = 10//некоторое число которое непостоянно

for(var i:Number = 0; i<NSprite; i++){
    with(ObjSprite.addChild(new Sprite())){
        x=i*10;
        graphics.beginFill(0x000000);
        graphics.drawRect(-5,-5,10,10);
        graphics.endFill();			
    }
}
//это все дело пытаюсь очистить вот такой процедурой
for (var i:uint = 0; i<ObjSprite.numChildren; i++) {	
    ObjSprite.removeChild(ObjSprite.getChildAt(i));
}
не получается один спрайт все таки сотается!....
может есть что нить типа clear????
или еще какая хитрая команда хелп перерыл ничо не нашел вразумительного!

Старый 26.09.2007, 22:30
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 2  
Ответить с цитированием
Torero
[+1.4 18.06.07]
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
Млин.. 3 года человек во флеше.. "numChildren+1" попробуй..))
__________________
А я Томат.

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

Регистрация: Sep 2002
Сообщений: 30,787
А removeChildAt уже не можно юзать?

Код:
var num:uint = ObjSprite.numChildren;
while (num--) {
   ObjSprite.removeChildAt(0);
}

Старый 27.09.2007, 00:59
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 4  
Ответить с цитированием
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
иестчо проще
Код:
while (ObjSprite.numChildren>0) {
   ObjSprite.removeChildAt(0);
}
__________________
33 коровы

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

Регистрация: Sep 2002
Сообщений: 30,787
Проще для кого?
Я о машине забочусь, а ты?
Я старался написать максимально простой и быстрый код, а у тебя просто максимально простой

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

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
а ты пробовал ?
__________________
33 коровы

Старый 02.10.2007, 02:42
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 7  
Ответить с цитированием
Torero
[+1.4 18.06.07]
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
Сорри за оффтоп: а как вы вообще отслеживаете производительность?
__________________
А я Томат.

Старый 02.10.2007, 10:06
DRAGOnoid вне форума Посмотреть профиль Отправить личное сообщение для DRAGOnoid Посетить домашнюю страницу DRAGOnoid Найти все сообщения от DRAGOnoid
  № 8  
Ответить с цитированием
DRAGOnoid
 
Аватар для DRAGOnoid

Регистрация: Jan 2004
Адрес: Moscow
Сообщений: 389
Отправить сообщение для DRAGOnoid с помощью ICQ
можно я тоже поделюсь как я такие задачи решаю? Авось помогут

во первых я если точно не хочу удалять родительский спрайт а внутри будет твориться хаус который надо удалить использую одно из двух

способ 1:
Я создаю массив по типа
public var = itemsArray:Array = new Array();

в который методом push добавляю конструкторы спрайтов мувов или чё хош )
Код:
var test = new Sprite();
var test2 = new Sprite();
this.itemsArray.push(test2);
test.addChild(test2);

// далее простым циклом если надо удаляю все спрайты
for each (var item in this.itemsArray)
test.removeChild(item);
второй способ когда внутри спрайта творится полный хаос что даже я незнаю что там происходит ))
в таком случае внутри спрайта заведи подспрайт , в него и добавляй всё. а потом грохни этот подспрайт:

Код:
var test = new Sprite();
var test2 = new Sprite();
test.addChild(test2);
var test3 = new Sprite();
test2.addChild(test3);
// как я удаляю обычно (может и не правильно)
removeChild(test2);
test2 = new Sprite();
addChild(test2);
глюков в втором варианте масса! во первых если у вас были какие то addEventListener'ы то они тут же будут выдовать ошибку что такхи объектов нет.

в таком случае я вообще используя перый метод добавил её в функцию которая ещё и листенеры удаляет.

в общем идеи предложил дальше думайте сами, ну или буду рад критике потому что сам эти методы использую а они могут оказаться не верными

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

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от __i
а ты пробовал ?
В смысле тест провести? Нет. Лень.

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

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
мне кажется, что самым быстрым будет вариант не с уделением детей на нулевом уровне, а при уделении от последнего к нулевому
приблизительно по этой причине: http://lab.polygonal.de/wp-content/s...rayExample.swf (это наглядный пример удаления ячеек из массива - вытаскивайте квадратики мышкой из начала)
__________________
Хороший отдых - половина работы.

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

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

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


 


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


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