Detectar posición del Mouse en Flash con ActionScript

9 04 2007

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.


Acciones

Information

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: