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

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

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

Регистрация: Feb 2010
Сообщений: 811
Отправить сообщение для Universe с помощью ICQ Отправить сообщение для Universe с помощью Skype™
Flame Правильное возвращение объектов на сцену

Есть группа объектов в контейнере. При нажатии на один из объектов контейнер с объектами нужно удалять со сцены. Когда объекты удалились на сцене должен появляться другой объект, при щелчке на который уже он должен удаляться, а старый контейнер с объектами возвращаться на своё первоначальное место.
Вот я и думаю как это правильнее всего сделать? Использовать removeChild() ля контейнера, а потом вызывать ту же функцию, которая создавала первый контейнер и все объекты в нём или достаточно просто завести метод в котором добавляется/удаляется контейнер? Не приведет ли новое создание всех объектов к утечке памяти?

Старый 24.01.2011, 15:10
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 2  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Зачем создавать объект, который недавно просто удалили со сцены? В нужное время просто добавь его назад — ссылка ж есть... ?
__________________
Поймай яблоко 2!

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Или использовать свойство visible.
Код AS3:
firstContainer.visible = true;
secondContainer.visible = false;
// далее в обработчике клика
firstContainer.visible = !firstContainer.visible;
secondContainer.visible = !secondContainer.visible;

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

Регистрация: Feb 2010
Сообщений: 811
Отправить сообщение для Universe с помощью ICQ Отправить сообщение для Universe с помощью Skype™
дело в том, что если просто убирать visible всё тормозит. Надо именно удалить его со сцены. А что вы понимаете под ссылкой? Содержимое переменной в которой он находится? А не будет риска что GC его удалит когда он будет не на сцене? Или для тог чтобы он его удалил мне надо присвоить переменной в которой он храниться null?

Добавлено через 10 минут
попробовал удалять/добавлять контейнер - удаляет нормально, при попытке добавить пишет что объект null!

Добавлено через 20 минут
но особенность в том, что если добавляю кнопкой, которая находится внутри мувика, в котором писалась функция - всё ок, а если из какогото другого класса - пишет null! :\

Старый 24.01.2011, 15:47
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 5  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Ну очевидно ты неверно указываешь на свой объект, потому и null. Нужен код.
__________________
Поймай яблоко 2!

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

Регистрация: Feb 2010
Сообщений: 811
Отправить сообщение для Universe с помощью ICQ Отправить сообщение для Universe с помощью Skype™
всё, разобрался с этим нулом))) Провтык вышел, удалял объект из которого обращался к руту!))

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

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

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


 


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


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