PDA

Просмотр полной версии : onMouseMove


sdwdd
05.03.2006, 02:25
Господа, вот пытаюсь заставить один символ обходить другой. Пока что оба они прямоугольники, но в будующем по-идее будет усложняться.
Вот код:

var oldx=0;
var oldy=0;

_root.onMouseMove=function() {
if(!_root.basebl.hitTest(_root.dynbl)) {
oldx=_root.dynbl._x;
oldy=_root.dynbl._y;
_root.dynbl._x=_root._xmouse;
_root.dynbl._y=_root._ymouse;
}
else
{
_root.dynbl._x=oldx;
_root.dynbl._y=oldy;
_root._xmouse=oldx;
_root._ymouse=oldy;
}
}


В результате само движение символа за мышкой тормозит и на скорости обход не действует(проскальзывает).

Какие будут соображения?

meiciuc
05.03.2006, 11:16
В результате само движение символа за мышкой тормозит
тормозит потому,что экран флеш-плейра обновляется согласно fps - что для этого случая медленно. Просто в конце обработчика следует добавить updateAfterEvent().

а это что такое?

_root._xmouse=oldx;
_root._ymouse=oldy;


это уж точно никогда работать не будет потому, что
public _xmouse : Number [read-only]

Не понимаю, что значит "проскальзывать", но, думаю, исходя из вышеизложенного, вам будет понятно, почему не работает.

похоже, придется заняться алгоритмами поиска кратчайшего пути. Подробнее не могу, потому, что сам не в ладах с ними. Церез месяц, примерно, займусь.