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

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

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

Регистрация: Jan 2009
Адрес: Северный островок дефолт-сити
Сообщений: 144
По умолчанию visible=0/1 vs add/removeChild

Сейчас занимаюсь переделкой одного проекта и возник такой вопрос:
надо отображать в одном спрайте различные формы. Какие плюсы и минусы у каждого из озвученных выше подходов (присваивать visible неактивной формы нулю или удалять её из списка отображаемых объектов)?
Насколько я понимаю минус visible=0 в том что всё равно память хавается. Хотя поидее и при removeChild она тоже будет хаваться, если только не удалить все все ссылки на неактивную форму (а все все ссылки в моём случае не получиться наверное удалить).
Минус removeChild лично для меня в том, что при попытке удалить ненужную форму, если она уже была удалена ранее, вылетает ошибка, в то время как visible = 0 никаких ошибок не вызывает само собой. Хотя надо стремиться к тому, чтобы таких ошибок небыло впринципе, сейчас мне легче работать с visible.
Есть ли ещё какие-то другие различия между этими подходами?

Старый 11.11.2009, 19:50
relevance4 вне форума Посмотреть профиль Отправить личное сообщение для relevance4 Посетить домашнюю страницу relevance4 Найти все сообщения от relevance4
  № 2  
Ответить с цитированием
relevance4

Регистрация: Nov 2006
Адрес: там
Сообщений: 468
Отправить сообщение для relevance4 с помощью ICQ
это два абсолютно разных метода, они не являются альтернативами друг-другу.

перед использованием removeChild можно делать проверку, чтобы не возникала ошибка.

Старый 11.11.2009, 22:42
mayakwd вне форума Посмотреть профиль Отправить личное сообщение для mayakwd Посетить домашнюю страницу mayakwd Найти все сообщения от mayakwd
  № 3  
Ответить с цитированием
mayakwd
 
Аватар для mayakwd

Регистрация: Jul 2008
Адрес: t:2, x: 0.76
Сообщений: 553
Отправить сообщение для mayakwd с помощью ICQ Отправить сообщение для mayakwd с помощью Skype™
проверка о которой написано выше
Код AS3:
if (formToDelete != null && formContainer.contains(formToDelete))
  formContainer.removeChild(formToDelete);
__________________
Блог, Twitter
Брюзга.

Старый 12.11.2009, 01:01
bicubic_bublic вне форума Посмотреть профиль Найти все сообщения от bicubic_bublic
  № 4  
Ответить с цитированием
bicubic_bublic
Banned
[+4 25.09.09]
[+1 12.11.09]
[+4 12.12.09]

Регистрация: Sep 2009
Сообщений: 231
если имеется МувиКлип с анимацией или что-то перерисовываемое динамически, то visible = false не отменяет прорисовку каждого его кадра, однако если убрать из дерева отображения, то прорисовка просчитываться для этого объекта не будет.

Старый 12.11.2009, 01:53
Artic вне форума Посмотреть профиль Найти все сообщения от Artic
  № 5  
Ответить с цитированием
Artic
Banned

Регистрация: Jun 2009
Сообщений: 298
я делаю так

Код AS3:
if (getChildByName("super")) removeChild(super)
super = new Sprite();
super.name = "super";
addChild(super);

Старый 12.11.2009, 01:55
bicubic_bublic вне форума Посмотреть профиль Найти все сообщения от bicubic_bublic
  № 6  
Ответить с цитированием
bicubic_bublic
Banned
[+4 25.09.09]
[+1 12.11.09]
[+4 12.12.09]

Регистрация: Sep 2009
Сообщений: 231
Цитата:
Сообщение от Artic Посмотреть сообщение
я делаю так
лихо вы ключевое слово используете

Старый 12.11.2009, 02:28
SamFR вне форума Посмотреть профиль Отправить личное сообщение для SamFR Посетить домашнюю страницу SamFR Найти все сообщения от SamFR
  № 7  
Ответить с цитированием
SamFR

Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
Arctic, не лучший метод. Не говоря уже о super =)

Старый 12.11.2009, 02:37
Artic вне форума Посмотреть профиль Найти все сообщения от Artic
  № 8  
Ответить с цитированием
Artic
Banned

Регистрация: Jun 2009
Сообщений: 298
^^ super не всмысле super() а в смысле я тут в пример просто написал ^^

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

Старый 12.11.2009, 02:53
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 9  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Цитата:
Сообщение от mayakwd Посмотреть сообщение
проверка о которой написано выше
Код AS3:
if (formToDelete != null && formContainer.contains(formToDelete))
  formContainer.removeChild(formToDelete);
Проще try...catch
__________________
Дело не в тебе

Старый 12.11.2009, 02:55
bicubic_bublic вне форума Посмотреть профиль Найти все сообщения от bicubic_bublic
  № 10  
Ответить с цитированием
bicubic_bublic
Banned
[+4 25.09.09]
[+1 12.11.09]
[+4 12.12.09]

Регистрация: Sep 2009
Сообщений: 231
Код AS3:
if (formToDelete.parent) {
   formToDelete.parent.removeChild(formToDelete);
}

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

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

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


 


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


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