// Importamos las clases necesarias import flash.filters.BlurFilter; // Creamos el fondo de la pelicula var fondo:MovieClip=new MovieClip ; fondo.graphics.beginFill(0x993333); fondo.graphics.moveTo(0,0); fondo.graphics.lineTo(550, 0); fondo.graphics.lineTo(550, 400); fondo.graphics.lineTo(0, 400); fondo.graphics.lineTo(0, 0); fondo.graphics.endFill(); addChild(fondo);Si lo pruebas, verás que se rellena el fondo con un tono rojo.
//Creamos la estrella
var estrella:MovieClip=new MovieClip ;
estrella.graphics.lineStyle(10, 0x000000, 100, true, "normal", "none", "miter", 0);
estrella.graphics.beginFill(0xCCFF33, 85);
estrella.graphics.moveTo(20+stage.width/2, -91+stage.height/2);
estrella.graphics.lineTo(22+stage.width/2, -21+stage.height/2);
estrella.graphics.lineTo(84+stage.width/2, 0+stage.height/2);
estrella.graphics.lineTo(22+stage.width/2, 21+stage.height/2);
estrella.graphics.lineTo(20+stage.width/2, 91+stage.height/2);
estrella.graphics.lineTo(-22+stage.width/2, 37+stage.height/2);
estrella.graphics.lineTo(-86+stage.width/2, 56+stage.height/2);
estrella.graphics.lineTo(-50+stage.width/2, 0+stage.height/2);
estrella.graphics.lineTo(-86+stage.width/2, -56+stage.height/2);
estrella.graphics.lineTo(-22+stage.width/2, -37+stage.height/2);
estrella.graphics.lineTo(20+stage.width/2, -91+stage.height/2);
estrella.graphics.endFill();
addChild(estrella);
Ahora, ya tenemos el fondo y la estrella en el centro.var brilloMax:Boolean=false; var miBrillo:Number=80; import flash.filters.GlowFilter; //Necesitamos importar el filtro estrella.addEventListener(Event.ENTER_FRAME, cambiarBrillo); function cambiarBrillo(event):void { //Hacemos que el brillo se vaya intensificando y atenuando 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; } } }
// Funciones para poder mover la estrella estrella.addEventListener(MouseEvent.MOUSE_DOWN, arrastrar); function arrastrar(event:MouseEvent):void { estrella.startDrag();// Al mantener pulsada la estrella podremos arrastrala } estrella.addEventListener(MouseEvent.MOUSE_UP, soltar); function soltar(event:MouseEvent):void { estrella.stopDrag();// Cuando soltemos, la estrella permanecera en el lugar que deseemos }
package {//Importamos las clases necesarias
import flash.display.MovieClip;//Necesitamos MovieClip que es lo que crearemos
import flash.filters.BlurFilter;//El filtro que emplearemos
import flash.events.Event; //Utilizaremos evento
import flash.events.EventDispatcher; //Y un generador de eventos
//Y creamos nuestra clase como una subclacse (extends) de MovieClip, para que disponga de sus métodos
public class Copo extends flash.display.MovieClip {
private var velocidad:Number;// Velocidad de bcaída del copo
private var estrella:MovieClip;// Objeto estrella que utilizaremos para saber si choca con ella
private var fondo:MovieClip;// Objeto sobre el que aparecerán los copos
private var vidaCopo:Number=300;// La vida que tendrá el copo antes de derretirse
public function Copo(_estrella:MovieClip, _fondo:MovieClip) {
this.estrella=_estrella;//Asignamos los aprámetros a sus respectivas propiedades
this.fondo=_fondo;
//dibujamos el copo
this.graphics.beginFill(0xFFFFFF);
this.graphics.moveTo(20, -91);
this.graphics.lineTo(22, -21);
this.graphics.lineTo(84, 0);
this.graphics.lineTo(22, 21);
this.graphics.lineTo(20, 91);
this.graphics.lineTo(-22, 37);
this.graphics.lineTo(-86, 56);
this.graphics.lineTo(-50, 0);
this.graphics.lineTo(-86, -56);
this.graphics.lineTo(-22, -37);
this.graphics.lineTo(20, -91);
this.graphics.endFill();
// Inicializamos las variables, posicion del copo, el desenfoque y su velocidad
this.width=num_aleatorio(2,6); //Tamaño aleatorio
this.height=this.width;
this.velocidad=num_aleatorio(2,5); //Velocidad aleatoria
var des:Number=num_aleatorio(3,5); //Desenfoque aleatorio
var desenfoque:BlurFilter=new BlurFilter(des,des);
this.filters=[desenfoque];
//Posición aleatoria, con respecto al fondo
this.x=num_aleatorio(fondo.x,fondo.width);
this.y=fondo.y;
//El evento added se produce al agregar el elemento a la escena o a un contenedor
//Así, no comenzará a caer hasta que no se visualice.
this.addEventListener("added", iniciarCaida);
}
private function iniciarCaida(event):void {
this.addEventListener("enterFrame", caerCopo);
}
// Función para saber si choca contra la estrella o llega al suelo
private function parado():Boolean { //Comprobamos si ha llegado al fondo o chocado con la estrella
return this.y>=fondo.height-this.height/2 || estrella.hitTestPoint(this.x, this.y, true);
}
// Función que hará caer o parar al copo
private function caerCopo(event) {
if (! parado()) {//Si está cayendo
this.y+=this.velocidad; //Aumentamos Y
} else { //Si está parado...
if (this.vidaCopo) { //Y le queda vida...
this.vidaCopo-=1; //Le quitamos vida
} else { //Si no le queda vida
this.alpha-=0.1; //Lo vamos haciendo transparente
if (this.alpha<=0) {//Cuando ya no se vea...
//Lo eliminamos, quitando sus eventos
this.removeEventListener("added", iniciarCaida);
this.removeEventListener("enterFrame", caerCopo);
// y lanzando un evento que diga a la película que lo tiene que borrar
dispatchEvent(new Event("copoDerretido", true));
}
}
}
}
// Función para crear el numero aleatorio
private function num_aleatorio(min:Number ,max:Number) {
//Genera un número aleatorio dentro de un rango
max++;
max=max-min;
return min+(Math.floor((Math.random()*(max*10)))%max);
}
}
}
addEventListener("enterFrame", nevar);
function nevar(event):void{
addChild(new Copo(estrella, fondo));//Creamos un copo y lo agregamos a la escena
}
addEventListener("copoDerretido", borrarCopo);
function borrarCopo(e:Event):void{
removeChild(Copo(e.target));
}
Síguenos en: Facebook Sobre aulaClic Política de Cookies
© aulaClic. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.