Показать сообщение отдельно
Старый 29.05.2012, 20:48
PlutDem вне форума Посмотреть профиль Отправить личное сообщение для PlutDem Найти все сообщения от PlutDem
  № 6  
Ответить с цитированием
PlutDem
 
Аватар для PlutDem

Регистрация: Feb 2012
Сообщений: 212
Цитата:
Сообщение от elder_Nosferatu Посмотреть сообщение
Если высоздали BitmapData и забыли о нем, но хотя бы одна ссылка на него все же существует, тогда создание еще одного экземпляра BitmapData неоправдано увеличит расход памьяти. Так что лучше создать по экземпляру нужных BitmapData (если они постоянно используются, а не позказываются, скажем, в финальных титрах) и передавать ссылки на них нужным Bitmap-ам.
В том то вся и проблема, что так я сделать не могу. Набор картинок очень большой и загрузить его целиком в память нельзя, а как подгружать их избирательно я не представляю.
Цитата:
Сообщение от elder_Nosferatu Посмотреть сообщение
Все BitmapData можно собрать в одном месте (склад текстур )
Вот я в предыдущем своем посте нечто подобное предлагал:
Код AS3:
public class imgStorage {
 
	private static var _Orange_1:BitmapData;
 
	static function get Orange_1():BitmapData {
 
		if (!_Orange_1)
			_Orange_1 = new Background.Orange_1()// если BitmapData нет то создаем ее из класса Embed
 
		return _Orange_1;
	}
}
Ну и можно, наверное, сделать нечто вроде счетчика текущих Bitmap использующих единую BitmapData, расширить класс Bitmap и при создании/удалении Bitmap увеличивать или уменьшать значение счетчика. Если значение счетчика будет == 0, то нужно будет удалить ссылку в imgStorage на эту BitmapData.
Но пока что способ этот выглядит очень криво и деревянно.