Форум 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=150441)

JOKER_MAX 11.02.2011 21:28

Помогите переделать код прокрутки
 
Вообщем дали такой код

Код AS1/AS2:

onClipEvent(load)
{
this.isDrag = false;
_root.mainmoved = false;
}onClipEvent(enterFrame)
{
if (this.isDrag == true)
{
this.TargY = getProperty("", _ymouse);
oldy = this._y;
this._y = this._y + (this.TargY - this.OffsetY - this._y) * 0.2;
this.vy = this._y - oldy;
}
else
{
if (this.isDrag == false)
{
this._y = this._y + Math.round(this.vy);
this.vy = this.vy * 0.9;
}
}
if (this._y > 60)
{
this._y = 50;
this.vy = this.vy * -0.05;
}
if (this._y < -666)
{
this._y = -690;
this.vy = this.vy * -0.05;
}
}onClipEvent(mouseDown)
{
blockpress = false;
if (_root.mainmoved == false)
{
posisi0 = this._y;
slide = false;
this.TargY = getProperty("", _ymouse);
this.OffsetY = getProperty("", _ymouse) - this._y;
this.isDrag = true;
}
}onClipEvent(mouseUp)
{
posisi1 = this._y;
FLCmd("Set", "MainMenu", "AUI", "menu", "1", "1");
this.isDrag = false;
if (posisi0 < posisi1 - 20 || posisi0 > posisi1 + 20)
{
blockpress = true;
}
slide = true;
}

Он позволяет плавно передвигать мышью мувик по вертикали.
Я не очень хорошо разбираюст в AC, пробовал разные варианты - не получилось.

Подскажите какую строку изменить, чтобы инвертировать прокрутку. То бишь чтобы движение было ни вверх, а вниз и наоборот.

И еще - какая строка отвечает за скорость пролистывания? то есть, к примеру, когда проводишь по экрану на растояние 4 сантиметра можно было настроить чтобы мувик двигался либо на большее растояние, либо на меньшее.
Заранее спасибо!

RandomUser 15.02.2011 01:54

Убрал все, на мой взгляд, лишнее и вот, что вышло:
Код AS1/AS2:

onClipEvent(load)
{
        this.isDrag = false;
}
 
onClipEvent(enterFrame)
{
        if (this.isDrag == true)
        {
                oldy = this._y;
                dy = (_parent._ymouse - this.OffsetY) * 3.0; // 3.0 - масштаб скорости пролистывания... Чем больше, тем быстрее.
                this._y = this._y + (this.posY - this._y - dy) * 0.2; // если dy прибовлять то прокрутка инвертируется...
                this.vy = this._y - oldy;
        }
        else
        {
                if (this.isDrag == false)
                {
                        this._y = this._y + Math.round(this.vy);
                        this.vy = this.vy * 0.9;
                }
        }
 
        if (this._y > 60)
        {
                this._y = 50;
                this.vy = this.vy * -0.05;
        }
 
        if (this._y < -666)
        {
                this._y = -656;
                this.vy = this.vy * -0.05;
        }
}
 
onClipEvent(mouseDown)
{
        this.OffsetY = _parent._ymouse;
        this.posY = this._y;
        this.isDrag = true;
}
 
onClipEvent(mouseUp)
{
        this.isDrag = false;
}

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

JOKER_MAX 16.02.2011 00:01

Спасибо большое, работает на ура и лучше чем прежний.


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

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