Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Хранение и вывод иллюстраций для игры (http://www.flasher.ru/forum/showthread.php?t=214902)

Wolsh 08.05.2018 04:19

Цитата:

Почему-то в хелпе Adobe-овском об этом ни слова
Потому что адобовский хелп про то, как всё работает, а не про твою игру ;)
В обработчике нажатия на кнопку ты отписываешься от события? А если кнопка больше не нужна? А если нужна? Так же и с лоадером — кто сказал, что он может грузить только один файл? Тогда про что должен писать хелп? Это твое личное дело, отписываться или использовать лоадер дальше.

Appleman 08.05.2018 10:10

Наверное, правильнее будет сказать, что хелп "не для ламерья" ;)

Я вспомнил, у меня так давеча с таймерами было, когда в теле метода каждый раз создавался новый таймер. Полагаю, при последовательной загрузке файлов, вполне можно создать лоадер на уровне класса, один раз повесить слушатели, а потом убрать, когда вся грядка будет загружена.

Tails 08.05.2018 11:26

Адобовский хелп всем хелпам хелп. На русском, всё расписано в деталях. Вот бы все хелпы были такими. :)

caseyryan 08.05.2018 11:32

Цитата:

Полагаю, при последовательной загрузке файлов, вполне можно создать лоадер на уровне класса, один раз повесить слушатели, а потом убрать, когда вся грядка будет загружена.
логично
Но если ты будешь использовать локальный слушатель, и обработчик сделаешь анонимный, то время жизни слушателя, вместе с обработчиком будет равно времени его использования. Как только все загрузилось (например картинка) ты передал ее куда-то, не сохраняя ссылок на загрузчик, загрузчик больше не нужен и он становится доступным для сборщика мусора.
Но как разработчик игр с 9 летним стажем, могу посоветовать максимально использовать одни и те же ресурсы ;) Делай пулы объектов, не удаляй ничего без надобности. Лучше заведи себе привычку делать ресет состояний старых объектов, чем создавать новые. Новые создавай только в крайнем случае, когда полноценный ресет сделать очень трудно (даже не могу себе представить такой ситуации, если все сделано правильно), либо объектов в пуле просто не хватает.
Даже если ты грамотно от всего отписываешься, и сборщик все зачищает по феншую, весь этот процесс приводит к фризам в игре. Если нужен плавный геймплей, то это будет большой такой занозой в заднице, потому что сборщик может начать сборку в самый неожиданный момент
Цитата:

Адобовский хелп всем хелпам хелп. На русском, всё расписано в деталях. Вот бы все хелпы были такими.
Согласен. Если почитаешь хелп джавы, к примеру, сразу поймешь, на сколько круто адобовцы постарались над своим хелпом

ZergMaster 08.05.2018 11:50

Цитата:

Сообщение от Tails (Сообщение 1205141)
Адобовский хелп всем хелпам хелп. На русском, всё расписано в деталях. Вот бы все хелпы были такими. :)

+стопицот!

Appleman 08.05.2018 14:08

Поясни плиз:

Цитата:

Сообщение от caseyryan (Сообщение 1205143)
логично
Но если ты будешь использовать локальный слушатель, и обработчик сделаешь анонимный

Не понял про анонимный обработчик. Что имеется в виду?

Цитата:

Лучше заведи себе привычку делать ресет состояний старых объектов, чем создавать новые.
Не понял на счёт ресета состояний. Ты имеешь в виду, не удалять ставшие ненужными asset-ы из программы для их возможного последующего использования? Я как раз наоборот планировал: открываем локацию - загрузили с диска пачку картинок для неё. Вышли - всё поубивали на фиг, чтобы память не занимать.

caseyryan 08.05.2018 17:21

Цитата:

Я как раз наоборот планировал: открываем локацию - загрузили с диска пачку картинок для неё. Вышли - всё поубивали на фиг, чтобы память не занимать.
Я не говорю, что все нужно сохранять, если картинки больше не нужны, и занимают много памяти, то можно и грохнуть. Но если что-то, будет использоваться в будущем, не нужно его убивать.
Цитата:

Не понял про анонимный обработчик. Что имеется в виду?
Код AS3:

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event) {
    // анонимный обработчик
});


Appleman 08.05.2018 17:52

caseyryan, спасибо, понятно.


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

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