Archivos del Tag: As3’

Distintas maneras de crear un preloader. [As3] Parte 2

Tuesday, April 29th, 2008

Ahora es cuando los cargadores se van poniendo más entretenidos. Te recomiendo leer por lo menos la primera parte del post anterior (La ecuación y como obtener los bytes).
Lo que haremos sera una animación que constara de 100 frames (Puedes ser más o menos), y ira avanzando a medida que se valla cargando la película.
Lo que primero que demos hacer para comenzar sera crear un MovieClip con la instancia de pre_mc y dentro de ella crear una animación de 100 frames o como quieras..
En el primer frame de nuestra animación escribamos.

stop();

Fuera de la animación, ya en el escenario principal, en el primer frame escribimos.

stop();
var Nframes:Number=100;
var porcentaje:Number;
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, onPRO);
function onPRO(e:ProgressEvent){
porcentaje=Math.round((e.bytesLoaded/e.bytesTotal)*Nframes)
pre_mc.gotoAndStop(porcentaje);
if(e.bytesLoaded==e.bytesTotal){
gotoAndStop(2);
}
}

Como vez en el código lo que hacemos no es en realidad sacar el porcentaje. Algo parecido, pero no lo es.
Lo que hacemos es dividir los Bytes Cargados por los Totales, esto siempre nos dará un numero entre 0 y 1. (0.1, 0.2, etc..) de manera que al multiplicarlo por el numero de frames que queramos nos dará una especie de porcentaje, pero no por cien, si no que por el numero de frames.
Lo importante es que en la variable Nframes des el numero de frames que tiene tu animación.
Otra cosa que no se nos puede olvidar es ocupar:

Math.round();

¿Por que?, pues por que esta función sirve para redondear el numero, imagínate que nos da un numero como 45.4 ¿Existe acaso el frame 45.4? NO, entonces debemos redondear el numero para que nos de números enteros.

Es importante que la animación no sea demasiado pesada, pues esta también se carga.
Por lo cual si es muy pesada, podría ser “invisible” por un momento.

Hasta la próxima.

Autor: JaLeRu

Distintas maneras de crear un Preloader. [As3] Parte 1

Monday, April 28th, 2008

Este tutorial viene a una pregunta clásica, ¿Como crear un preloader en Flash?

Preloader es el cargador de una pagina web. El que normalmente indica el porcentaje de la carga o la cantidad de bites cargados.

Hacer un loader, ya muchos saben por que se puede leer en muchas partes, pero lo que normalmente uno busca es hacer algo personalizado y aquí enseñare como lograrlo con distintas maneras que se me ocurrieron.

Lo primero que debemos saber antes de crear cualquier Prilouder xD son las funciones para obtener el peso de la película (en Bites) y lo que hemos cargado (en Bites) y luego debemos saber la ecuación para sacar el porcentaje de carga. Recordemos que estamos trabajando en As3.

Para obtener el peso total en bites de una pelicula se usa.

loaderInfo.bytesTotal

y para ver los bytes cargados se usa

loaderInfo.bytesLoaded

La ecuacion que se ocupa para sacar el porcentaje es:
(Valor/Total)*100 = Porcentaje de Valor respecto a Total
Osea que en codigo.

(loaderInfo.bytesLoaded/loaderInfo.bytesTotal)*100

Sacando el porcentaje se nos pueden ocurrir muchas cosas tomando como base los numero del 0 al 100.

Preloader Clasico

El preloader clásico lo haré solo con código.

stop();
var porcentaje:Number;
var texto:TextField=new TextField;
var barra:Sprite=new Sprite();
var color:int=0x000000;
barra.x=stage.stageWidth/2-50;
barra.y=stage.stageHeight/2-10;
addChild(barra)
addChild(texto);
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, car);
function car(e:ProgressEvent){
porcentaje=(e.bytesLoaded/e.bytesTotal)*100
barra.graphics.clear();
barra.graphics.beginFill(color);
barra.graphics.drawRect(0,0,porcentaje,20);
texto.x=barra.x+barra.width;
texto.y=barra.y;

texto.text=String(Math.round(porcentaje))+"%"
if(e.bytesLoaded==e.bytesTotal){

play();

}
}

