Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.02.2009, 19:33
cherd вне форума Посмотреть профиль Отправить личное сообщение для cherd Найти все сообщения от cherd
  № 1  
Ответить с цитированием
cherd

Регистрация: Jan 2009
Сообщений: 8
По умолчанию Как переделать скроллер в плавный? ...

Код AS1/AS2:
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 и содержимое прокручиваемого мувика сначала разгонялось потом тормозило к нужной координате) идеи не приходят в голову, можете подсказать?

Старый 18.02.2009, 20:56
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 2  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Код AS1/AS2:
  _root.obj_mc._y = -_root.varDif*(this._y/300);
Например, запоминайте переменную вместо присваивания координаты, а в каждом кадре (или каким нибудь классом) заставляйте плавно стремиться координату к этому числу.

Старый 18.02.2009, 21:48
cherd вне форума Посмотреть профиль Отправить личное сообщение для cherd Найти все сообщения от cherd
  № 3  
Ответить с цитированием
cherd

Регистрация: Jan 2009
Сообщений: 8
дык... что значит в каждом кадре, всё на одном кадре висит =)
Цитата:
заставляйте плавно стремиться координату к этому числу
а какой функцией заставить плавно стремиться к нужной координате? )

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

Старый 19.02.2009, 10:53
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 4  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
Цитата:
а какой функцией заставить плавно стремиться к нужной координате? )
Я думаю твином..типа этого:
Код AS1/AS2:
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 при каждом движении мыши запускается новый твин, его по моему надо на что то заменить.

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:39.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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