PDA

Просмотр полной версии : Как переделать скроллер в плавный? ...


cherd
18.02.2009, 19:33
obj_mc.setMask(mask_mc);
//Находим разницу между общей высотой обхекта и высотой “видимой части”, видимая
//часть у нас будет составлять площадь маски, и, соответственно, высота видимой
//части - это будет высота маски.
var varDif:Number = obj_mc._height-mask_mc._height;
//Создаём событие на нажатие кнопки скроллинга
scroll_mc.onPress = function() {
//Переходим во второй кадр скроллинга, чтобы сделать нажатие наглядней
this.gotoAndStop(2);
//Начинаем перетаскивание кнопки скроллинга (False - куда ткнули за то и тянем координаты и границы)
this.startDrag(false, this._x, 0, this._x, 300);
//Создаём событие на ДВИЖЕНИЕ МЫШКИ.
this.onMouseMove = function() {
//Пропорционально тому, на сколько скроллинг сместился ниже начала оси Y
//объект, который мы прокручиваем, должен смещаться вверх.
_root.obj_mc._y = -_root.varDif*(this._y/300);
};
};
//После того, как пользователь отпустил кнопку мышки, мы должны остановить
//прокручивание.
scroll_mc.onRelease = scroll_mc.onReleaseOutside=function () {
//Переходим на первый кадр скроллинга.
this.gotoAndStop(1);
//Останавливаем перетаскивание скроллинга
this.stopDrag();
//Удаляем событие на ДВИЖЕНИЕ МЫШКИ, с помощью которого и происходило
//прокручивание объекта.
delete this.onMouseMove;
};
сделал по этому описанию. Работает чётко скрол мувиклипа, но дубово...
как переделать что бы мягко прокручивался (как резинками привязан, потянули за scroll_mc и содержимое прокручиваемого мувика сначала разгонялось потом тормозило к нужной координате) идеи не приходят в голову, можете подсказать? :rolleyes:

Psycho Tiger
18.02.2009, 20:56
_root.obj_mc._y = -_root.varDif*(this._y/300);

Например, запоминайте переменную вместо присваивания координаты, а в каждом кадре (или каким нибудь классом) заставляйте плавно стремиться координату к этому числу.

cherd
18.02.2009, 21:48
дык... что значит в каждом кадре, всё на одном кадре висит =)
заставляйте плавно стремиться координату к этому числу
а какой функцией заставить плавно стремиться к нужной координате? )

Добавлено через 18 минут
а =) щас попробую ) напишу процедурку ускорения и замедления)
запомнить надо старую координату получить новую
до середины расстояния между началом и концом ускоряться после середины замедляться ) и в цикл )

nOobCrafter
19.02.2009, 10:53
а какой функцией заставить плавно стремиться к нужной координате? )
Я думаю твином..типа этого:
this.onMouseMove = function()
{
txt_y = - varDif * (this._y / 300); // определяем переменную на которую должен сместиться текст
var button1:Tween = new Tween(obj_mc, "_y", None.easeOut, obj_mc._y, txt_y, 1, true); // смещаем текст от текущего состояния до значения переменной.
};
меня тут только очень смущает обработчик события onMouseMove при каждом движении мыши запускается новый твин, его по моему надо на что то заменить.