Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Скроллинг (http://www.flasher.ru/forum/showthread.php?t=130837)

Ануб 06.10.2009 20:00

Скроллинг
 
Доброго времени суток, ищу хороший скроллер, нашёл прекрасный пример здесь: http://flasher.ru/forum/showpost.php...68&postcount=4
Но вот незадача: он прибит гвоздями к конкретной цели, маске и скроллу. Есть ли этот скролл или похожие, но реализованные в виде набора функций? В проекте несколько окон с прокручиваемым содержимым и важно, чтобы функцию можно было нацелить на разные объекты и маски (в том числе маски разных габаритов).
Заранее спасибо.

mooncar 06.10.2009 20:14

Так что для ваших целей не так в решении, которое любезно предложил Wolsh?

Ануб 06.10.2009 20:26

Мне нужно решение, инициализирующее произвольные указанные в параметрах функции скроллбар, прокручиваемый объект и маску, т.к. у меня в проекте их несколько. А в этом примере всё завязано на конкретные предопределённые объект, маску и скроллбар. Очень хотелось бы увидеть реализацию в виде функции, которую можно нацеливать на разные объекты для прокрутки. Надеюсь, так понятнее.

true11 06.10.2009 20:41

Мм на событие onLoad считывать _height прокручиваемых объектов, и программно подгонять.. в чем проблема?

mooncar 06.10.2009 20:45

У Wolsh'a как раз все гибко и можно "нацелить".
Если нужно еще гибче, оформите весь код в виде функции, а нужные элементы при ее вызове аттачте из библиотеки.

Добавлено через 7 минут
Код AS1/AS2:

function scrollIt(maska:MovieClip, target:MovieClip) {
....
//код Wolsh'a с вычетом первых строк о назначении объектных ссылок на маску и мувик-цель
...
}
 
scrollIt(mask_mc, target_mc);

Ну и желаемые размеры области скролла тоже как аргументы передавать можно. Там же он указал: "Это параметры по желанию"

Можно, как я сказал, убрать со сцены маску, и ее аттачить, тогда аргумент maska убираете, а первой строкой в функции пишите:
Код AS1/AS2:

var maska:MovieClip = attachMovie('mask_id', 'mask_mc', this.getNextHighestDepth());

В библиотеке - на мувик маски - ссылку mask_id.
И так же для самого скролл-бара.
Нужная степень гибкости - в ваших руках.

Ануб 06.10.2009 21:12

Вложений: 1
Вы меня удивили, действительно всё так и получилось. Не думал, что можно просто всё это вставить в одну функцию и всё сразу почти без работы напильником заработает.

mooncar 06.10.2009 21:16

Мастерский код всегда имеет ряд достоинств, и переносимость - одна из них. :)
Спасибо Wolsh'у.

Ануб 06.10.2009 21:31

Да, и с моим индийским подружился. Действительно спасибо ему. Поблагодарил бы и в той теме, да она закрыта.

mooncar 06.10.2009 21:54

Если вызывать несколько раз, то еще там нужно будет организовать правильный скоролл с колесика мыши (можно сделать через проверку hitTest нужной маски с мышью) и уникальность именования приаттаченных экземпляров маски и скролл-бара.
Ваш пример не смотрел, мне для CS3 нужно.

Ануб 07.10.2009 08:30

Я думаю, что мне этого не нужно, т.к. у меня окон хоть и несколько, но одновременно может показываться только одно из них, а при вызове каждого окна скроллбар и содержимое сбрасываются на 0.


Часовой пояс GMT +4, время: 01:55.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.