Доброго времени суток.
Необходимо сделать ручку регулятора, которая бы вращалась за курсором только при зажатой ПКМ. Т.е. наводим курсор на регулятор, зажимай ПКМ, двигаем курсор куда хотим по всей сцене и регулятор вертится за мышью. Отпускаем ПКМ и регулятор перестает вращаться за мышью. Соответсвенно на клик ПКМ вне области регулятора он не реагирует.
Вот что у меня получилось

Код AS3:
var m_roll:M_roll= new M_roll();
addChild(m_roll);
var temp_roll:int=0;
m_roll.addEventListener(MouseEvent.MOUSE_MOVE, RotationCircle);
function RotationCircle(e:MouseEvent):void
{
m_roll.addEventListener(MouseEvent.MOUSE_DOWN, RotationCircleDown);
function RotationCircleDown(e:MouseEvent):void
{
temp_roll=1
}
m_roll.addEventListener(MouseEvent.MOUSE_UP, RotationCircleUp);
function RotationCircleUp(e:MouseEvent):void
{
temp_roll=0
}
if(temp_roll==1)
{
var X:Number = m_roll.x;
var Y:Number = m_roll.y;
var mX:Number = mouseX;
var mY:Number = mouseY;
var AB:Number;
var OB:Number;
var sina:Number;
var a:Number;
AB = Math.abs(X - mX);
OB = Math.abs(Math.sqrt(Math.pow(X - mX ,2) + Math.pow(Y - mY ,2)));
sina = AB / OB;
a = Math.asin(sina) * 180 / Math.PI;
if (Y >= mY && X <= mX)
{
m_roll.rotation = a;
} else
if (Y < mY && X <= mX)
{
m_roll.rotation = 180 - a;
} else
if (Y >= mY && X > mX)
{
m_roll.rotation = 360 - a;
} else
if (Y < mY && X > mX)
{
m_roll.rotation = 180 + a;
}
}
}
где m_roll клип с изображением ручки регулятора.
Только есть некоторые проблемки.
1) Регулятор вращается только при курсоре в его области.
2) Если отжать ПКМ за областью регулятора, то он будет вращаться без клика при возвращении курсора в его область
3) Хотелось бы "цеплять" регулятор в любом месте. в моем же случае он резко вращается к курсору при клике.
Посьба сильно не пинать, с AS только знакомлюсь
