![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2005
Сообщений: 35
|
День добрый джентельмены.Разбираю тут одну задачку,в которой клип по щелчку мыши перемещается к ее курсору.Код следующий :
MovieClip.prototype.slideTo = function (leaderX,leaderY,speed) { if (this._x != leaderX && this._y != leaderY) { this.onEnterFrame = function () { var deltaX= this._x-leaderX; var delyaY= 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; } } } } ball_mc.onMouseDown=function () { this.slideTo(_root._xmouse,_root._ymouse,10); } Но вот фигня в том,что скорость перемещения никак не меняется.....хоть 10 задай,хоть 10000 или 0.0001...можно вообще параметр не задавать,он почему-то никак не влияет....Как же все-таки сделать параметр скорости действующим? |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Код работает, но в нем была опечатка (пометил красным).
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;
}
};
}
};
mc.onMouseDown = function () {
this.slideTo (_root._xmouse, _root._ymouse, 1);
};
|
|
|||||
|
исправь в строке var delyaY:Number = this._y-leaderY;
переменную delyaY на deltaY
__________________
The matrix has you... |
|
|||||
|
2iNils:
Опередил ))
__________________
The matrix has you... |
|
|||||
|
Регистрация: Jul 2003
Адрес: Петербург
Сообщений: 432
|
Объясните двоечнику, в каком классе учат:
И как эта теорема называется? Спасибо. UPD: Двоечник - это я. Что бы никто бы ничего бы.
__________________
Папа просил передать вам всем, что театр закрывается. Нас всех тошнит. Последний раз редактировалось Whatsername; 27.07.2005 в 19:52. |
|
|||||
|
Регистрация: Jul 2005
Сообщений: 35
|
var moveX = speed * (deltaX / dist); // енто распределение скорости по осям
Джентельмены, как всегда...благодарен ![]() |
|
|||||
|
Регистрация: Jul 2003
Адрес: Петербург
Сообщений: 432
|
Цитата:
__________________
Папа просил передать вам всем, что театр закрывается. Нас всех тошнит. |
|
|||||
|
Регистрация: Jul 2005
Сообщений: 35
|
брат, я не знаю в каком классе это проходят,могу с уверенностью сказать,что в первом и во втором в учебниках этого точно нет.а в чем суть вопроса я не въеду?
принципиально что? (учебник?автор?школьный класс?).а следует все это из пропорций и формулы время=расстояние/скорость |
|
|||||
|
Регистрация: Jul 2003
Адрес: Петербург
Сообщений: 432
|
уга-уга! глюкануло меня чуток. все же очевидно =)) спасибки.
__________________
Папа просил передать вам всем, что театр закрывается. Нас всех тошнит. |
![]() |
![]() |
Часовой пояс GMT +4, время: 06:23. |
|
|
« Предыдущая тема | Следующая тема » |
|
|