Fairy Wilbury
20.01.2011, 00:31
Подскажите, пожалуйста, как решить такую задачу:
Есть сделанный во флеше скроллер. Он работает в таком варианте: зажимаешь кнопку мыши, тянешь ползунок вниз, отпускаешь после этого меню поднимается вверх (изменяются координаты по y).
onClipEvent (load)
{
}
onClipEvent (mouseDown)
{
stPoint = this._y;
if (this.hitTest(_root._xmouse, _root._ymouse, 1))
{
this.startDrag(this, false, 430, 0, 75, -51);
}
}
onClipEvent (mouseUp)
{
this.stopDrag();
fnPoint = this._y;
speed = fnPoint - stPoint;
newPos = _root.lmenu_mc._y;
newPos = (newPos + (speed * (-2)));
trace(speed);
trace(newPos);
_root.lmenu_mc._y = newPos;
}
А хотелось бы достичь такого результата - мышь наводится на ползунок, нажимается кнопка, тянется вниз и в этот же момент начинают пропорционально менятся координаты мыши.
Пока что получилось вот так:
onClipEvent (load)
{
}
onClipEvent (mouseMove)
{
stPoint = this._y;
if (this.hitTest(_root._xmouse, _root._ymouse, true))
{
this.startDrag(this, false, 430, 0, 75, 0);
fnPoint = _root._ymouse;
trace(fnPoint);
speed = fnPoint - stPoint;
newPos = _root.lmenu_mc._y;
newPos = (newPos + (speed * (-2)));
_root.lmenu_mc._y = newPos;
}
else
{
this.stopDrag();
}
}
Собственно, две проблемы:
1. Как можно одновременно прописать проверку двух условий при onClipEvent (mouseMove) - hitTest и mouseDown? Просто добавлением через & в if не получилось. А так получается, что ползунок бегает за мышкой без нажатия кнопки.
2. При перетягивании ползунка вниз все работает, при перетягивании вверх не срабатывает условие hitTest. Как можно побороть эту проблему?
Заранее спасибо.
Есть сделанный во флеше скроллер. Он работает в таком варианте: зажимаешь кнопку мыши, тянешь ползунок вниз, отпускаешь после этого меню поднимается вверх (изменяются координаты по y).
onClipEvent (load)
{
}
onClipEvent (mouseDown)
{
stPoint = this._y;
if (this.hitTest(_root._xmouse, _root._ymouse, 1))
{
this.startDrag(this, false, 430, 0, 75, -51);
}
}
onClipEvent (mouseUp)
{
this.stopDrag();
fnPoint = this._y;
speed = fnPoint - stPoint;
newPos = _root.lmenu_mc._y;
newPos = (newPos + (speed * (-2)));
trace(speed);
trace(newPos);
_root.lmenu_mc._y = newPos;
}
А хотелось бы достичь такого результата - мышь наводится на ползунок, нажимается кнопка, тянется вниз и в этот же момент начинают пропорционально менятся координаты мыши.
Пока что получилось вот так:
onClipEvent (load)
{
}
onClipEvent (mouseMove)
{
stPoint = this._y;
if (this.hitTest(_root._xmouse, _root._ymouse, true))
{
this.startDrag(this, false, 430, 0, 75, 0);
fnPoint = _root._ymouse;
trace(fnPoint);
speed = fnPoint - stPoint;
newPos = _root.lmenu_mc._y;
newPos = (newPos + (speed * (-2)));
_root.lmenu_mc._y = newPos;
}
else
{
this.stopDrag();
}
}
Собственно, две проблемы:
1. Как можно одновременно прописать проверку двух условий при onClipEvent (mouseMove) - hitTest и mouseDown? Просто добавлением через & в if не получилось. А так получается, что ползунок бегает за мышкой без нажатия кнопки.
2. При перетягивании ползунка вниз все работает, при перетягивании вверх не срабатывает условие hitTest. Как можно побороть эту проблему?
Заранее спасибо.