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

Salut 21.09.2006 14:37

...Проблемы с движением...
 
Здрасте! У меня возникла проблемка, есть мувик, при наведении на активную область мувик начинает двигаться по оси x,если мышка правее то мувик влево и.т.д. но как сделать так чтобы при выведении из активной области курсора мувик плавно останавливался?

Пытался запомнить значение _х мувика в переменную, а потом при онРоллАут запускать функцию замедления, но ничего не вышло, помогите пожалуйста :)

sundog 21.09.2006 17:24

я не знаю как ты задавал движение,но вот примерчик где движение прекращается потихоньку
Код:

m=false;
w_mc.onRollOver = function(){
        m=true;
}
w_mc.onRollOut=function(){
        m=false;
}

w_mc.onEnterFrame=function(){
        this._x+=n;
        if(m){
                n=8;
        }else{
                n-=0.4;
                if(n<=0)n=0
        }
       
}


Salut 22.09.2006 10:48

немного не то по ходу...
у меня код движения при наведении такой:

Код:

textmc._y=textmc._y-(_ymouse-150)/40
;

и ничего у меня не получается придумать :(

sundog 22.09.2006 11:35

сделай
Код:

n=_ymouse-150)/40
textmc._y=textmc._y-n;

при rollOut сделай
Код:

n-=0.5

iNils 22.09.2006 12:54

sundog, две строчки кода нужно тоже оформлять.

Salut 22.09.2006 14:13

Спасибо за помощь, но этот код замедляет движение только в одну сторону, если мувиклип двигается вниз по оси у, то он останавливается резко :(

sundog 22.09.2006 14:25

попробуй сделать так
Код:

n-=0.5*a
a=0
if(_ymouse>=150)a=1;
if(_ymouse<=150)a=-1;


Salut 23.09.2006 21:09

Вложений: 1
Нет не получается... :( вот исходник посмотри, может поймешь что к чему...

проблема все в том же, когда прокручиваешь мувик вниз - он плавно не останавливается...

goarcade 23.09.2006 23:01

Может вот так пойдет?:)

Код:

//в твоем исходнике подправил:
textmc.onEnterFrame = function() {
        textmc._y=textmc._y-n;
        if (t){
        n=(_ymouse-150)/20;
        }
        else{
                n*=0.9;
                if(Math.abs(n)<0.2)n=0;
        }
}


Salut 24.09.2006 18:53

goarcade Огромное спасибо! А не мог бы ты объяснить мою ошибку и как ты ее исправил...(точнее что делает Math.abs?)


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

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