![]() |
Движение объекта за курсором с запаздыванием.
Как сделать движение объекта за курсором мыши с запаздыванием используя setInterval?
Т.е. я сделал это самое запаздывание через onEnterFrame Код:
this.onEnterFrame=function()Потом хотел сделать тоже самое через setInterval вот таким образом: Код:
interval = function(xx, yy) {Вместо плавного красивого запаздывания на экране какое-то хаотичное мелькание. Подскажите, в чем ошибка? |
1. Вы запускаете новый интервал при каждом движении мыши, а старые при этом не убиваются так как вы каждый раз переназначаете id
2. Функция interval будет работать у вас вечно, так как координаты ball не будут равны координатам курсора. 3. Ваши проверки типа this._x > xx лишние. Код:
function interval (mc, dt) { |
Код:
interval = function(){Самая главная ошибка - это передача в функцию _xmouse и _ymouse при установке таймаута. То есть когда чел начал двигать мышкой, в функцию передались координаты. И всё, они не изменятся, пока мышь не остановится и не поедет снова (произойдёт переназначение интервала, передадутся новые координаты). Отсюда и расколбас. Ещё непонятно, зачем проверять if (ball._x > xx)...else, есть же универсальная формула (в моём примере). А зачем задержка такая большая? Если хочешь, чтобы медленнее ездило, поставь в уравнении делитель побольше (я поставил 10), и всё будет тип-топ! :) |
хы, долго ж я писАл :)
|
iNils, Супер. спасибо!
я подозревал, что не правильно делать точное сравнение (==) и пытался тоже делать < заданного порога. Но я не допер совершенно до сброса id в ложь и последующей проверки. Очень ловко! И с отрицательным приращением (-=dx) вместо моих идиотских сравнений - тоже просто шикарно. Еще раз огромное спасибо. |
GAIKER, да, у меня похоже вообще непонятно что было написано :)
Спасибо за совет. |
А зачем вообще было делать через setInterval? Идея фикс? Быстрее работать не будет.
|
__etc, да, совершенно верно, идея-фикс. Т.е. просто для общего развития, скажем так.
|
| Часовой пояс GMT +4, время: 18:03. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.