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

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

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

Регистрация: Jul 2009
Сообщений: 8
Question Как правильно удалить объект?

Ну для начала всем привет. И сразу к делу

Вот такой вот у меня черновичек заготовлен, что бы было проще вам понять мою проблему. http://public.gromslab.com/interface.swf

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

Я хочу добавить наверх навигацию с кнопками вперед и назад. При нажатии на любую из них этот ящик должен выезжать за грани экрана и удаляться. Сразу же на его место придет новый ящик с уже новым содержанием. Т.е. при каждом нажатии на кнопку один ящик должен уехать и удалиться, а второй создастся и приедет на место старого.

Так вот как этого добиться? Просто removeChild? Попробовал так, предварительно добавиви в функцию, которая обрабатывала ЭнтерФрейм - trace(1). И она продолжала выполняться после removeChild. А как сделать так, что бы этот объект вообще пропал из памяти? Что бы они друг на друга не собирались, создавая огромные нагрузки на процессор? Или они не будут перегружать так? Да просто там ведь столько слушателей событий. Они тоже все останутся?

Как-то мне не совсем понятен вот этот момент в улучшении быстродействия...

П.С.
Да, программист я пока никакой. Раньше на АС2 без ООП сайты клепал, но тут решил попробовать АС3 и ООП...

Всем спасибо и извините, если я не по каким-то правилам создал топ. Просто очень уставший после работы пришел

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

Регистрация: Jan 2009
Сообщений: 1,651
все ссылки нужно занулить.
всех обработчики событий в удаляемом мувике - убить.

Старый 24.07.2009, 17:42
Gr0m вне форума Посмотреть профиль Отправить личное сообщение для Gr0m Найти все сообщения от Gr0m
  № 3  
Ответить с цитированием
Gr0m

Регистрация: Jul 2009
Сообщений: 8
т.е. если у меня этот ящик состоит из разных объектов, у каждого из которых есть свои классы со своими обработчиками событий, все их нужно убить и только после этого просто removeChild?

П.С.
Не совсем про обнуление ссылок понял. Можно поподробнее?

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

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
link = null

Старый 24.07.2009, 17:45
PgeorgyV вне форума Посмотреть профиль Отправить личное сообщение для PgeorgyV Найти все сообщения от PgeorgyV
  № 5  
Ответить с цитированием
PgeorgyV

Регистрация: Apr 2008
Сообщений: 79
Код AS3:
private var obj:Object = {};
...
public function remove():void
{
  obj = null;
}

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

Регистрация: Jan 2009
Сообщений: 1,651
если у вас внутри мувика есть ссылки на другие живые мувики, ссылки на массивы, на которые ссылаются другие живые объекты и т.д. - сборщик мусора может решить, что объект вам еще нужен и не убрать его.

Старый 24.07.2009, 18:01
Gr0m вне форума Посмотреть профиль Отправить личное сообщение для Gr0m Найти все сообщения от Gr0m
  № 7  
Ответить с цитированием
Gr0m

Регистрация: Jul 2009
Сообщений: 8
4,5,
Спасибо. Думаю, что теперь все понятно.

П.С.
А как мне убедиться, что объект действительно удален? Просто trace(имяОбъекта)? Просто я начну пробовать и хотелось бы на последок убедиться, что я все сделал правильно

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

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
да можно трейсом

Старый 24.07.2009, 18:07
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 9  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Цитата:
Сообщение от СлаваRa Посмотреть сообщение
да можно трейсом
Серьезно?
То, что ссылка занулена, не значит, что объект удален из памяти.
__________________
Griver

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

Регистрация: Jan 2009
Сообщений: 1,651
во FlexBuilder есть профайлер. Больше возможностей нет.

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

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

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


 


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


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