PDA

Просмотр полной версии : "Проба пера" в написании классов


MyXus
16.04.2006, 20:17
Существует тысяча скролбаров, но юзать чужой както западло. Написал свой. Вроде работает, хотя конечно можно придумать варианты, в которых будет глючить.

Инициализируется в две строки. Описание к классу есть (внутри самого *.as). Прилагается примерчик (www.myxus.pr0head.com/vault/_test.rar). 12Кб (flash 8).

Прошу, если не лень, указать мне на нелепости и кривости продукта.

Ostgur
16.04.2006, 22:41
Или я тупой или...
"Line 1: Classes may only be defined in external ActionScript 2.0 class scripts.
class TMovieWithParent extends MovieClip {" - вот что вывелось.

MyXus
16.04.2006, 22:47
В архиве есть этот класс...

RonEXI
19.04.2006, 16:08
Что-то кода уж сильно много, для простого скроллера.

MyXus
19.04.2006, 16:28
Он не совсем простой.. Он должен быть довольно надежный, довольно гибкий в настройках. Я его использую в "резиновом" дизайне (там есть Math.round() координат для корректного отображения и проч.).

Madasan
20.04.2006, 01:35
Первый глюк который сразу обнаружился, это то, что нету обработки события onReleaseOutside, и скрол продолжает скролить когда отпускаешь кнопку мыша за пределами скрола, благо он такой тоненький, что глюк вылезает сразу. И на самом деле применение классов для скролла это не лучший вариант, скролл это скорее компонент, мувиклип с параметрами, а код для него нисколько не сложно написать на AS1, не такой громоздкий, и при этом сохраняющий нужную тебе гибкость. Я тоже как-то озадачился созданием скролла, который бы можно было использовать неоднократно. Руки не дошли до написания полноценного компонента, но кое-какой клип с кодом я все же сделал, и до сих пор использую его иногда, благо поменять параметры это быстро. Так что если тебя интересует создание универсального скролла, можешь посмотреть мой вариант, он более простой, и в тоже время его не сложно прикрутить для прокрутки произвольного клипа.:)

MyXus
20.04.2006, 01:57
ну что же, кода не намного меньше, хотя в чем то этот скролл более правильный.
мой код тоже - AS1, только он выделен в класс чтобы не пугать конечного разработчика. А релиз аутсайд - это не большая недоработка, согласись.
В чем, как мне кажется, преимущества моего класса:
- инициализируется 3-мя строчкамии привязывается к любому объекту.
- грузит скролл из внешнего клипа, так что не надо вставлять элементы скрола в библиотеку
- реагирует на любую облать (ползунок, стрелочки, подложка ползунка, мышь)
- возможность задать высоту строки текста, так что колесо мыши и стрелочки будут проматывать целое число строк
- возможность задать отступ скрола от скролящегося мува, так что при реинициализации скроллбара (например при перезагрузке содержимого скролящегося клипа) все ранее заданные параметры будут применены.

но я еще знаю пару усовершеностований. Например - толщина скролбара: она рассчитывается исходя из высоты скролящегося клипа так, что соблюдаются пропорции исходного клипа скролбара. Однако можно сделать мод, в котором ширина скролбара будет постоянной, а вот его высота будет перерасчитываться.

Спасибо за ценный коммент.
:-)

Madasan
20.04.2006, 02:17
мой код тоже - AS1, только он выделен в класс чтобы не пугать конечного разработчика. Честно говоря не понял, что это означает. Главное это четко понимать, чего ты хочешь получить в результате. Можно такого навертеть, что все будет супермега флексабильное и все такое, только вот применить это на практике будет проблематично. Ты никогда не задумывался почему стандартный компоненты значительно увеличивают вес ролика? Наверно потому что они имеют кучу насторек, и они универсальные, однако написать то что тебе надо для конкретного проекта зачастую бывает проще, чем внедрять тяжеловесный компонент и его настраивать, а потом он еще начнет глючить в непредвиденной ситуации. Вообще это ты здорово сделал, что так серьозно подошел к написанию обычного скролла, тут главное не переусердствовать, не слишком увлекаться добавлением новых возможностей, которые в конечном итоге могут и не понадобиться. Точнее усилия приложенные к разработке оных не оправдают себя.
А релиз аутсайд - это не большая недоработка, согласись. Не соглашусь, эта "небольшая" недоработка первым же делом бросилась в глаза и испортила первое впечатление.:mosking: