|
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 insertaremos 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 esplicar
el código que escribamos y para eso lo usaremos a continuación.
Les cambiaremos el color para que resalten aún más. Evidentemente
no son necesarios en el código que finalmente insertemos en nuestra
película.
Este es el código que insertaremos:
-----------------------------------------------------------------------------
/* Fotograma 1 */
bytes_totales = getBytesTotal(); /*
Hallamos el tamaño de nuestra película con la Acción
"getBytesTotal()" y lo almacenamos en la variable bytes_totales.
*/
-----------------------------------------------------------------------------
/* Fotograma 2 */
bytes_cargados = 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 */
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 = Math.floor(porcentaje)+"%"; /*
Almacenamos en la variable "txt_salida" el
porcentaje que llevamos junto al símbolo "%".
En la película principal tendremos un campo de texto dinámico
llamado "txt_salida" que nos mostrará el porcentaje
de película que llevamos cargado en cada instante */
}
-----------------------------------------------------------------------------
/* Fotograma 3 */
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).
|