PDA

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


Kroli4eg
10.06.2008, 19:54
Добрый день. Чем можно заменить событие onMouseMove или как поступить? У меня есть два прямоугольника А и Б, Б уменьшенное отображение А. Когда я двигаю A за ним двигается Б по

maska_main.onMouseMove = function()
{
ax = bigmap._width/221;
ram_test._x = ram_test._width/2 - bigmap._x/ax + 642.2;
ram_test._y = ram_test._height/2 - bigmap._y/ax + 106.55;
}

Когда я двигаю Б за ним двигается А по

smallmap.onMouseMove = function()
{
ax = bigmap._width/221;
bigmap._x = bigmap._width/2 - (ram_test._x - 640)*ax;
bigmap._y = bigmap._height/2 - (ram_test._y - 100)*ax;
}

Так вот когда я двигаю только один прямоугольник то все нормально, но если подвигав один прямоугольник начинаю двигать другой то фигуры разлетаются в разные стороны. Как быть?

alexcon314
10.06.2008, 23:42
Событие onMouseMove генерируется при ЛЮБЫХ перемещениях мыши в пределах окна проигрывателя. В вашем случае, какой бы вы клип не перемещали, будут отрабатывать ОБЕ функции по-очереди. Сравните:

a.onMouseMove = function() {
trace("a");
};
b.onMouseMove = function() {
trace("b");
};

Для привязки к конкретному клипу используйте onPress/onRelease/onReleaseOutside.

// a и b - клипы.
a_onMouseMove = function () {
trace("a");
a._x = _xmouse;
a._y = _ymouse;
b._x = _xmouse+100;
b._y = _ymouse+100;
};
b_onMouseMove = function () {
trace("b");
b._x = _xmouse;
b._y = _ymouse;
a._x = _xmouse-100;
a._y = _ymouse-100;
};
a.onPress = function() {
onMouseMove = a_onMouseMove;
};
a.onRelease = a.onReleaseOutside=function () {
onMouseMove = null;
};
b.onPress = function() {
onMouseMove = b_onMouseMove;
};
b.onRelease = b.onReleaseOutside=function () {
onMouseMove = null;
};

Kroli4eg
11.06.2008, 15:32
спасибо, помогло!!!:yahoo: