Red de conocimiento informático - Aprendizaje de programación - ¿Cómo hace el flash que las cosas caigan del cielo?

¿Cómo hace el flash que las cosas caigan del cielo?

Similar al efecto nieve, pero este efecto no es ideal y puede causar fácilmente un retraso en la CPU. Tengo una lección de nieve aquí. Déjame investigarlo por ti.

Paquete {

Importar visualización flash.

Importar visualización flash. stage;

Importar eventos flash.timer;

Importar flash. utils.

Abrir clase, está lloviendo. Extendsprite {

Var privada escena:escenario;

Temporizador var privada: temporizador = nuevo temporizador(10);

Var privada aleatoria: int = 0;

Estilo de var privada: int = 0;

Matriz de var privada: Array = new Array

Eliminación de var privada: Timer = new Timer(1000);

Tiempo de var privada: int = 0;

Intervalo de var privada: int = 0;

Valor mínimo de var privada: int=0

Valor máximo de la variable privada: int=0

Componente de gota de lluvia de la variable privada: MovieClip

Lluvia en la función pública (MC 1: escenario, MC_1: clip de película, MC2: int, MC3: int, MC4: int, MC5: int, MC6: int) {

escena = MC 1;

Aleatorio = mc2

Estilo = mc3

Intervalo = mc4

Valor mínimo = mc5

Valor máximo = mc6

Elemento gota de lluvia=mc_1

init() ;

}

Función privada init(): void {

Temporizador. AddeventListener(evento del temporizador. temporizador, empieza a llover);

inicio del temporizador()

Eliminar. addeventlistener(evento del temporizador. temporizador, iniciar destrucción);

Eliminar. start();

}

Función privada start destroy(i: evento de tiempo): {

tiempo no válido;

if( tiempo >; = intervalo) (

For(variable I en matriz){

Array[i].x =-1000;

}

Eliminar. stop();

timer. stop();

Timer. removeeventlistener (timerevent. timer, empieza a llover);

Eliminar . removeeventlistener(evento del temporizador. temporizador, comienza a destruir);

}

}

La función privada comienza a llover (yo: TimerEvent): void {

//trace(componente gota de lluvia)

Var lluvia: MovieClip=nueva lluvia(componente gota de lluvia);

Está lloviendo x=.Math.random() *Escena. Ancho del escenario;

Matriz.

Push(lluvia);

Agregar lluvia auxiliar (escena, lluvia, aleatoriedad, estilo, valor mínimo, valor máximo);

}

}

}

Importar flash.display.BitmapData

Importar flash.display.Bitmap

Extensión tipo lluvia MovieClip{

Var privada llovizna de mapa de bits: BitmapData

Variable privada pequeña: Bitmap

Var privada es muy grande: MovieClip

Función pública lluvia (mc1: MovieClip) {

Mapa de bits Xiaoyu = nuevos datos de mapa de bits (100, 100)

Mapa de bits Xiaoyu.draw (mc1)

Pequeño = nuevo mapa de bits (lluvia de mapa de bits)

This.addChild(little)

}

Función pública destroy(): void{

Mapa de bits llovizna=null

Pequeño =null;

}

}

Importar visualización flash;

Importar visualización de película flash;

p>

Importar eventos de flash.

Importar utilidades de flash.

Importar etapa auxiliar. lluvia extiende Sprite {

Escena var privada: escenario

lluvia var privada: clip de película

Temporizador var privado: temporizador = nuevo temporizador(10);

Velocidad de caída de var privada: int = 0;

Var privada aleatoria: int = 0

Estilo de var privada: int = 0;

Valor mínimo de var privada: int=0

Valor máximo de var privada: int = 0;

Función pública auxiliar Rain ( mc1: stage, mc2: movieclip, mc3: int , mc4: int, mc5: int, mc6: int) {

escena = MC 1;

Lluvia = mc2

Aleatorio = mc3

Grace = mc4

Valor mínimo = mc5

Valor máximo = mc6

init()

}

Función privada init(): void {

Velocidad descendente = math . random()* random 5;

Dispositivo de cronometraje. AddEvent oyente(timer event. timer, comienza a moverse);

timer start();

Está lloviendo. ancho = lluvia. height=Math.random() *Valor máximo Valor mínimo;

Está lloviendo. alpha=Velocidad de descenso/Aleatorio 1;

//trace(Velocidad de descenso/25)

Escenario. addChild(Rain);

}

La función privada comienza a moverse (yo: TimerEvent): void {

me updateafterevent();

Está lloviendo. y = velocidad de caída;

Está lloviendo.

x = gracia;

si (está lloviendo. y > escena. altura del escenario) {

Está lloviendo. destruir()

destruir();

//trace ("destruido")

}

}

Función privada destruir(){

Escenario. eliminar niño(lluvia);

temporizador . stop();

Temporizador. removeeventlistener (timerevent. timer, comienza a moverse

//trace ("destruido")

}

}

Uso Muy simple:

var SD: clip de película = nuevas gotas de lluvia ()

nuevo (etapa, SD, 10, 0, 60, 5, 10) llovió