Unidad 17. Ejemplos de ActionScript 3.0 (III)

17.5. El objeto MATH

 

Como ya sabemos, los objetos no visibles también se controlan con ActionScript. Vamos a ver algunos ejemplos del funcionamiento del objeto Math y como sacarle partido.

x = Math.random();

El método random del objeto Math genera un número aleatorio entre 0 y 1. En este caso, el resultado lo almacenamos en la variable x, para poder usarlo después...

Las utilidades de este método son muchas, generar claves secretas, passwords, números de lotería etc...

 

x = Math.round(4.3);

El Método "round" REDONDEA el parámetro introducido eliminando la parte decimal del mismo. Aunque nuestra configuración utilice la coma para separar los decimales, en Flash debemos utilizar el punto.

En el ejemplo, x pasaría a valer 4.

 

x = Math.max(5 , 2);

El Método "max" obtiene el valor máximo entre 2 números.

En el ejemplo, x pasaría a valer 5.

 

El objeto Math es muy útil y nos ahorra mucho trabajo, pues hay multitud de operaciones que responden a alguno de sus métodos y que no tenemos porqué implementar. Basta buscarlos en el manual y usarlos.

17.6. Creación de un cargador o preloader

 

Vamos a analizar el código de un cargador o preloader para acabar de afianzar nuestros conocimientos de ActionScript:

Los cargadores o preloaders sólo son necesarios cuando las películas adquieren un tamaño considerable y resulta inviable visionar la película sin tenerla toda cargada (porque se atasca, aparecen partes incompletas etc...). Vamos a suponer pues, que tenemos una película con 150 fotogramas. Los 3 primeros los reservaremos para crear nuestro cargador. En el Fotograma 4 comienza la película.

Nota: Junto a cada línea hemos insertado comentarios (texto entre los símbolos /* y */) que son líneas que Flash reconoce como tales y que no tiene en cuenta a la hora de ejecutar el código (es como si no existieran). Se usan para clarificar y explicar el código que escribamos y para eso lo usaremos a continuación. Les cambiaremos el color para aclarar que es un comentario. Evidentemente no son necesarios en el código que finalmente insertemos en nuestra película.

Este es el código que insertaremos:

/* FOTOGRAMA 1 */

var bytes_totales:Number;         /*Estas son las variable que iremos utilizando*/

var bytes_cargados:Number;

var porcentaje:Number;



bytes_totales = this.getBytesTotal();     /* Hallamos el tamaño de nuestra película 

                                             con la propiedad "getBytesTotal()" y lo almacenamos 

                                             en la variable bytes_totales. */



//-----------------------------------------------------------------------------

/* FOTOGRAMA 2 */

bytes_cargados = this.getBytesLoaded();   /* Hallamos los bytes que llevamos cargados en memoria 

                                             hasta el momento. Este valor lo asignamos a la 

                                             variable bytes_cargados */

if (bytes_cargados >= bytes_totales) {    /* Esta es la lógica del cargador. Si llevamos cargados en memoria 

                                             los mismos bytes o más de los que ocupa la película, ejecutamos 

                                             la siguiente línea */

	this.gotoAndPlay(4);             /* Si hemos llegado hasta aquí es porque toda la película está 

                                             cargada en memoria (bytes_cargados >= bytes_totales) y podemos 

                                             comenzar a ver la película. Ejecutamos gotoAndPlay(4) que nos 

                                              llevará hasta al fotograma donde comienza la película. */

} else  {                                 /* Si aun no hemos cargado toda la película */

	porcentaje = ((bytes_cargados/bytes_totales)*100);/* Averiguamos el porcentaje que llevamos cargado 

                                                        realizando la división entre los bytes_cargados

                                                        y los bytes_totales y multiplicándolo por 100 */

	txt_salida.text = Math.floor(porcentaje)+"%";    /* Mostramos en el texto "txt_salida" el porcentaje 

                                                       que llevamos junto al símbolo "%",que nos mostrará el 

                                                       porcentaje de película que llevamos cargado en cada instante*/

}



//-----------------------------------------------------------------------------

/* FOTOGRAMA 3 */

this.gotoAndPlay(2);   /* Si llegamos al fotograma 3 es porque no está cargada toda la película, de lo contrario 

                estaríamos ya en el fotograma 4. Como aún no está cargada, volvemos al fotograma anterior 

                para ver si ya lo está (mediante gotoAndPlay(2);). Esto lo haremos tantas veces como haga 

                falta para dar tiempo al ordenador del usuario a ir cargando en memoria la película. */

Resumiendo:

Fotograma 1: En el Fotograma 1 se calculan los bytes totales que ocupa la película. Después pasamos al Fotograma 2.

Fotograma 2: Cada vez que accedamos al Fotograma 2, nuestro código ActionScript averigua los bytes que llevamos cargados en memoria y los compara con los totales (que se hallaron en el Fotograma 1 y no vuelven a averiguarse, pues no varían). Si ya está toda la película cargada, vamos al fotograma 4 y comenzamos a reproducir la película, sino, pasamos al fotograma 3

Fotograma 3: El Fotograma 3 volverá a mandar la cabeza lectora al fotograma 2. Haciendo este ciclo, damos tiempo al ordenador a ir cargando poco a poco la película, hasta que llegue un momento que esté toda cargada y pasemos al Fotograma 4. El cálculo del porcentaje es un "adorno" que nos permitimos, pues con un poco más de esfuerzo averiguamos cuánta película llevamos cargada y la mostramos por pantalla de un modo elegante (en porcentaje) haciendo la espera del usuario menos aburrida.

Fotograma 4: Aquí comienza la película... (Ya no se volverá nunca a ninguno de los fotogramas anteriores).

Abajo mostramos el resultado. La película se comenzará a cargar al pulsar el botón. El código insertado es el que se muestra arriba, no hay NADA MÁS. Tan sólo se han añadido unos textos y unas imágenes para aumentar el tamaño de la película, de lo contrario la carga sería demasiado rápida y no llegaría a verse.

También se ha insertado el texto dinámico que muestra el porcentaje.

Si el cargador no llega a verse, lo más probable sea que ya esté cargada en la memoria caché del ordenador o que estéis viendo este curso desde el DVD o desde vuestro propio Disco Duro, donde la velocidad de descarga es tan rápida que sería necesaria una película de varios MBytes para que hiciera falta un cargador. Podemos encontrar otro ejemplo de cargador en los videotutoriales del curso.

Probad el código en una película que coloquéis en un servidor web y podréis ver los resultados sin problemas.

Para poner a prueba lo aprendido, recomendamos realizar la:

Prueba evaluativa del Tema 17.
Pág. 17.3

Atrás  Inicio  Adelante