Форум 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)
-   -   Ошибка с движением мувиклипа с помощью setInterval (http://www.flasher.ru/forum/showthread.php?t=142038)

Kuzzz 11.07.2010 01:01

Ошибка с движением мувиклипа с помощью setInterval
 
Хочу сделать плавную прокрутку мувиклипа. Написал вот такой чудо-скрипт:

Код AS1/AS2:

right_pics_Holder._y=50;
 
Mouse_listener.onMouseUp = function() {
        if (Button_Down.hitTest(mouseImitator)) {
                var i:Number = 0;
                Button_Down_Pressed = function() {
                        right_pics_Holder._y -= 11.2;
                        i++;
                        if (i==5) {
                                clearInterval(myInterval);
                        }
                }
                myInterval = setInterval (Button_Down_Pressed, 100);
        }
        if (Button_Up.hitTest(mouseImitator) && right_pics_Holder._y<50){
                right_pics_Holder._y += 56;
                trace (right_pics_Holder._y);
        }
}

По клику "вниз" - мувик плавно перемещается вверх. По клику "вверх" - мувик моментально перемещается вниз. Трейсер показывает позицую нашего мувика.

Всё бы хорошо, только если нажимать: "вниз, "вверх", "вниз, "вверх", "вниз, "вверх",... в трейсере будет такая информация:

Код:

50
50.05
50.1

Я где-то ошибся? Или это нормальное поведение АС? Как с таким бороться?"

rainbowrussia 11.07.2010 04:07

Скорее всего так ведет себя AS, а именно в строке
Код:

right_pics_Holder._y -= 11.2
Заведите отдельные переменные для хранения текущего положения клипов, увеличивайте/уменьшайте их, и делайте
Код:

right_pics_Holder._y = rpHy;
где "rpHy" и есть переменная, хранящая положение клипа.

Kuzzz 11.07.2010 05:24

Спасибо за совет.
Я изменил интервал, и сделал шаг целым числом. "0.05" пропало.


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

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