Разработка на Flash (ActionScript 3.0), Полезности, тонкости. Среда для разработки игр. |
Здравствуйте, гость ( Вход | Регистрация )
Разработка на Flash (ActionScript 3.0), Полезности, тонкости. Среда для разработки игр. |
ALexusB |
Jan 13 2011, 12:06
Сообщение
#1
|
Разработчик ВМЛ-КВЛ Группа: Admin Сообщений: 16,241 Регистрация: 2-November 04 Пользователь №: 3 |
Совместно с темой "Разработка на PHP + MySQL" открываю зеркальную тему по Flash (ActionScript 3.0).
Путь в мир Flash лежит через две разные двери: 1. дизайнерский вход, когда в среде самого флэша рисуются на timeline мувиклипы и графика, потом это все кликами через менюхи собирается в некую анимацию и прочие заготовки для скриптинга 2. программистский вход - Flash или вообще Flex - просто среда компиляции, все пишется в коде, графика грузится на лету при запуске или линкуется в компиляции из внешних файлов. Я рисовать не умею, потому тут речь пойдет о двери №2, но линки будут и на рисование в самом флэше, т.к. в идеале нужно уметь все или иметь под рукой друга-художника. Для начала два полезных блога, одинаковой направленности - рецепты от их авторов. С чего начать изучать флэш (и чего по сути и достотчно и далее можно и не читать больше, а только практика и инет форумы) - это две книги издательства O'Reilly и вторая, названия забыл Они оч позхожи и на 90% пересекаются, но вторая идет последовательно, как ставить и начать. далее мануаль самого Адоба Тут просто читаем описания нужных там классов и методов и смотрим примеры. Ну и редактор нужен нормальный, т.к. штатный в IDE - фигня. Есть FlashDevelop - Начну я сам с тонкостей. Открыл тут для себя случайно (с переездом хостинга на более дешевый), что во флэш Loader.load() запущенные последовательно делают несколько отдельных каналов в терминах хостинга, то есть лимитируются хостингом (например, 10 каналов с 1 IP адреса). Так флэшка запущенная в окне браузера, работает не как 1 окно, а как 20-40 сразу. И получает обломы в виде ошибки 503 "Файл временно недоступен". То есть, он есть, но "не дам". На полноскоросных, с большими лимитами, хостингах это все не заметно. Так же это актуально для флэшей не "все в одном", а грузящих ресурсы (например ММО игры). Проявления: Флэшка виснет, не получает нужные ресурсы (пустые места, если нет проверок в коде). Требует 3-4 рефреша в браузере, что бы кэш браузера заполнился и тогда она все 100% ресурсов получит уже из него. Вариант - писать пользователям - жмите рефреш 3-4 раза - не вариант Спасения: 1. Хороший хостинг (хотя и там бывают упирания в потолок, а обнаружить их сложнее, так что это не выход) 2. Делать мало ресурсов, объединяя их в общие толстые файлы-библиотеки, но все равно быть уверенным, что они грузятся последовательно, я не параллельно. Или все сводить к одному файлу без ресурсов вообще. 3. Сделать свой лодер, который будет лимитировать каналы, например, до трех и ждать, когда они освободятся. Очень наглядно работу с ресурсами показывает браузер Firefox с плугином FireBug - там просто на графике (в виде диаграммы Ганта) видно, что и как грузится. Я добился смены графика "все и сразу" на "лесенку" и выживаемость флэшки с первой загрузки. То есть написал свой лодер и кэш внтури самого флэша. Но есть и другие способы. Из переписки со Stormit (автором хитри.ком): Лично я обычно не гружу всё и сразу, а добавляю загрузки в массив и гружу их по очереди. Есть ещё такой лоадер, может будет полезен: |
ALexusB |
Dec 25 2012, 22:56
Сообщение
#2
|
Разработчик ВМЛ-КВЛ Группа: Admin Сообщений: 16,241 Регистрация: 2-November 04 Пользователь №: 3 |
занялся конвертацией моей проги-говоруна для телефона.
Столкнулся с проблемой вставки кучи ресурсов внутрь флашки (там 263 файла мр3) ручками в библиотеке каждому поставить имя и галку выгруза в АС3 можно, но уж оч муторно, потом еще массив инитить в коде из этих разноименных классов. Можно написать на самом флаше скрипт, который вернет в трайс() код для вставки в код (тем более у меня все звуки описаны в ХМЛ, то есть циклом можно пройтись) [Embed(source="../RESOURCE/Sounds/Interface/click.mp3")] public static var SndClick:Class; Но такой подход приводит к двум вещам: 1. Для компиляции из Флаша нужен Flex SDK, его нужно ставить или из Flash Buildera взять (ссылку на его путь) 2. все грузится в первом кадре, то есть прелодер не работает, пока не загрузится все и сразу Как победить прелодер нашел статью (оч полезна, в конце есть пост с теорией) Но пока не проделал, тк мне милее способ, который хочу попробовать, нужно на втором кадре разместить клип, подсунуть ему класс мой. И вот в этот клас уже эмбедить все звуки. Тогда по идее клип загрузится именно в конце, а прелодер в первом кадре сразу. Но и путь из статьи хорош (если в флашке 1 кадр) ===== Особенность встройки ХМЛ, нужно писать [Embed(source="../RESOURCE/XML/SoundVoice1.xml", mimeType="application/octet-stream")] public static var xmlTest1:Class; Иначе трактуется неверно и данных в нем нет |
Текстовая версия | Сейчас: 27th April 2024 - 05:53 |