![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: 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 отрабатывается только один раз (в отличии от кода,который я "заслешел",там он отрабатывается нормально всегда). В чем причина "одноразовости" ,джентельмены? |
|
|||||
|
Регистрация: Jul 2005
Сообщений: 35
|
братья,неужели никто не поможет? (может я безтолково проблему описал?)...я уж тут коллег подгрузил,никто разобраться не может...
|
|
|||||
|
Регистрация: Jun 2005
Адрес: Moscow - immigrate from Volgodonsk
Сообщений: 2,534
|
мой тебе совет, ставь trace и отрабатывай куда почему и с какими значениями он попадает!!! секрет прост - trace поможет тебе !
![]() |
|
|||||
|
Регистрация: Jun 2005
Адрес: Moscow - immigrate from Volgodonsk
Сообщений: 2,534
|
вот у меня допустим setInterval один раз отрабатывал и вырубался, ну я голову сломал "НУ ПОЧЕМУ" , оказалось функцию указал со скобками setInterval(noname(),500) вот такие штуки!!
|
|
|||||
MovieClip.prototype.slideTo = function(leaderX, leaderY, speed) {
if (this._x != leaderX /*&& this._y != leaderY*/) {
this.onEnterFrame = function() {
var deltaX = this._x-leaderX;
var deltaY = this._y-leaderY;
var dist = Math.sqrt((deltaX*deltaX)+(deltaY*deltaY));
var moveX = speed*(deltaX/dist);
var moveY = speed*(deltaY/dist);
if (speed>=dist) {
this._x = leaderX;
this._y = leaderY;
delete this.onEnterFrame;
} else {
this._x -= moveX;
this._y -= moveY;
}
};
}
};
|
|
|||||
|
Регистрация: Jul 2005
Сообщений: 35
|
вот черт...ты прав,я этот орешек (на сегодняшний день) не расколол бы.
БОЛЬШОЕ Человеческое спасибо....[а то плохо сплю уже третий день )) кофе по ночам хлебаю )) ...P.S. я this на mc уже от отчаяния поменял,потому,как все способы научного тыка перепробовал (т.к. ничего не изменилось,то так и оставил....а сейчас трезвым взглядом смотрю на код...и точно, надо this оставить) Последний раз редактировалось Fokker; 16.08.2005 в 16:15. |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:18. |
|
|
« Предыдущая тема | Следующая тема » |
|
|