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

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

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

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Ну задача стояла изнутри самого себя удалить)
Помнится когда-то и у меня была такая задача. Правда что-то давно уже не помню чтоб такая потребность возникала. Может писать научился просто. А так то оно конечно да, лучше делать сверху вниз управление.
__________________
Кто к нам с чем для чего - тот у нас того от того.

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

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

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

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
Цитата:
2. продиспатчить наверх событие "удали
меня"
Получается, чтобы освободить ресурсы нам нужны ресурсы. В c# при запуске выделяется память под 3 ошибки(одна из которых ошибка нехватки памяти)чтобы если ошибка произошла мы могли выкинуть исключение. Так и у вас получается FP потребовалась память он освобождает нужна еще, ну вожможно я утрирую, поправьте если не так.
__________________
http://www.chessmax.ru

Старый 14.01.2012, 19:16
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 14  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Ну задача стояла изнутри самого себя удалить)
1. Что значить _удалить_?
В С это значить освободить память. В ActionScript это делаем не мы.
В ActionScript не надо ничего удалять - ссылки почистили - объект ушел (может сразу, может через час, может никогда).

2. Но с ненужным объектом надо что-то сделать, чтобы он не жрал ресурсы.
Он жрет
- память
- процессор
Как он жрет память? - просто занимает место, чтобы это побороть надо снести все ссылки на него.
(кстати, подписка метода объекта на событие тоже держит объект в памяти)
Как он жрет процессор? - он подписывается на таймер или ENTER_FRAME, или на другой объект, который диспетчит события и обрабатывает постоянно эти события.
Как бороться с потреблением процессора? - отписывать от всего _внешнего_ и от таймеров/ENTER_FRAME-ов (в документации Adobe это называется "заморозить")
Т.е. объект мы удалить не можем, можем только "заморозить".

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

3. Когда "замораживать" объект и кто это должен делать?
Это уже зависит сугубо от ситуации.
Самый тупой подход для DisplayObject-ов - это подписываться на собственные события ADDED_TO_STAGE и REMOVED_FROM_STAGE. Соответственно в onAddedToStage - РАЗмораживать, в onRemovedFromStage - ЗАмораживать.
Т.е. никаких удалений/созданий - заморозка и разморозка, не осталось ссылок на объект - значит его в принципе тронуть никто не сможет и в свое время будет собран GC, осталась ссылка - значит его кто-то может захотеть добавить, но он заморожен и кроме памяти ничего не жрет. Боитесь за память? - обнулите ссылку.


Последний раз редактировалось expl; 14.01.2012 в 23:03.
Старый 14.01.2012, 21:10
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 15  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
В идеале объекты лучше вообще не удалять, а использовать их повторно, на сколько это возможно. Конечно ненужные обьекты будет чистить GC, но на его работу тоже нужны ресурсы системы. Чем больше вы "удаляете" объектов - тем чаще запускаются алгоритмы GC.
__________________
Дети не должны знать о своих родителях

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

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

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


 


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


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