PDA

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


Kuzzz
11.07.2010, 01:01
Хочу сделать плавную прокрутку мувиклипа. Написал вот такой чудо-скрипт:

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" пропало.