Просмотр полной версии : "Проба пера" в написании классов
Существует тысяча скролбаров, но юзать чужой както западло. Написал свой. Вроде работает, хотя конечно можно придумать варианты, в которых будет глючить.
Инициализируется в две строки. Описание к классу есть (внутри самого *.as). Прилагается примерчик (www.myxus.pr0head.com/vault/_test.rar). 12Кб (flash 8).
Прошу, если не лень, указать мне на нелепости и кривости продукта.
Или я тупой или...
"Line 1: Classes may only be defined in external ActionScript 2.0 class scripts.
class TMovieWithParent extends MovieClip {" - вот что вывелось.
В архиве есть этот класс...
Что-то кода уж сильно много, для простого скроллера.
Он не совсем простой.. Он должен быть довольно надежный, довольно гибкий в настройках. Я его использую в "резиновом" дизайне (там есть Math.round() координат для корректного отображения и проч.).
Первый глюк который сразу обнаружился, это то, что нету обработки события onReleaseOutside, и скрол продолжает скролить когда отпускаешь кнопку мыша за пределами скрола, благо он такой тоненький, что глюк вылезает сразу. И на самом деле применение классов для скролла это не лучший вариант, скролл это скорее компонент, мувиклип с параметрами, а код для него нисколько не сложно написать на AS1, не такой громоздкий, и при этом сохраняющий нужную тебе гибкость. Я тоже как-то озадачился созданием скролла, который бы можно было использовать неоднократно. Руки не дошли до написания полноценного компонента, но кое-какой клип с кодом я все же сделал, и до сих пор использую его иногда, благо поменять параметры это быстро. Так что если тебя интересует создание универсального скролла, можешь посмотреть мой вариант, он более простой, и в тоже время его не сложно прикрутить для прокрутки произвольного клипа.:)
ну что же, кода не намного меньше, хотя в чем то этот скролл более правильный.
мой код тоже - AS1, только он выделен в класс чтобы не пугать конечного разработчика. А релиз аутсайд - это не большая недоработка, согласись.
В чем, как мне кажется, преимущества моего класса:
- инициализируется 3-мя строчкамии привязывается к любому объекту.
- грузит скролл из внешнего клипа, так что не надо вставлять элементы скрола в библиотеку
- реагирует на любую облать (ползунок, стрелочки, подложка ползунка, мышь)
- возможность задать высоту строки текста, так что колесо мыши и стрелочки будут проматывать целое число строк
- возможность задать отступ скрола от скролящегося мува, так что при реинициализации скроллбара (например при перезагрузке содержимого скролящегося клипа) все ранее заданные параметры будут применены.
но я еще знаю пару усовершеностований. Например - толщина скролбара: она рассчитывается исходя из высоты скролящегося клипа так, что соблюдаются пропорции исходного клипа скролбара. Однако можно сделать мод, в котором ширина скролбара будет постоянной, а вот его высота будет перерасчитываться.
Спасибо за ценный коммент.
:-)
мой код тоже - AS1, только он выделен в класс чтобы не пугать конечного разработчика. Честно говоря не понял, что это означает. Главное это четко понимать, чего ты хочешь получить в результате. Можно такого навертеть, что все будет супермега флексабильное и все такое, только вот применить это на практике будет проблематично. Ты никогда не задумывался почему стандартный компоненты значительно увеличивают вес ролика? Наверно потому что они имеют кучу насторек, и они универсальные, однако написать то что тебе надо для конкретного проекта зачастую бывает проще, чем внедрять тяжеловесный компонент и его настраивать, а потом он еще начнет глючить в непредвиденной ситуации. Вообще это ты здорово сделал, что так серьозно подошел к написанию обычного скролла, тут главное не переусердствовать, не слишком увлекаться добавлением новых возможностей, которые в конечном итоге могут и не понадобиться. Точнее усилия приложенные к разработке оных не оправдают себя.
А релиз аутсайд - это не большая недоработка, согласись. Не соглашусь, эта "небольшая" недоработка первым же делом бросилась в глаза и испортила первое впечатление.:mosking:
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.