A ver. Supongamos que tenés un área de 300px de ancho por 200 de alto. La mitad del ancho es 150px, por lo tanto:
Código :
var centro:Number = 150;
Ahora, tomamos la posición del mouse respecto al centro, es decir, la distancia (en píxeles) entre el centro y la posición en x del mouse:
Código :
var distX:Number = Math.abs (_xmouse - centro);
Bien, la propiedad
abs de la clase Math quiere decir valor absoluto (
absolute), y la usamos ya que la distancia no puede ser negativa.
Ahora, seteamos la posición de un objeto para que la distancia entre este y el centro sea igual a la distancia entre el mouse y el centro (como siempre, sólo pensamos en el eje x):
Código :
objeto._x = (_xmouse > centro)? centro - distX : centro + distx;
Bien, ese código podrá parecer complicado, pero no lo es. Entre paréntesis se halla una pregunta, ¿es
_xmouse mayor a
centro? si la respuesta es si, realiza la primer acción, si es no, la segunda. Tené en cuenta que las 2 acciones están separadas por los 2 puntos.
Pero cómo aplicamos esto? Acá te doy un código de ejemplo, no te olvides de ubicar un MC instanciado como
objeto:
Código :
var centro:Number = 150;
var distX:Number;
onEnterFrame = function () {
distX = Math.abs (_xmouse - centro);
objeto._x = (_xmouse > centro)? centro - distX : centro + distx;
objeto._y = _ymouse;
};