Даже в определениях идиотизма встречается идиотизм.
Цитата:
Идиотизм — устаревшее название идиомы
Идиома в программировании — понятие близкое к понятию шаблона проектирования. Идиомы представляют собой шаблоны проектирования, учитывающие специфику конкретного языка программирования и потому не универсальные. Это хорошие решения проектирования для конкретного языка или программной платформы.
Идиома в программировании — понятие близкое к понятию шаблона проектирования. Идиомы представляют собой шаблоны проектирования, учитывающие специфику конкретного языка программирования и потому не универсальные. Это хорошие решения проектирования для конкретного языка или программной платформы.
Идиотизмы: загрузка данных.
для понимания материала необходимы следующие знания:
flash.display.Loader
flash.media.Sound
flash.net.URLLoader
flash.net.URLStream
flash.net.FileReference
все обязательно писали прелоадеры для различных этапов работы приложения. никто не обращал внимания на предоставленные интерфейсы для загрузки контента?
задача, делать прелоадер, который может отображать процесс загрузки любого ресурса. а таких у нас имеется аж 5:
- Loader
- Sound
- URLLoader
- URLStream
- FileReference
- AIR-классы не рассматриваются
рассмотрим каждый из классов в отдельности:
есть ещё особенность в том, что у ProgressEvent свойства bytesLoaded и bytesTotal мало того что read-write, так они ещё и имеют тип Number.
две моих любимых загадки:
- зачем у URLLoader все свойства объявлены как переменные, а не через read-only accessor'ы?
- почему у класса Sound свойство bytesTotal имеет тип int?
резюме: если Вам понадобится такая универсальная штука как прелоадер, то придётся написать обёртку с единым интерфейсом, под каждый из этик лоадеров, или быдлокодить =)
Всего комментариев 10
Комментарии
![]() ![]() |
|
NetConnection забыл
![]() |
![]() ![]() |
|
wvxvw, а он тут каким боком?
|
![]() ![]() |
|
А чем он по-сути от URLLoader отличается? С виду вообще делает то же самое - только не мониторит процесс загрузки, а так, все тот же HTTP.
EDIT: Я как бы подозреваю, что идея заключалась в том, чтобы сделать как в яве / сишарпе. Т.е. есть стримы, и есть более высокоуровневые объекты, которые стримами оперируют. Но как-то до конца это не сложилось. EDIT2: Ну а так еще есть FileReferenceList, сокеты... |
|
Обновил(-а) wvxvw 07.06.2010 в 19:49
|
![]() ![]() |
|
wvxvw, у тебя опять сигареты закончились? ты ничего не путаешь?
![]() ты кажется не понимаешь смысл топика. я собрал в кучу файлогрузщики. а не любой класс умеющий соединяться с сервером. NetConnection - совсем из другой оперы. это обёртка вокруг сокета, для работы с rtmp, в первую очередь. а во вторую обёртка для работы с NetStream. FileReferenceList работает с кучей FileReference и сам по себе ничего не грузит. |
|
Обновил(-а) BlooDHounD 07.06.2010 в 20:08
(смайл забыл, Олег может шутку не понять =))
|
![]() ![]() |
|
BlooDHounD, личная благодарность за то что подняли эту тему. Уже который месяц предмет почти ежедневной злобы...
|
![]() ![]() |
|
Это, как бы NetConnection работает с HTTP... как по-твоему всякие AMF библиотеки работают? А что меняет то, что он обертка? URLLoader - обертка для URLStream - ну и что?
|
![]() ![]() |
|
Котяра, одно дело когда когда они просто забыл сделать такой интерфейс, а другое что они сделали, так что простым наследованием этого не добиться.
|
Последние записи от BlooDHounD
- Обновление blooddy_crypto.swc до версии 0.5.1 (31.03.2016)
- Кто не успел - тот опоздал (19.04.2011)
- Обновление blooddy_crypto.swc до версии 0.3.1 (29.11.2010)
- blooddy_crypto.swc теперь умеет JSON (13.10.2010)
- Загадочный CommaExpression (06.09.2010)