![]() |
Выкладываю OpenSource своего компонента!
Вложений: 2
Написал компонент-просмотрщик изображений.
Выкладываю его в надежде на то, что он Вам понравится. Пишите замечания, возможные огрехи. Флэшер я с опытом примерно год, поэтому данная работа является и моим коэффициентом роста, так сказать. В данный момент пишу свою онлайн-игру. Ноутбук сломался, а пока он в ремонте решил так развлечься. Изображения, которые нужно просмотреть записываются в файле .xml, который передаётся данному компоненту. Рассмотрим как следует обращаться к этому компоненту: Код AS3:
"files.xml" - путь к файлу .xml, в котором лежат имена файлов и их описания. обязательный параметр. "mask.png" - путь к файлу .png, который служит защитной маской изображений. если маска не обязательна, можно задать этот параметр так "". Или не писать его вообще, если следующие параметры тоже не нужно менять 1.4 - отношение длины изображения к его высоте(служит для их корректировки). Можно не задавать. По умолчанию равен 1,4 5 - количество отображаемых картинок на экране в полосе прокрутки. По умолчанию равно 4 100 - ширина отображаемых картинок в полосе прокрутки. По умолчанию равно 100 350 - ширина изображения в окне просмотра. По умолчанию равно 350 менять параметры компонента в ходе работы можно следующим образом: Код AS3:
При настройке компонента можно пользоваться константами: myComponent.KOEFFDEFAULT - отношение по умолчанию ширины к высоте. равно 1.4; myComponent.IMAGEMINX - минимальное значение ширины изображения в окне просмотра. равно 200; myComponent.IMAGEMINY - минимальное значение высоты изображения в окне просмотра. равно 142.85714285714286; myComponent.IMAGEMAXX - максимальное значение ширины изображения в окне просмотра. равно 600; myComponent.IMAGEMAXY - максимальное значение высоты изображения в окне просмотра. равно 428.5714285714286; myComponent.IMAGEDEFAULTX - значение по умолчанию ширины изображения в окне просмотра. равно 350; myComponent.IMAGEDEFAULTY - значение по умолчанию высоты изображения в окне просмотра. равно 250 myComponent.PICMINX - минимальное значение ширины изображения в полосе прокрутки. равно 20; myComponent.PICMINY - минимальное значение высоты изображения в полосе прокрутки. равно 14.285714285714286; myComponent.PICMAXX - максимальное значение ширины изображения в полосе прокрутки. равно 200; myComponent.PICMAXY - максимальное значение высоты изображения в полосе прокрутки. равно 142.85714285714286; myComponent.PICDEFAULTX - значение по умолчанию ширины изображения в полосе прокрутки. равно 100; myComponent.PICDEFAULTY - значение по умолчанию высоты изображения в полосе прокрутки. равно 71.42857142857143; myComponent.PICCOUNTMIN - минимальное количество отображаемых картинок на экране в полосе прокрутки. равно 1; myComponent.PICCOUNTMAX - максимальное количество отображаемых картинок на экране в полосе прокрутки. равно 20; myComponent.PICCOUNTDEFAULT - значение по умолчанию количества отображаемых картинок на экране в полосе прокрутки. равно 4; |
Все в одном флаконе. Браво! Шаг вправо, шаг влево - расстрел.
|
Шаг вправо, шаг влево - расстрел. - это конечно красиво звучит, но допустимые границы сделаны для того чтоб изображение было ВИДИМЫМ на экране. Чтоб микроскопическим не было и в десять экранов тоже
|
Дему бы увидеть "вживую".
|
Сейчас выложу дему
|
Вложений: 1
вот демка
|
Я бы не стал называть это "компонентом" — это скорее некая тестовая реализация некой галереи)
|
В целом забавная хрень, наверно будет пользоваться популярностью у новичков.
Как заметил dimarik - полное отсутствие ООП, "правила хорошего тона" в коде отсутствуют (вызов super(), this используется где-то, а где-то не используется и тому подобное), нет комментариев к паблик методам, public const вроде Код AS3:
|
Psycho Tiger, конечно подобные замечания имеют смысл. Но хочу оговорить что упор ставился на алгоритмы. и сделано за три дня.
Коменты отсутствуют, так как названия переменных говорят за себя сами. Буду очень признателен, если скажете в чём заключается отсутствие ООП Котяра, всё таки это компонент, так как реализован именно как модуль P.s. извиняюсь, но немного странно получать замечания об отсутствии в коде ООП от человека, который спрашивал "а зачем нужны интерфейсы?" |
Про отсутствие ООП – наверное, имелось в виду то, что логично было бы разбить код на несколько классов (как минимум, вынести в отдельный класс работу с данными). А у вас всё в одном, что очень серьёзно затрудняет понимание кода и его дальнейшее расширение (наследование). Вернее сказать, в том виде, в каком он сейчас, ваш класс абсолютно нерасширяем, а это не есть хорошо.
Плюс – непонятные имена переменных (bzhnc, например), кое-где отсутствует типизация. Ещё я не увидел геттеров. Сеттеры есть, а если я захочу сделать picHeight += 20? Также не радуют обработчики событий в 100 с лишним строк (myEnterFrame). Как правило, такие методы можно разбить на несколько более простых, что существенно облегчит понимание и отладку. А насчёт комментариев – может быть, сейчас для вас имена переменных и говорят сами за себя. Мне же, например, понять, что есть arrUil01, очень сложно. И вам через полгода, уверен, будет не менее сложно. Поэтому комментировать очень важно, особенно если речь идёт о совместной разработке либо опубликовании кода. Причём комментировать как можно подробнее, особенно интерфейсную часть. Хоть и уходит на это чуть ли не треть от общего времени :) Неплохой стандарт задаёт ASDoc, к тому же, можно автоматом доки сгенерить, а это уже приятно. В общем, это действительно пока не компонент. Прототип компонента – да, но работы ещё очень много. Только не обижайтесь, пожалуйста, на критические отзывы – вы же сами попросили) |
| Часовой пояс GMT +4, время: 15:22. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.