![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Написал компонент-просмотрщик изображений.
Выкладываю его в надежде на то, что он Вам понравится. Пишите замечания, возможные огрехи. Флэшер я с опытом примерно год, поэтому данная работа является и моим коэффициентом роста, так сказать. В данный момент пишу свою онлайн-игру. Ноутбук сломался, а пока он в ремонте решил так развлечься. Изображения, которые нужно просмотреть записываются в файле .xml, который передаётся данному компоненту. Рассмотрим как следует обращаться к этому компоненту: import ImgXmlScroll; private var myComponent:ImgXmlScroll = new ImgXmlScroll("files.xml", "mask.png", 1.4, 5, 100, 350); "files.xml" - путь к файлу .xml, в котором лежат имена файлов и их описания. обязательный параметр. "mask.png" - путь к файлу .png, который служит защитной маской изображений. если маска не обязательна, можно задать этот параметр так "". Или не писать его вообще, если следующие параметры тоже не нужно менять 1.4 - отношение длины изображения к его высоте(служит для их корректировки). Можно не задавать. По умолчанию равен 1,4 5 - количество отображаемых картинок на экране в полосе прокрутки. По умолчанию равно 4 100 - ширина отображаемых картинок в полосе прокрутки. По умолчанию равно 100 350 - ширина изображения в окне просмотра. По умолчанию равно 350 менять параметры компонента в ходе работы можно следующим образом: addChild(myComponent); // myComponent.y = 60; //поменять местоположение по оси "y" myComponent.x = 100; //поменять местоположение по оси "x" myComponent.picHeight = 100; //поменять ширину изображений в строке прокрутки myComponent.picWidth = 50; //поменять высоту изображений в строке прокрутки myComponent.imageWidth = 200; //поменять ширину изображения в окне просмотра myComponent.imageHeight = 150; //поменять ширину изображения в окне просмотра myComponent.picCount = 10;//поменять количество отображаемых на экране изображений в полосе прокрутки При настройке компонента можно пользоваться константами: 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;
__________________
так то оно так, но ежели иначе - так вот тебе и пожалуста Последний раз редактировалось sabarn; 26.10.2009 в 17:39. Причина: Добавил демку |
|
|||||
|
Шаг вправо, шаг влево - расстрел. - это конечно красиво звучит, но допустимые границы сделаны для того чтоб изображение было ВИДИМЫМ на экране. Чтоб микроскопическим не было и в десять экранов тоже
__________________
так то оно так, но ежели иначе - так вот тебе и пожалуста |
|
|||||
|
Дему бы увидеть "вживую".
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Сейчас выложу дему
__________________
так то оно так, но ежели иначе - так вот тебе и пожалуста |
|
|||||
|
вот демка
__________________
так то оно так, но ежели иначе - так вот тебе и пожалуста |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Я бы не стал называть это "компонентом" — это скорее некая тестовая реализация некой галереи)
__________________
Отряд Котовскага |
|
|||||
|
В целом забавная хрень, наверно будет пользоваться популярностью у новичков.
Как заметил dimarik - полное отсутствие ООП, "правила хорошего тона" в коде отсутствуют (вызов super(), this используется где-то, а где-то не используется и тому подобное), нет комментариев к паблик методам, public const вроде почему то не static...
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Psycho Tiger, конечно подобные замечания имеют смысл. Но хочу оговорить что упор ставился на алгоритмы. и сделано за три дня.
Коменты отсутствуют, так как названия переменных говорят за себя сами. Буду очень признателен, если скажете в чём заключается отсутствие ООП Котяра, всё таки это компонент, так как реализован именно как модуль P.s. извиняюсь, но немного странно получать замечания об отсутствии в коде ООП от человека, который спрашивал "а зачем нужны интерфейсы?"
__________________
так то оно так, но ежели иначе - так вот тебе и пожалуста Последний раз редактировалось sabarn; 26.10.2009 в 19:35. |
|
|||||
|
Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
|
Про отсутствие ООП – наверное, имелось в виду то, что логично было бы разбить код на несколько классов (как минимум, вынести в отдельный класс работу с данными). А у вас всё в одном, что очень серьёзно затрудняет понимание кода и его дальнейшее расширение (наследование). Вернее сказать, в том виде, в каком он сейчас, ваш класс абсолютно нерасширяем, а это не есть хорошо.
Плюс – непонятные имена переменных (bzhnc, например), кое-где отсутствует типизация. Ещё я не увидел геттеров. Сеттеры есть, а если я захочу сделать picHeight += 20? Также не радуют обработчики событий в 100 с лишним строк (myEnterFrame). Как правило, такие методы можно разбить на несколько более простых, что существенно облегчит понимание и отладку. А насчёт комментариев – может быть, сейчас для вас имена переменных и говорят сами за себя. Мне же, например, понять, что есть arrUil01, очень сложно. И вам через полгода, уверен, будет не менее сложно. Поэтому комментировать очень важно, особенно если речь идёт о совместной разработке либо опубликовании кода. Причём комментировать как можно подробнее, особенно интерфейсную часть. Хоть и уходит на это чуть ли не треть от общего времени Неплохой стандарт задаёт ASDoc, к тому же, можно автоматом доки сгенерить, а это уже приятно.В общем, это действительно пока не компонент. Прототип компонента – да, но работы ещё очень много. Только не обижайтесь, пожалуйста, на критические отзывы – вы же сами попросили) |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:25. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| компонент OpenSource |
|
|