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

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

Даже в определениях идиотизма встречается идиотизм.
Цитата:
Идиотизм — устаревшее название идиомы
Идиома в программировании — понятие близкое к понятию шаблона проектирования. Идиомы представляют собой шаблоны проектирования, учитывающие специфику конкретного языка программирования и потому не универсальные. Это хорошие решения проектирования для конкретного языка или программной платформы.
Оценить эту запись

Идиотизмы: загрузка данных.

Запись от BlooDHounD размещена 07.06.2010 в 19:26
Обновил(-а) BlooDHounD 08.06.2010 в 01:10 (table)

для понимания материала необходимы следующие знания:
flash.display.Loader
flash.media.Sound
flash.net.URLLoader
flash.net.URLStream
flash.net.FileReference


все обязательно писали прелоадеры для различных этапов работы приложения. никто не обращал внимания на предоставленные интерфейсы для загрузки контента?
задача, делать прелоадер, который может отображать процесс загрузки любого ресурса. а таких у нас имеется аж 5:
  1. Loader
  2. Sound
  3. URLLoader
  4. URLStream
  5. FileReference
  6. AIR-классы не рассматриваются
так почему же они не имплеменят единый интерфес, существование, которого могло бы упростить жизнь таким существам как флэшеры?

рассмотрим каждый из классов в отдельности:

Название: table.gif
Просмотров: 340

Размер: 15.8 Кб

есть ещё особенность в том, что у ProgressEvent свойства bytesLoaded и bytesTotal мало того что read-write, так они ещё и имеют тип Number.

две моих любимых загадки:
  • зачем у URLLoader все свойства объявлены как переменные, а не через read-only accessor'ы?
  • почему у класса Sound свойство bytesTotal имеет тип int?

резюме: если Вам понадобится такая универсальная штука как прелоадер, то придётся написать обёртку с единым интерфейсом, под каждый из этик лоадеров, или быдлокодить =)
Всего комментариев 10

Комментарии

Старый 07.06.2010 19:34 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
NetConnection забыл
Старый 07.06.2010 19:36 BlooDHounD вне форума
BlooDHounD
 
Аватар для BlooDHounD
wvxvw, а он тут каким боком?
Старый 07.06.2010 19:42 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
А чем он по-сути от URLLoader отличается? С виду вообще делает то же самое - только не мониторит процесс загрузки, а так, все тот же HTTP.

EDIT: Я как бы подозреваю, что идея заключалась в том, чтобы сделать как в яве / сишарпе. Т.е. есть стримы, и есть более высокоуровневые объекты, которые стримами оперируют. Но как-то до конца это не сложилось.

EDIT2: Ну а так еще есть FileReferenceList, сокеты...
Обновил(-а) wvxvw 07.06.2010 в 19:49
Старый 07.06.2010 20:00 BlooDHounD вне форума
BlooDHounD
 
Аватар для BlooDHounD
wvxvw, у тебя опять сигареты закончились? ты ничего не путаешь?
ты кажется не понимаешь смысл топика. я собрал в кучу файлогрузщики. а не любой класс умеющий соединяться с сервером.
NetConnection - совсем из другой оперы. это обёртка вокруг сокета, для работы с rtmp, в первую очередь. а во вторую обёртка для работы с NetStream.
FileReferenceList работает с кучей FileReference и сам по себе ничего не грузит.
Обновил(-а) BlooDHounD 07.06.2010 в 20:08 (смайл забыл, Олег может шутку не понять =))
Старый 07.06.2010 20:06 incvizitor вне форума
incvizitor
 
Аватар для incvizitor
BlooDHounD, личная благодарность за то что подняли эту тему. Уже который месяц предмет почти ежедневной злобы...
Старый 07.06.2010 20:48 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
Это, как бы NetConnection работает с HTTP... как по-твоему всякие AMF библиотеки работают? А что меняет то, что он обертка? URLLoader - обертка для URLStream - ну и что?
Старый 07.06.2010 21:02 BlooDHounD вне форума
BlooDHounD
 
Аватар для BlooDHounD
олег, я говорю про интерфейсы классов со схожем назначением, не не всего связанно с сетью. NetConnection так же может устанавливать соединение с медиасервером и гонять RTMP-данные по сокету. RPC не относится к категории загрузки данных.
Старый 07.06.2010 21:31 Котяра вне форума
Котяра
 
Аватар для Котяра
Назвать это идиотизмом можно, но скорее это недостаточная проработка архитектуры фрэймворка (позволю себе назвать базовые классы фрэймворком)
Как следствие - классы спроектированы и работают нормально - каждый по себе, но вместе выглядят разрозненно,т.к. скорей всего, разрабатывались разными командами, не имеющими чётких указаний по именованию и типам.
В общем архитекторы должны были создать общий интерфейс, типа ILoader, но схалявили.
Старый 07.06.2010 23:07 BlooDHounD вне форума
BlooDHounD
 
Аватар для BlooDHounD
Котяра, одно дело когда когда они просто забыл сделать такой интерфейс, а другое что они сделали, так что простым наследованием этого не добиться.
Старый 22.03.2011 19:01 Psycho Tiger вне форума
Psycho Tiger
 
Аватар для Psycho Tiger
Кстати, у URLLoader`а нету дополнительного параметра context
Интересует, кто-нибудь делал свой ILoader и если делал, то как?
Логичным мне представляется делать композицию, но, с другой стороны, очень хочется унаследоваться...
 

 


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


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