El cargador como ven es simple, consta de un Sprite (Una figura)y un TextField (Campo de texto)
lo primero que se hace es crear las variables.

  1. pocentaje: Contendrá el porcentaje de carga
  2. barra: Dentro de el dibujaremos la barra.
  3. color: Contendrá el color del cual dibujaremos barra.
  4. texto: Es el Campo de texto que mostrará el porcentaje.

Luego dimos algunas propiedades, como una posición centrada para la barra y agregar los elementos al escenario.

Continuado encontramos un Listener y la función que se encarga de que cada cierto intervalo ver la carga, procesando los datos. Le asigna el porcentaje a la variable porcentaje. Luego con el porcentaje dibujamos la barra y escribimos en texto el porcentaje.

En fin, es el clásico cargador, aburrido.

Ahora algunas técnicas para personalizar ese cargador.
Si quisiéramos que la barra crezca más que 100 debemos agregar un pequeño calculo.
porcentaje*(tamaño/100)
Por ejemplo, si queremos que nuestra barra al estar cargado el 100% mida solo 40px usamos.

barra.graphics.drawRect(0,0,porcentaje*(40/100),20);

Ahora, si quisieramos que nuestra barra no cresiera hacia un lado sino que para los dos.
Podemos usar esto.

barra.graphics.drawRect(-(porcentaje*(40/100)/2),0,porcentaje*(40/100),20);

¿Por que? Pues por que el primer valor de la función drawRect es para mover a el Sprite de su posición respectiva osea si su posición era 100 y en ese valor colocamos 10, su posición cambiara a 110. Entonces ahora le restamos la mitad de su tamaño (el tamaño es porcentaje*(40/100) en este caso).

Si meten mano al código pueden enchularlo más aun.
Este es el primero que posteo, pronto subo otros más entretenidos.

Para poder ver como se vería un cargador debemos hacer lo siguiente:
Poner el código en el primer frame, en el segundo frame importemos algo así como una imagen o algo con peso, pero no demasiado. Luego apretamos CTRL+Enter y una vez que se cargue la película lo volvemos a apretar, con esto veremos como se vería nuestro cargador. (Si no se ve, existen dos opciones, que el código tenga un error, o lo que hay desde el 2º frame en adelante no es lo suficientemente pesado como para alcanzarse a ver la carga)

(Mañana, o pasado mañana subo el segundo)

Autor: JaLeRu
Categorias: Computación, Tutoriales
Tags: ,

Efecto de Nieve en As3

Sunday, April 20th, 2008

En este Tip muestro como hacer el clásico efecto de nevada en ActionScript 3. Este tip, es más una traducción de un tutorial que yo vi hace tiempo.

// Tamaños pantalla
var width2 = stage.stageWidth;
var height2 =  stage.stageHeight;
// Máximo tamaño copos y cantidad
var max_tamaño = 10;
var copos = 100;
function init ()  {
for (var i:Number=0; i<copos; i++) {

var t:snow=new snow();
addChild(t);
t.alpha = 0.2+Math.random()*0.6;
t.x = -(width2/2)+Math.random()*(1.5*width2);
t.y = -(height2/2)+Math.random()*(1.5*height2);
t.scaleX = t.scaleY=0.5+Math.random()*(max_tamaño*0.1);
t.k = 1+Math.random()*2;
t.viento = -1.5+Math.random()*(1.4*3);
t.addEventListener(Event.ENTER_FRAME, mover);
}
};
function mover(e:*){
e.target.y  += e.target.k;
e.target.x += e.target.viento;
if (e.target.y>height2+10) {

e.target.y = -20;

}

if (e.target.x>width2+20)  {

e.target.x = -(width2/2)+Math.random()*(1.5*width2);
e.target.y = -20;

}
else  if (e.target.x<-20)  {

e.target.x = -(width2/2)+Math.random()*(1.5*width2);
e.target.y = -20;
}
}
init();

