|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
|
Wolsh, спасибо.
caseyryan, спасибо. Я уже методом тыка, совмещённым со свойством nativePath, это место установил Туда спрайтшиты складываю. Сейчас подумываю приспособить уже имеющийся файл-менеджер для загрузки картинок. Цитата:
__________________
Не сломано - не чини! |
|
|||||
Цитата:
Посмотри как в старлинге устроен AssetManager. Это конечно не подойдет тебе с простым дисплей листом на 100%, но может навести на некоторые полезные мысли. Он умеет сам определять что за вид ресурса перед ним (правда простой проверкой расширения, но в обычном случае этого достаточно, если тебе не требуется определять ресурс без расширения, чтением байт заголовков), и сам раскладывает их по нужным массивам
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
|
Стоп. Я тогда всё-таки не понимаю. Чем такой метод лучше, чем [Embed]? Я-то думал, ничего вообще никуда не грузить на старте, а в момент, когда непосредственно требуется отобразить нужную картинку, программа обращается к ней через Loader, загружает и выводит. Когда требуется следующая, аналогично грузится она.
__________________
Не сломано - не чини! |
|
|||||
Embed вшивает ресурс в swf, увеличивая его конечный размер, например. А Loader загружает ресурс при исполнении.
__________________
while(live()) { hope(); } |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
и в чем разница грузить большую флэшку либо грузить легкую флэшку и потом долго тянуть все ресурсы?Еще раз: грузить надо тогда,когда это требуется и только то,что требуется.
|
|
|||||
Ну, это зависит от задачи.. А так то да, если подгружать, потихонечку надо. Вообще картиночки можно и сразу после загрузки подгружать. Смысл в том, что флешка уже будет работать и пользователь пока может почитать че-нить, как-то уже взаимодействовать даже быть может. Пока контент грузится
__________________
while(live()) { hope(); } |
|
|||||
Цитата:
2) Способом с подгрузкой ты можешь загрузить в каждый момент вермени только те ресурсы, которые требуются в данный момент. Например ты загрузил игру и игроку доступен только первый уровень. Зачем тогда ему грузить второй, третий.. десятый и т.д. 3) Загруженные ресурсы очень сильно жрут оперативку. В случае с Embed, они будут сразу все загружены и будут висеть в памяти. Есть ещё такой момент, на некоторых операционных системах (например андроид) если приложение не ответило на запросы системы в течение какого-то времени, оно считается неактивным и убивается. Хотя такое есть и в винде, но там интервал времени ожидания больше. Embed может вызвать такое поведение.
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
Регистрация: Jan 2012
Сообщений: 836
|
caseyryan Подойдет ли вариант, с ручной деактивацией ресурсов в менеджере? Например если какой-то объект не был активен в течении длительного времени. То есть поставить таймер на такие штуки и если они долго не активны, очищаем из менеджера свойства этого объекта. А потом когда опять будет вызов, подгружать заново, ибо Null. Тогда по идее вообще память будет по минимуму нагружаться.
|
|
|||||
Цитата:
Или звук. Может быть это звук удара, а игрок долго никого не бьет. Как ты определишь, нужно его считать неактивным, или нет? Ну и плюс, такое непредсказуемое поведение чревато внезапными включениями сборщика мусора, который будет подтормаживать весь процесс. Тут главное, чтобы оптимизация не доходила до маразма. Нам (современным программистам) повезло, у нас есть в распоряжении довольно много оперативной памяти и процессорных ресурсов. Можно себе позволить не оптимизировать вообще всё и вся. Я думаю, достаточно лишь заранее условно разделить ресурсы (вручную) на те, которые могут потребоваться в данный момент, и те, которые точно не нужны здесь и сейчас. И по этому принципу всё загружать или разгружать
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
|
Друзья!
Вот что у меня получилось по части использования loader-ов. Файл находит по адресу и даже вроде как загружает. Но я никак не могу сообразить, как мне теперь его вернуть. public function getLoadedAsset(fileID: String) : Bitmap { var file: File = File.applicationDirectory.resolvePath("assets" + File.separator + "backgrounds" + File.separator + fileID + PNG); var request: URLRequest = new URLRequest(file.url); trace(file.url); // Показывает правильный путь var loader: Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.load(request); trace(loader.content); // null } private function completeHandler(e: Event) : void { var loader: Loader = Loader(e.target.loader); var image: Bitmap = Bitmap(loader.content); trace(image); // [object Bitmap] }
__________________
Не сломано - не чини! |
Часовой пояс GMT +4, время: 16:56. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|