Detectar posición del Mouse en Flash con ActionScript

Muchos desarrolladores en Flash están cambiando el modo en que solían programar aplicaciones. Muchas de las nuevas tendencias tienen que ver con el concepto de las RIA (Rich Interface Application) y de la interacción del usuario con la aplicación. Sin duda, el puntero o mouse, a cambiado la forma en que el usuario utiliza su computador. En mi experiencia, cada día me topo con ejemplos cada vez más extraordinarios de las cosas que se pueden hacer con Flash y ActionScript. Aún debemos de recordar que las grandes cosas están hechas de pequeñas. Por ahí me tope con este ejemplo que sin duda es una de ellas. Este fantástico script muestra como detectar la posición del mouse en Flash con ActionScript. Se los explico a continuación:

Paso 1: Creemos dos cuadros de texto dinámico. En mi caso, crearé uno asociado a la variable mouseX y otro asociado a la variable mouseY.

Paso 2: Posteriormente, peguemos el siguiente código en la primera posición de nuestra línea de tiempo:

_root.onEnterFrame = function() {
mouseX = _root._xmouse;
mouseY = _root._ymouse;
}

Como, pueden darse cuenta, la simple referencia a la propiedad ._xmouse y ._ymouse nos devuleve el valor de la posición del mouse para ese objeto. Ahora bien, esto lo podemos utilizar para muchas animaciones, como por ejemplo un puntero personalizado para una página o para hacer objetos que cambien de tamaño dependiendo de la posición del puntero; como en el siguiente ejemplo:

Paso 1: Cree dos objetos movie clip. El segundo, debe ser una instancia del primero.

Paso 2: Pegue el siguiente código, en la instancia del primer objeto, dentro del segundo objeto movie clip.

onClipEvent (load) {
baseX = _parent._x;
baseY = _parent._y;
}
onClipEvent (enterFrame) {
distanceX = _root._xmouse - _parent._x;
distanceY = _root._ymouse - _parent._y;
if (distanceX
distanceX = -distanceX;
}
if (distanceY
distanceY = -distanceY;
}
distance = Math.sqrt((distanceX*distanceX)+(distanceY*distanceY));
if (distance -150) {
_parent._xscale = distance;
_parent._yscale = distance;
}
}
onClipEvent (mouseMove) {
updateAfterEvent();
}

En el anterior ejemplo, podemos observar que se utliza el valor de las propiedades _parent._x y _parent._y. Estos valores representan la posición del objeto padre, dentro del Stage. Además podemos ver la utilización de la función Math.sqrt que devuelve el valor de la raíz cuadrada y para cambiar el tamaño del objeto, las propiedades utlizadas son ._xscale y ._yscale.