Ok, para que esto funcione solamente creen un mc, que sea un punto blanco difuminado (Blur) o un circulo que tenga un degradado radial de blanco al centro y transparente al rededor.

Para que represente un copo de nieve.

Luego en la Biblioteca, le das clic derecho seleccionas Linkage y en Class, escribe snow.

Simple, pero bonito.

Recomiendo ocupar fondo oscuro.

Para el ejemplo, el tamaño máximo de los copos es 5 y la cantidad máxima de copos es 150.

:!!:

Autor: JaLeRu
Categorias: Computación, Tips
Tags: , , , ,

Uso de la Clase Tween en As3

Saturday, April 19th, 2008

This movie requires Flash Player 8

Hola, en este Tutorial les enseñaré cómo lograr un efecto de Easing Tween mediante Actionscript 3, ya que es una de las primeras cosas que aprendí solo en ActionScript 3.

Primero debemos importar los paquetes necesarios:

import fl.transitions.*;
import fl.transitions.easing.*;

Luego creamos un nuevo Sprite, en este caso dibujaremos un simple cuadrado.

var box:Sprite= new Sprite   //  Se crea
box.graphics.beginFill(Math.random()*0xffffff); // Se elije color
box.graphics.drawRect(0,0,100,100); // Dibujamos el cuadrado
box.graphics.endFill(); //Terminamos de dibujar
box.x=10  //Posición
box.y=10
addChild(box); // Lo enviamos al Stage.

Comenzando ya con el Tween lo creamos, dándole las opciones de:

(Objeto,Propiedad,Método,Partida,Termino,Duracion,Animación)

Objeto: Es el sprite que creamos en este caso. O sea, a lo que le queremos aplicar el Tween.

Propiedad: Es La propiedad que queremos cambiarle, ya sea el x, el y o el alpha.

Método: Es el tipo de Animación, existen varias. El modo de escribirla es: Movimiento.ease:

    Donde movimiento:
    None:
    Se mueve de el lugar a otro pero no le afectan los ease
    Elastic:
    Efecto Elástico
    Bounce: Efecto de Rebote
    Regular: Se mueve de manera regular.
    Strong: Se mueve de una manera más fuerte.
    Back: Se mueve y Vuelve un pocoy Ease:

    easeIn(): Parte lento

    easeinOut(): Parte y Termina Lento

    easeOut(): Termina Lento

Partida y Término, es donde empieza y donde termina la propiedad a la cual vamos animar.

Duración : Es el tiempo que demorará en hacer la animación.

Por ultimo “Animaciónâ€, siempre déjenlo en true, ya que en false no la muestra.
(more…)

Autor: JaLeRu

Onda sonora con perdida de Intencidad en As3.

Monday, April 14th, 2008

This movie requires Flash Player 8

Primero que todo creemos un nuevo proyecto en As3.
Luego, para que entiendan un poco lo que hago explicare lo que haremos.
Una onda sonora, imaginémosla como una esfera (tridimensional) que se expande, crece. Que cuando esa esfera llega a nuestros oídos, escuchamos el sonido.
Una sonora al viajar por el espacio, va perdiendo su intensidad por lo que entre más lejos estemos, menos la escucharemos. La razón de intensidad es potencia partido por superficie de la esfera.
De manera que entre más superficie tenga la esfera (mayor sea su tamaño) menor sera la intensidad.
La potencia lo podemos pensar como con la fuerza que comienza. Ejemplo, su yo susurro mi potencia sera mucho más pequeña que si diera un fuerte grito.
Como ultimo, recordar que la superficie de una esfera es: 4Ï€r2 (4 Pi por radio al cuadrado)
Dejémonos de tanto blabla y vamos al grano.
(more…)

Autor: JaLeRu

JaLeRu Blog vive gracias a WordPress
Entradas RSS y Comentarios RSS.