Skip to Content »

Google Analytics y Flash

  • 31/01/2007
  • 12:51 am
  • unijimpe

Google Analytics el popular servicio de Google para hacer el seguimiento de visitas a una web, tiene entre las muchas características la de poder hacer seguimiento de visitas de archivos flash, en esta ocasión haremos una revisión de la manera de implementarla en nuestras paginas flash.

logo_ga.gif

Que necesitamos?
Lo primero, es tener una cuenta de Google Analytics e instalar el código de seguimiento en nuestro sitio web, puedes registrarte de forma gratuita en http://www.google.com/analytics/. El siguiente paso es instalar el código de seguimiento en nuestras paginas, para ello se nos da un código javascript que se debe colocar en nuestro HTML justo antes del tag el cual es de la forma:

  1. <script src="...urchin.js" type="text/javascript">
  2. </script>
  3. <script type="text/javascript">
  4.       _uacct = "UA-XXXXXX-X";
  5.       urchinTracker();
  6. </script>

Como Funciona?
Una vez instalado nuestro código de seguimiento, esto hará que todas las paginas a las que se accedan queden registradas. Adicionalmente a esto hay una función llamada urchinTracker que viene incluida en este código que hemos añadido. Esta función puede recibir un parámetro de texto el cual se guardará en el registro de visitas.

Entonces, por ejemplo accedemos a un archivo ejemplo.zip, podríamos pasar el nombre de este archivo como parámetro a la función y esto hara que se registre, esto lo hacemos con el siguiente código:

  1. javascript:urchinTracker('/ejemplo.zip');

De la misma forma podríamos hacer cuando se accede a un SWF, para ello se necesita llamar la función urchinTracker, la cual es un javascript entonces utilizaremos la función getURL de flash.

Implementación
Típicamente cuando se desarrolla sitios enteramente hechos en flash las llamadas a las diferentes secciones se hace cargando el MovieClip de la sección, esta llamada se hace desde un botón, por ejemplo si se tiene que llamar a la sección productos se hace de la forma:

  1. btproductos.onPress = function() {
  2.    loadMovie("productos.swf");
  3. }

Entonces si deseamos hacer el seguimiento en Google Analytics se debe llamar a la función urchinTracker de la siguiente forma:

  1. btproductos.onPress = function() {
  2.    loadMovie("productos.swf");
  3.    getURL("javascript:urchinTracker('/productos.swf');");
  4. }

Sencillo, cierto?. Solo una linea adicional y ya tenemos registradas las visitas a cada sección flash. Ahora no necesariamente se tiene que pasar a la función urchinTracker el nombre exacto del SWF que llamamos si no puede ser una palabra que describa la sección a la que se accede por ejemplo: productos, servicios, etc. Todo esto de acuerdo a como queremos que aparezca en nuestro registro de visitas.

Si deseas un referencia completa de esta carácteristica puedes leer: http://www.google.com/support/analytics/bin/answer.py?answer=27243

Posts Relacionados

Efecto Easing en Flash

  • 28/01/2007
  • 4:20 am
  • unijimpe

Típicamente cuando uno crea efectos de movimiento en ActionScript estos son lineales, es decir los objetos se mueven con velocidad constante, en esta ocasión haremos el movimiento pero con efecto de desaceleración o Easing que consiste en mover un objeto con la velocidad que va disminuyendo conforme se acerca al punto donde debe llegar.

Cargando Flash

Preparando los elementos
Como primer paso creamos dos MovieClips, uno llamado btplay que lo utilizaremos para llamar al efecto de movimiento y el segundo llamado ball que es el movieclip que moveremos. Creamos el evento para el botón btplay.

  1. btplay.onPress = function() {
  2.     easingClip();
  3. }

Implementando el efecto Easing
El siguiente paso es crear la función easingClip que hará efecto para el movimiento deseado, donde primero se definen las variables que contendrán la posición inicial y la posición final. El siguiente paso es colocar el movie en la posición inicial.

Pero como se hace el calculo para obtener estos valores de las posiciones? Calculamos la distancia que hay entre la posición actual del movie al punto final y movemos el movie en la mitad de la distancia, luego volvemos a hacer el mismo calculo y así sucesivamente con lo cual nos iremos acercando en espacios mas pequeños a medida que nos acercamos al final con lo cual logramos el efecto de desaceleración.

Seguidamente creamos un onEnterFrame que nos permita efectuar nuestro calculo repetidamente, dentro de este onEnterFrame cambiamos el valor de la propiedad _x del movie para ir posicionando cada vez mas cerca del punto final.

  1. function easingClip() {
  2.     var xini:Number = 10;
  3.     var xfin:Number = 275;
  4.     clip._x = xini;
  5.     clip.onEnterFrame = function() {
  6.         clip._x += (xfin-clip._x)/2;
  7.     }
  8. }

Cambiando la aceleración
En el ejemplo hemos movido el objeto en la mitad de la distancia que le faltaba para llegar al punto final, pero tambien podemos moverlo en la tercera, cuarta, quinta... parte de la distancia con ello estariamos logrando cambiar la aceleración. Entonces podemos guardar en una variable este valor.

  1. function easingClip() {
  2.     var xini:Number = 10;
  3.     var xfin:Number = 275;
  4.     clip._x = xini;
  5.     clip.onEnterFrame = function() {
  6.         clip._x += (xfin-clip._x)/8;
  7.     }
  8. }

