Con un poco de trigonometría, geometría y la clase Math es muy fácil.
En el escenario dos pares de mc's con los siguientes nombres de instancia:
ojo1_mc y
ojo2_mc -> círculitos que hacen de ojos.
contorno1_mc y
contorno2_mc -> circunferencias donde se mueven los ojos.
Código:
function getDistancia(difX:Number, difY:Number) {
var h:Number = Math.sqrt(Math.pow(difX, 2)+Math.pow(difY, 2));
return h;
}
function getAngulo(difX:Number, difY:Number) {
var h:Number = getDistancia(difX, difY);
var a:Number = Math.acos(difX/h);
if (difY>0) {
return a;
} else {
return (2*Math.PI)-a;
}
}
_root.onMouseMove = function() {
for (i=1; i<=2; i++) {
var contorno:MovieClip=_root["contorno"+i+"_mc"];
var ojo:MovieClip=_root["ojo"+i+"_mc"];
var distancia:Number = getDistancia(_root._xmouse-contorno._x, _root._ymouse-contorno._y);
var radio:Number = Math.floor(contorno._width/2)-Math.floor(ojo._width/2);
if (distancia>radio) {
var angulo:Number = getAngulo(_root._xmouse-contorno._x, _root._ymouse-contorno._y);
ojo._x = contorno._x+(radio*Math.cos(angulo));
ojo._y = contorno._y+(radio*Math.sin(angulo));
} else {
ojo._x = _root._xmouse;
ojo._y = _root._ymouse;
}
}
};
Saludos!