Cómo hacer animación de nieve en flash
1. Haz un copo de nieve (haz clic en un pequeño punto blanco), conviértelo en un clip de película y llámalo copo de nieve.
2. Inserta un nuevo clip de película y llámalo Piaoxue. Arrastra los copos de nieve fuera de la biblioteca y céntralos todos.
Crea una instancia llamada mc y agrega una acción de marco:
fallSnow(this, 100, [550, 400]);
función fallSnow(path, num, size) {
p>for (var i = 0; ilt; num; i) {
ruta.createEmptyMovieClip("s" i, i);
var mc = ruta [ "s" i];
mc._x = aleatorio(tamaño[0]);
mc._y = aleatorio(tamaño[1]);
mc.ro = [1, -1][random(2)];
mc.xtime = random(20);
mc.startTime = 0; p >
mc.id = Math.pow(i, 1/2);
createSnow(mc, mc.id/2.5, "0xffffff", 20*mc.id); p >
}
var loop = function () {
updateAfterEvent();
for (var i = 0; ilt; num; i ) {
var mc = ruta["s" i];
mc._rotation = mc.ro*5;
mc._x = mc. id *mc.ro/10;
mc._y = mc.id/2;
mc.startTime;
scanTar(mc); p >
scanEdge(mc, tamaño);
}
};
var intervalo = setInterval(bucle, 10);
}
función createSnow(mc, radio, c, alfa) {
con (mc) {
moveTo(0, -radius);
beginFill(c, alpha);
lineStyle(0, "0x000000", 0);
for (var i = 1; ilt; =6 ; i ) {
var a1 = -Math.PI/6 i*Math.PI/3;
var a2 = i*Math.PI/3;
lineTo((radio/5)*Math.sin(a1), -(radio/5)*Math.cos(a1));
lineTo(radio*Math.sin(a2) , -radius*Math.cos(a2));
}
endFill();
}
}
función scanTar(mc) {
if (mc.startTimegt; =mc.xtime) {
mc.startTime = 0;
mc . xtime = aleatorio(20);
mc.ro = [1, -1][random(2)];
}
}funciones
en scanEdge(mc, tamaño) {
if (mc._xgt; tamaño[0]) {
mc._x = 0;
} más si (mc._xlt; 0) {
mc._x = tamaño[0];
}
if (mc._ygt; tamaño[1]) {
mc._y = 0;
}
}
3. Arrastra el clip de película de nieve a la escena (preferiblemente es una nueva capa separada).
Nota: Este es un script AS2.