Finalizando
Finalmente calculamos la posición actual del movie para verificar que llego al punto final y eliminamos el onEnterFrame que de otra forma se quedaría ejecutandose. Uniendo todo el código tenemos nuestro efecto easing.

  1. btplay.onPress = function() {
  2.     easingClip();
  3. }
  4. function easingClip() {
  5.     var xini:Number = 10;
  6.     var xfin:Number = 275;
  7.     clip._x = xini;
  8.     clip.onEnterFrame = function() {
  9.         clip._x += (xfin-clip._x)/8;
  10.         if (xfin - clip._x <0.001) {
  11.             delete clip.onEnterFrame;
  12.         }
  13.     }
  14. }

En nuestro ejemplo hemos hecho el movimiento solo en el eje X, podemos hacerlo tambien en el eje Y con lo cual ya nuestro movie se moveria en cualquier dirección.

Posts Relacionados

MovieClips en AS3

  • 24/01/2007
  • 1:35 am
  • unijimpe

ActionScript 3 como lenguaje de programación esta reestructurando la forma de escritura de código, lo cual conlleva a programar en otra forma lógica comparada con AS2. En esta ocasión hablaremos de los cambios que se han hecho a los MovieClips el cual es uno de los elementos esenciales de Flash.

Creando MovieClips
El primer paso para la creación es importar las clases necesarias para el manejo de MovieClips, esta clase se encuentra en el paquete flash.display, para nuestro ejemplo además importaremos las clases para realizar gráficos.

  1. import flash.display.MovieClip;
  2. import flash.display.Graphics;

El siguiente paso es crear una variable del tipo MovieClip, aquí viene una de las diferencias, por defecto cuando uno crea un MovieClip hay que asignarle a que nivel pertenece, para ello utilizamos una nueva función addChild. En nuestro ejemplo le decimos que el movie que hemos creado lo colocamos en el root (this). Luego de ello lo posicionamos utilizando las coordenadas x e y (Antes era _x e _y).

  1. var movie:MovieClip = new MovieClip();
  2. this.addChild(movie);
  3. movie.x = 50;
  4. movie.y = 20;

Dibujando en el MovieClip
Ahora que tenemos el MovieClip creado, dibujamos sobre el una forma, para ello utilizamos la clase graphics que tiene un conjunto de funciones para realizar trazados de formas. Existen varias formas en nuestro caso crearemos un cuadro con esquinas redondeadas utilizando drawRoundRect.

  1. movie.graphics.beginFill(0x339900);
  2. movie.graphics.drawRoundRect(0, 0, 200, 30, 5, 5);
  3. movie.graphics.endFill();

Agregando Interactividad
Otra de las diferencias que encontramos ahora es que ya no podemos agregar interactividad utilizando onRollOver, onRollOut, onPress, etc. Ahora tendremos que utilizar los eventos, esto utilizando addEventListener. Para ello debemos importar el paquete manejador de eventos flash.events.MouseEvent, el cual trae los siguiente detectores: CLICK, DOUBLE_CLICK, MOUSE_DOWN, MOUSE_OUT, MOUSE_OVER, entre otros.

  1. movie.addEventListener(MouseEvent.MOUSE_OVER, myRollOver);
  2. movie.addEventListener(MouseEvent.MOUSE_OUT, myRollOut);
  3. movie.addEventListener(MouseEvent.MOUSE_DOWN, myPress);
  4. function myRollOver(obj:Event) {
  5.     movie.alpha = .5;
  6. }
  7. function myRollOut(obj:Event) {
  8.     movie.alpha = 1;
  9. }
  10. function myPress(obj:Event) {
  11.     trace("Click!!!");
  12. }

Para cada evento diferente creamos un detector el cual llama a una funcion que debemos definirla, por ejemplo para cuando se hacer MOUSE_OVER nosotros definimos que debe llamarse a una funcion con nombre myRollOver la cual luego implementamos el cual cual cambia el alpha del movie al 50% (Otro cambio ahora la transparencia se maneja de 0 a 1).

Finalizando
Unimos todas la partes de nuestro código para conseguir nuestro ejemplo completo de creaciòn de MovieClips con AS3.

  1. import flash.display.Graphics;
  2. import flash.display.MovieClip;
  3. import flash.events.MouseEvent;
  4. // creamos el movieclip
  5. var movie:MovieClip = new MovieClip();
  6. this.addChild(movie);
  7. movie.x = 50;
  8. movie.y = 20;
  9. // dibujamos una forma
  10. movie.graphics.clear();
  11. movie.graphics.beginFill(0x339900);
  12. movie.graphics.drawRoundRect(0, 0, 200, 30, 5, 5);
  13. movie.graphics.endFill();
  14. // agregamos detectores de eventos
  15. movie.addEventListener(MouseEvent.MOUSE_OVER, myRollOver);
  16. movie.addEventListener(MouseEvent.MOUSE_OUT, myRollOut);
  17. movie.addEventListener(MouseEvent.MOUSE_DOWN, myPress);
  18. // implementamos los eventos
  19. function myRollOver(obj:Event) {
  20.     movie.alpha = .5;
  21. }
  22. function myRollOut(obj:Event) {
  23.     movie.alpha = 1;
  24. }
  25. function myPress(obj:Event) {
  26.     trace("Click!!!");
  27. }

Les dejo el resultado de nuestro código, ojo que necesitan tener el Flash Player 9 para visualizarlo correctamente.

Cargando Flash

Para finalizar les dejo los archivos fuente para la descarga con el cual pueden ver el ejemplo funcionando y hacer sus propias pruebas.

Posts Relacionados