|
Ejercicios Tema 24:
Animaciones Avanzadas |
|
- Abre un nuevo documento haciendo clic en Archivo → Nuevo.
- Selecciona Documento de Flash y pulsa Aceptar.
- Selecciona el fotograma 1 y abre el Panel Acciones desde Ventana → Acciones.
- 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();
- 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();
- 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();
}
- 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();
}
}
}
- 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.
|
|
|