Página inicial  

trans_770 trans_160

Ejercicios Tema 24: Animaciones Avanzadas

Google

Ejercicio 1: Nieve

  1. Abre un nuevo documento haciendo clic en ArchivoNuevo.


  2. Selecciona Documento de Flash y pulsa Aceptar.


  3. Selecciona el fotograma 1 y abre el Panel Acciones desde VentanaAcciones.


  4. Escribe los siguiente para dibujar el fondo:
    this.createEmptyMovieClip("fondo", this.getNextHighestDepth());
    fondo.beginFill(0x993333);
    	fondo.moveTo(0,0);
    	fondo.lineTo(Stage.width, 0);
    	fondo.lineTo(Stage.width, Stage.height);
    	fondo.lineTo(0, Stage.height);
    	fondo.lineTo(0, 0);
    fondo.endFill();

  5. Escribe lo siguiente para dibujar la estrella y situarla en el medio de la pantalla:
    this.createEmptyMovieClip("estrella", this.getNextHighestDepth());
    estrella.lineStyle(10, 0x000000, 100, true, "normal", "none", "miter", 0);
    estrella.beginFill(0xCCFF33, 85);
    	estrella.moveTo(20+Stage.width/2, -91+Stage.height/2);
    	estrella.lineTo(22+Stage.width/2, -21+Stage.height/2);
    	estrella.lineTo(84+Stage.width/2, 0+Stage.height/2);
    	estrella.lineTo(22+Stage.width/2, 21+Stage.height/2);
    	estrella.lineTo(20+Stage.width/2, 91+Stage.height/2);
    	estrella.lineTo(-22+Stage.width/2, 37+Stage.height/2);
    	estrella.lineTo(-86+Stage.width/2, 56+Stage.height/2);
    	estrella.lineTo(-50+Stage.width/2, 0+Stage.height/2);
    	estrella.lineTo(-86+Stage.width/2, -56+Stage.height/2);
    	estrella.lineTo(-22+Stage.width/2, -37+Stage.height/2);
    	estrella.lineTo(20+Stage.width/2, -91+Stage.height/2);
    estrella.endFill();

  6. Escribe lo siguiente para añadirle un brillo dinámico:
    var brilloMax:Boolean = false;
    var miBrillo:Number = 80;
    import flash.filters.GlowFilter;
    	estrella.onEnterFrame = function() {
    		var brillo:GlowFilter = new GlowFilter(0xCCCC88, 100, miBrillo, miBrillo, 1, 1);
    		estrella.filters = [brillo];
    		if (brilloMax) {
    			miBrillo += 3;
    			if (miBrillo>120) {brilloMax = false;}
    		}
    		else {
    			miBrillo -= 3;
    			if (miBrillo<80) {brilloMax = true;}
    		}
    	}
    	estrella.onPress = function() {
    		startDrag(this);
    	}
    	estrella.onRelease = function() {
    		stopDrag();
    	}

  7. Escribe lo siguiente para dibujar a cada entrada de fotograma un copo de nieve. Observa que utilizamos la función randRange para calcular las posiciones, tamaños y velocidades aleatorias. Mediante la variable vidaCopo controlaremos la propiedad vida (que crearemos a tal efecto) para empezarlos a derretir.
    import flash.filters.BlurFilter;
    
    this.onEnterFrame = function() {
    	//dibujamos el copo
    	var copo:MovieClip = this.createEmptyMovieClip("copo"+this.getNextHighestDepth(), this.getNextHighestDepth());
    	copo.beginFill(0xFFFFFF);
    		copo.moveTo(20, -91);
    		copo.lineTo(22, -21);
    		copo.lineTo(84, 0);
    		copo.lineTo(22, 21);
    		copo.lineTo(20, 91);
    		copo.lineTo(-22, 37);
    		copo.lineTo(-86, 56);
    		copo.lineTo(-50, 0);
    		copo.lineTo(-86, -56);
    		copo.lineTo(-22, -37);
    		copo.lineTo(20, -91);
    	copo.endFill();
    	
    	//lo situamos y le damos un filtro de desenfoque.
    	//iniciamos todas las variables
    		copo._x = randRange(2, Stage.width-2);
    		copo._xscale = randRange(1, 4);
    		copo._yscale = copo._xscale;
    		var de:Number = randRange(3, 5);
    		var desenfoque:BlurFilter = new BlurFilter(de, de);
    		copo.filters = [desenfoque];
    		copo.velocidad = randRange(2, 5);
    		copo.vida = vidaCopo;
    		
    	//a cada entrada de frame movemos el copo si no está al borde de la pantalla o tocando la estrella
    	//también controlamos la vida del copo para empezarlo a derretir
    	copo.onEnterFrame = function() {
    		if (copo._y<Stage.height-1 && !estrella.hitTest(copo._x, copo._y, true)) {
    			copo._y += copo.velocidad;
    		}
    		if (copo.vida <= 100) {
    			copo._alpha -= 1;
    			}
    			else {
    				copo.vida -= 1;
    		}
    		if (copo._alpha <= 0) {
    			copo.removeMovieClip();
    		}			
    	}
    }

  8. Finalmente añadimos la función randRange que hemos utilizado:
    function randRange(minNum:Number, maxNum:Number):Number {
    	return (Math.floor(Math.random()*(maxNum-minNum+1))+minNum);
    }



 
 
   
Aviso legal: este curso es gratuito siempre que se visualice desde la página web de aulaClic. No está permitido descargar el curso y utilizarlo en academias o centros de enseñanza privados sin estar conectado a Internet.
© aulaClic. Todos los derechos reservados. Free Computer tutorials. Prohibida la reproducción por cualquier medio.
Marzo - 2006.