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

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

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

Регистрация: Nov 2005
Сообщений: 1,155
не волнуйся, у меня в голове памяти не 64 кб.
А применительно
Код AS3:
var a:Object = new Object();
//было
//var b:Object = a;
//нужно
var b:Object = a.clone();
//метод есть для многих объектов, тогда не надо хвататься за голову, когда вдруг случайно что то не то...
a = null;

Старый 31.05.2009, 15:35
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 22  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
flash33, гы ... знаешь какой перерасход памяти будет?

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

блогер
Регистрация: Jul 2007
Адрес: Russia
Сообщений: 292
Записей в блоге: 5
Да я не про голову, а про ОЗУ. Могу сказать по опыту, что основные лики идут от bitmapData, а к ней никак нельзя clone, тогда точно все встанет. Пулы в помощь. Нужно просто качественно программировать, чтобы за всем уследить
__________________
Оптимизация производительности на уровне кода

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

Регистрация: Jan 2008
Адрес: Украина, Славутич
Сообщений: 646
Отправить сообщение для willis83 с помощью ICQ
Если объект удаляется значит ссылка ведёт в никуда. Смысл в том что программисту легче отследить использование не актуальных ссылок чем наличие левых листенеров и ссылок на класс который использоваться больше не будет, а если и будет то определится по новой с новыми свойствами. Всё же не помешало бы AS такая возможность.

Старый 31.05.2009, 15:39
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 25  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
flash33, + сколько нужно будет написать синхронизаций, когда будет такое:
Код AS3:
var b:Object = new Object();
function foo(a:Object):Void {
    a.x = 5;
}
foo( b );
в твоём варианте это будет так:
Код AS3:
var b:Object = new Object();
function foo(a:Object):Object {
    a.x = 5;
}
b = foo( b.clone() ).clone();
скорости теряется немерено.

Добавлено через 5 минут
willis83, одинаково муторно отслеживать и то и то. Вы просто не представляете, что это такое Вам кажется всё станет просто и прекрасно, жизнь начнёт бить ключом, и наступит мир во всём мире.

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

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

Регистрация: Nov 2005
Сообщений: 1,155
BlooDHounD, с чего ты взял, что я против использования ссылок? Используй их себе на доброе здоровье. Я говорю только о том, что нынешняя система не дпускает принудительной очистки памяти. Это налагает на программиста обязательство отслеживать используемую память, а программист - это не Господь Бог. Если бы существовал механизм принудительной очистки + обработка эксепшенов возникших как следствие обращения к null, то разработка больших приложений была бы гораздо легче.

Старый 31.05.2009, 16:11
Stargazer вне форума Посмотреть профиль Отправить личное сообщение для Stargazer Найти все сообщения от Stargazer
  № 27  
Ответить с цитированием
Stargazer

Регистрация: Nov 2008
Сообщений: 528
А я соглашусь с flash33.
P.S. А ещё - сделали бы они нормальные указатели...


Последний раз редактировалось Stargazer; 31.05.2009 в 16:14.
Старый 31.05.2009, 17:07
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 28  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Цитата:
Сообщение от flash33 Посмотреть сообщение
BlooDHounD, с чего ты взял, что я против использования ссылок? Используй их себе на доброе здоровье. Я говорю только о том, что нынешняя система не дпускает принудительной очистки памяти. Это налагает на программиста обязательство отслеживать используемую память, а программист - это не Господь Бог. Если бы существовал механизм принудительной очистки + обработка эксепшенов возникших как следствие обращения к null, то разработка больших приложений была бы гораздо легче.
Немного не в тему, но где-то близко: недавно пришлось познакомится с Gaia + построеному на ее основе огромному приложению... вот это мрак...
(взято из com.gaiaframework.assets.DisplayObjectAsset)
Код AS3:
override public function destroy():void 
{
	if (_loader != null)
	{
		_loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, onProgress);
		_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onComplete);
		_loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, onError);
		if (_loader.parent) _loader.parent.removeChild(_loader);
		try
		{
			_loader.unload();
		}
		catch (e:Error)
		{
			// fail gracefully
		}
		_loader = null;
	}
	super.destroy();
}
Это так, просто для общего представления...
Вот вам и "обработка исключений", и "очистка памяти"...

Тоесть, так чтобы стало понятнее:
- Loader.unload() не генерит исключения никогда.
- контент этого лоадера - всегда должен наследоваться от какого-то класса из фреймворка, ни один из этих дурацких классов не слушает Event.UNLOAD, соответственно, как вы можете видеть, никакой альтернативы этому событию не предтавляется (т.е. никаких колбеков / попыток как-то сказать контенту, что нужно начать выгружаться нету).

Я себе представляю, чего бы эти кренделя наваяли, будь бы у них возможность еще и за памятью самим следить...
__________________
Hell is the possibility of sanity

Старый 31.05.2009, 17:38
r_r_f_r вне форума Посмотреть профиль Отправить личное сообщение для r_r_f_r Найти все сообщения от r_r_f_r
  № 29  
Ответить с цитированием
r_r_f_r

Регистрация: Sep 2008
Адрес: Москва
Сообщений: 224
Цитата:
Сообщение от BlooDHounD Посмотреть сообщение
посмотрите на мои примеры повыше, и подумайте, что если у объекта будет структура немного посложнее, а что если надо будет сделать рекурсивную структуру? представьте работу 2х программистов, которым приходится работать с одним объектом, и один решает, что объект больше не нужен. а если таких программистов в 5? и это только верхушка айсберга.
А можно пример 5-и программистов работающих с одним объектом?

Старый 31.05.2009, 20:13
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 30  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
r_r_f_r, вопрос не ясен.

Stargazer, Вам тут не СИ

flash33, не вижу разницы в отслеживании ошибок, и отписки за собой всех событий. те же яйца, только вид сбоку. елси Вам очень хочется возиться с такой фигнёй, то можете использовать такой класс:
Код AS3:
import flash.utils.Dictionary;
 
class WeakRef {
 
	public function WeakRef(obj:*) {
		super();
		this._dic[ obj ] = true;
	}
 
	private const _dic:Dictionary = new Dictionary( true );
 
	public function get():* {
		for each ( value:* in this._dic ) {
			return value;
		}
		return null;
	}
 
}

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

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

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


 


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


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