![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Aug 2005
Сообщений: 19
|
новая трабла
... есть картинка, подшружается мувик, по щелчку в люб области мувик туда перемещается (эт делает след. код). а нада чтобы он ПЛАВНО туда перемещался..._m = _root.createEmptyMovieClip("pnt",2); _m._x=200; _m._y=200; _m.attachMovie("pnt","pnt",200); someListener = new Object(); someListener.onMouseDown = function () { _m._x=_xmouse; _m._y=_ymouse; }; Mouse.addListener(someListener); |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
speed = 10;
_m = _root.createEmptyMovieClip ("pnt", 2);
_m._x = 200;
_m._y = 200;
_m.attachMovie ("pnt", "pnt", 200);
someListener = new Object ();
someListener.onMouseDown = function () {
_m.dx = (_xmouse - _m._x) / speed;
_m.dy = (_ymouse - _m._y) / speed;
_m.cx = 0;
_m.onEnterFrame = _m.enterFrame;
};
Mouse.addListener (someListener);
_m.enterFrame = function () {
this.cx++;
if (this.cx == speed) {
delete this.onEnterFrame;
}
this._x += this.dx;
this._y += this.dy;
};
|
|
|||||
|
Регистрация: Aug 2005
Сообщений: 19
|
я сразу заметил, но все думал как исправить ошибку. не вышло.
дело в то что идет зависимость шага по перемещению объекта от конечного рассояния. т.е. чем дальше точка клика тем быстрее, чем ближе - не дождешься пока доедет. а while(this._x <= this._xmouse) {образно} не работает корректно. есть идеи? |
|
|||||
|
"braze"
|
задай постоянную скорость - без приращения - будет всегда одинаково
или задай несколько случаев, чтоб скорость была больше/меньше в зависимости от чегототам
__________________
... хочешь сделать хорошо - сделай сам. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Цитата:
вычислять с помощью atan угол движения и потом по косинусу угла *10 (для оси х) и синусу угла * 10 (для оси у) находить смещение. |
|
|||||
|
.grin! wuz here
|
speed = 3;
_m = _root.createEmptyMovieClip ("pnt", 2);
_m._x = 200;
_m._y = 200;
_m.attachMovie ("pnt", "pnt", 200);
someListener = new Object ();
someListener.onMouseDown = function () {
_m.endx = _xmouse;
_m.endy = _ymouse;
_m.onEnterFrame = _m.enterFrame;
};
Mouse.addListener (someListener);
_m.enterFrame = function () {
this.cx++;
if (Math.abs(this._x-this.endx)<1&&Math.abs(this._y-this.endy)<1) {
this._x = this.endx;
this._y = this.endy;
delete this.onEnterFrame;
}
this._x += (this.endx-this._x)/speed;
this._y += (this.endy-this._y)/speed;
};
__________________
Breakcore them all! |
|
|||||
|
"braze"
|
угу, согласен 8) я как то не задумался об относительности понятия скорости в даноом случае ) - начал бы делать, тогда б сразу и вылезло ))
__________________
... хочешь сделать хорошо - сделай сам. |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 19
|
все атлично. спасиба
![]() |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 19
|
2KidsKilla: тоже самое, только в профиль. теперь по мере приблежения тормозит...
мой вариант по наводке iNils: speed=10;
_m = _root.createEmptyMovieClip ("pnt", 2);
_m._x = 10; _m._y = 10;
_m.attachMovie ("pnt", "pnt", 200);
someListener = new Object ();
someListener.onMouseDown = function () {
if(_xmouse<_m._x && _ymouse<_m._y) {
alfa=Math.atan((_m._y-_ymouse)/(_m._x-_xmouse));
tmpx=-1; tmpy=-1;}
else if(_xmouse>_m._x && _ymouse<_m._y) {
alfa=Math.atan((_m._y-_ymouse)/(_xmouse - _m._x));
tmpx=1; tmpy=-1;}
else if(_xmouse<_m._x && _ymouse>_m._y) {
alfa=Math.atan((_ymouse - _m._y)/(_m._x-_xmouse));
tmpx=-1; tmpy=1;}
else if(_xmouse>_m._x && _ymouse>_m._y) {
alfa=Math.atan((_ymouse - _m._y)/(_xmouse-_m._x));
tmpx=1; tmpy=1; }
};
Mouse.addListener (someListener);
_m.onEnterFrame = function () {
this._x += speed*Math.cos(alfa)*tmpx;
this._y += speed*Math.sin(alfa)*tmpy;
};
![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|