Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   scrolling (http://www.flasher.ru/forum/showthread.php?t=40241)

d0dge 28.11.2002 23:13

scrolling
 
Как самому создать скролл через *AS*? Мне нужно из скролбара (который я сам нарисовал) сделать работающий скролинг. Я искал в исходниках - не нашел :(

Задача такая - сделать горизонтальный скролбар на всю ширину экрана, который бы горизонтально скролил картинку шириной в 5000 пикселей.

Спасибо.

blackhund 29.11.2002 03:24

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

onClipEvent(mouseDown) { //т.е. кнопка мыши нажата и удерживается на бегунке
//изменяем только координату х, т.к. бегунок вертикально неподвижен
if ((_xmouse >= leftBorder) && (_xmouse <= rightBorder)){
scrollBar._x = _xmouse;
}
if (_xmouse < leftBorder) scrollBar._x = leftBorder;
if (_xmouse > righttBorder) scrollBar._x = rightBorder;
//выше перечисленные проверки обеспечивают нахождение бегунка в допустимой области
//и перетаскивание мышкой
placePicture();//описывается ниже
}

пусть также картинка, которая имеет ширину 5000 пикселей определена как клип с названием
picture
ее расположение относительно окна мувика можно менять, модифицируя свойство _x
причем расположение бегунка однозначно будет определять координату х картинки.
остается написать функцию соответствия положения бегунка положению картинки
пусть крайнее левое положение бегунка соотв-ет крайнему левому положению картинки,
которое опр-ся координатой leftPos. rightPos соотв-но

function placePicture(){
k = (rightPos - leftPos) / (rightBorder - leftBorder); //коэф-ент масштабирования
position = leftPos * (1 + k); //текущая позиция картинки
picture._x = position;
}

вроде должно работать...

blackhund 29.11.2002 03:30

м-да...
проглючило меня. я неправильно написал функцию. я ведь не учел
положение самого клипа бегунка:)
исправляюсь:

function placePicture(){
k = (rightPos - leftPos) / (rightBorder - leftBorder); //коэф-ент масштабирования
position = leftPos + (scrollBar._x - leftBorder) * k; //текущая позиция картинки
picture._x = position;
}

JudgeFog 29.11.2002 03:38

Есть готовое
 
Плохо искал в исходниках!
в "элементах интерфейса" лежит мой "скроллер на 1.5 Кб" - ищи не по названию, а по имени автора - JudgeFog.
Там все предельно элементарно (для МХ)

d0dge 29.11.2002 15:41

blackhund, я не понимаю, как я могу в КАДРЕ написать сценарий для клипа? Ведь в кадре нельзя поставить "OnclipEvent()". Это ведь можно поставить только в сценарии самого клипа...? :confused:

Alexey (G-fi) 29.11.2002 18:16

не правда!!!
 
можно сделать...

на вскидку... НУ скажем двумя способами:
В злосчастном, вредном и противном кадре ;) написать:
_root.onEnterFrame= function() {
...
}, а хотя это ведь невозможно ;) :D :D :D

и второй:
развивая blackhund-а: на бегунке, структура которого ::
movie clip, а в нем button (который собственно и обрабатывает on(press), on(release)) :: пишешь:
onClipEvent (enterFrame) {
_root.placePicture() /* вызов функции */
}

дерзай!!!

d0dge 29.11.2002 18:42

Alexey (G-fi), вторая мысль не ясна :(

Все равно не удается привести бегунок в движение :confused:

Pietrovich 30.11.2002 05:04

Вложений: 1
короче додж на, читай... и хелп читай иногда... и в уроки заглядывай...

спецом для тебя показал как простенько прикручивать клипИвенты, включая функции...

d0dge 30.11.2002 13:04

Pietrovich, файл не качается, вышли его плиз на alex@nnet.org.

corvustheone 02.04.2003 13:37

Re: Есть готовое
 
Цитата:

Оригинал написал(а) JudgeFog
Плохо искал в исходниках!
в "элементах интерфейса" лежит мой "скроллер на 1.5 Кб" - ищи не по названию, а по имени автора - JudgeFog.
Там все предельно элементарно (для МХ)

слушай, камрад, а ты не мог бы загнать мне его на емайл?

corvuz@mail.ru.no.spam

а то он никак скачиваться не желает - хоть ты тресни =(((

а ведь очень надо.

я не флэшер, но возникла такая ситуация =((


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

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