PDA

Просмотр полной версии : Помогите переделать код прокрутки


JOKER_MAX
11.02.2011, 21:28
Вообщем дали такой код

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
Убрал все, на мой взгляд, лишнее и вот, что вышло:
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
Спасибо большое, работает на ура и лучше чем прежний.