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

Вернуться   Форум Flasher.ru > Блоги > Jarproger

Оценить эту запись

Универсальный загрузчик объектов ver 2.0 (Library.as)

Запись от Jarproger размещена 21.06.2011 в 15:28

Учитывая пожелания из прошлой записи, я доработал класс загрузчика. Все переменные и функции прокомментированы, код тоже. Данный класс подгружает спрайты для изометрической игры и их xml описание, но я стремился сделать его более общим. Игра пока в разработке, выкладывать не буду.

Особенности:
1)Массовая подгрузка объектов.
2)Универсальное использование. Не нужно париться с Loader или URLLoader, помнить где какие события использовать.По классу объекта определяется, что ему нужно.
3)Есть возможность автоматически преобразовывать изображения без прозрачности в прозрачные с заменой определённого цвета на альфа-канал. Стандартные функции не представляют такой возможности.
4)Класс является открытым, я разрешаю изменять и использовать его в любых целях (в т.ч. коммерческих)

Код AS3:
var lib:Library=new Library();//Создаём библиотеку
lib.add("model.xml",XML);   //Добавляем любое количество внешних URL на ресурсы
lib.add("img.png",Bitmap); //Не забываем указывать класс, к которому требуется привести данные 
//...И так далее
 
lib.addEventListener(Event.COMPLETE,fun);//Событие конца загрузки
lib.load();//Стартуем :)
 
//...После наступления события COMPLETE
lib.data["model.xml"]  //Возвращает XML - объект
lib.data["img.png"]  //Возвращает Bitmap, который можно добавлять в список отображения. Или взять его bitmapData
Вложения
Тип файла: zip Library2.0.zip (4.4 Кб, 116 просмотров)
Всего комментариев 8

Комментарии

Старый 21.06.2011 16:21 gloomyBrain вне форума
gloomyBrain
 
Аватар для gloomyBrain
Быстро просмотрел код - не согласен со схемой.
1) можно загрузить спрайт и мувиклип, но нельзя звук или класс - что за ерунда? =)
2) нет какого-либо хранилища результатов (а значит, нет возможности выгрузить ненужное)
3) нет приоритетов
4) непонятно, что именно не загрузилось и почему (в случае ошибки)
5) метод createAlpha - вообще не отсюда. При чем тут загрузка ресурсов?
6) метод forEach не типизирован (то есть я не могу пробежаться по всем недогруженным текстам или по всем загруженным битмапам, а могу просто пройтись по всем)
7) нет возможности на лету добавлять ресурсы для загрузки. Нельзя остановить загрузку. Нет максимального числа потоков загрузки.

Я бы троечку поставил за архитектуру и 4 за исполнение =)

PS
Импорты обычно делаются до комментариев =)
Старый 21.06.2011 16:25 Rzer вне форума
Rzer
 
Аватар для Rzer
Еще нужно предусмотреть систему выдачи уникальных объектов: а то рисунок один, а объектов использующих их может быть несколько.
Старый 21.06.2011 16:55 Jarproger вне форума
Jarproger
 
Аватар для Jarproger
Rzer, немного не понял, что именно вы имеете в виду. Если используем рисунок, через bitmapData его могут использовать несколько Bitmap
Старый 21.06.2011 17:05 Jarproger вне форума
Jarproger
 
Аватар для Jarproger
gloomyBrain
1)В моем проекте это пока не требуется, но можно легко дописать Sound или любой другой бинарный тип данных в конструкцию case Sound - для URLLoader
Насчёт подгрузки классов - я немного не понял, вы имеете в виду MovieClip подгрузку и дальнейшее getClassByName (или как-то так)?
2)Он конечно есть. Массив loaders хранит все лоадеры, можно выгрузить ненужные. А потом очистка мусора уберет их из ОП
3)А зачем они? Задача - указать ресурсы и все подгрузить. Для игр они не нужны
4)Здесь вы правы - учту
5)Он для удобства сделан. Раз уж я его написал и отладил - пускай другие используют. Встроенной поддержки как в С++ в АС нету...
6,7)согласен

На счёт импортов до комментариев - лично мне кажеться это не удобным
Старый 21.06.2011 17:26 Rzer вне форума
Rzer
 
Аватар для Rzer
Если уж делаешь класс удобным, то не заставляй мучаться разработчика с BitmapData.

Код AS3:
lib.add("img.png",Bitmap);
- тем более тут приводишь к Bitmap.
Старый 21.06.2011 17:43 gloomyBrain вне форума
gloomyBrain
 
Аватар для gloomyBrain
отписал в личку
Старый 21.06.2011 18:13 fish_r вне форума
fish_r
 
Аватар для fish_r
С AVM1 он вообще не работает. Да?
Старый 21.06.2011 19:43 Jarproger вне форума
Jarproger
 
Аватар для Jarproger
Он под AS 3.0
 

 


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


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