PDA

Просмотр полной версии : скорость передвижения клипа


Fokker
27.07.2005, 17:55
День добрый джентельмены.Разбираю тут одну задачку,в которой клип по щелчку мыши перемещается к ее курсору.Код следующий :

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...можно вообще параметр не задавать,он почему-то никак не влияет....Как же все-таки сделать параметр скорости действующим?

iNils
27.07.2005, 18:04
Код работает, но в нем была опечатка (пометил красным).
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);
};

Nео
27.07.2005, 18:14
исправь в строке var delyaY:Number = this._y-leaderY;
переменную delyaY на deltaY

Nео
27.07.2005, 18:15
2iNils:
Опередил :)))

Whatsername
27.07.2005, 19:32
Объясните двоечнику, в каком классе учат:
var moveX = speed * (deltaX / dist);
И как эта теорема называется?
Спасибо.

UPD: Двоечник - это я. Что бы никто бы ничего бы.

Fokker
28.07.2005, 11:26
var moveX = speed * (deltaX / dist); // енто распределение скорости по осям

Джентельмены, как всегда...благодарен :)

Whatsername
28.07.2005, 11:45
енто распределение скорости по осям
Это я понимаю. В учебнике за какой класс это написано? Из чего это следует?

Fokker
28.07.2005, 13:02
брат, я не знаю в каком классе это проходят,могу с уверенностью сказать,что в первом и во втором в учебниках этого точно нет.а в чем суть вопроса я не въеду?
принципиально что? (учебник?автор?школьный класс?).а следует все это из пропорций и формулы время=расстояние/скорость

Whatsername
28.07.2005, 13:17
уга-уга! глюкануло меня чуток. все же очевидно =)) спасибки.