Показать сообщение отдельно
Старый 15.08.2005, 16:02
Fokker вне форума Посмотреть профиль Отправить личное сообщение для Fokker Найти все сообщения от Fokker
  № 1  
Ответить с цитированием
Fokker

Регистрация: Jul 2005
Сообщений: 35
По умолчанию некорректно отрабатывается метод, в чем проблема?

День добрый джентельмены.Непонятная засада случилась.
Затея следующая,при попадании в определенную зону курсора мыши,объект (по событию нажатия клавиши) начинает двигаться к курсору мыши.при выходе курсора из "зоны",объект должен возвращаться в заданную точку с определенной скоростью.Для этого создаем метод slideTo.Код такой:
// создаем метод slideTo, мне кажеться,что его можно не проверять
MovieClip.prototype.slideTo = function(leaderX, leaderY, speed) {
if (mc._x != leaderX && mc._y != leaderY) {
this.onEnterFrame = function() {
var deltaX = mc._x-leaderX;
var deltaY = mc._y-leaderY;
var dist = Math.sqrt((deltaX*deltaX)+(deltaY*deltaY));
var moveX = speed*(deltaX/dist);
var moveY = speed*(deltaY/dist);
if (speed>=dist) {
mc._x = leaderX;
mc._y = leaderY;
delete this.onEnterFrame;
} else {
mc._x -= moveX;
mc._y -= moveY;
}
};
}
};
//здесь указан тестовый код,подтверждающий работоспособность метода slideTo
/*mc.onPress = function() {
mc.startDrag(true);
};
mc.onRelease = function() {
mc.stopDrag();
mc.slideTo(100, 100, 100);
};*/
// в данном коде метод slideTo,почему-то отрабатывается только один раз
mc.onMouseDown = function() {
if (_xmouse<300 && _ymouse<200) {
mc._x = mc._x+(_xmouse-mc._x)/5;
} else {
trace("sdfg");
mc.slideTo(50, 50, 100);
}
};
но почему-то метод slideTo отрабатывается только один раз (в отличии от кода,который я "заслешел",там он отрабатывается нормально всегда).
В чем причина "одноразовости" ,джентельмены?