Crear un copo de nieve en Flash
Jueves, 6 de diciembre de 2007Algunos lectores me han preguntado cómo se creó copo de nieve, de modo realista, el widget de Navidad. Los que han descargado la fuente, probablemente ya sabe ... Sin embargo, es muy simple. En primer lugar, he seleccionado la herramienta pincel en Flash y yo hemos diseñado un punto.
![]() | ![]() |
Me he convertido esto en un símbolo y me han aplicado dos efectos en la secuencia correcta: bisel y borroso:
![]() | ![]() |
El resultado fue: 
En este MovieClip (símbolo) he asociado una simple clase CNeve de facto de inteligencia básico de sí mismo:
- { CNEVA clase extends MovieClip (
- _interval; var _interval privado;
- _maxy: Number ; var privado _maxy: Número;
- / /
- CNEVA función () (
- this , "_move" , 25 ) ; _interval = SetInterval (esto ", _Move", 25);
- ( ( Stage . height + 256 ) / 2 ) +_getRndRange ( - 20 , - 7 ) ; _maxy = Matemáticas. ronda ((Stage. altura + 256) / 2) + _getRndRange (- 20 - 7);
- )
- / /
- _getRndRange ( min : Number , max : Number ) : Number { private function _getRndRange (min: Número máximo: Número): Número (
- = Math . floor ( Math . random ( ) * ( max- min + 1 ) ) + min ; var randomNum: Número = Matemáticas. piso (Math. aleatorio () * (max-min + 1)) + min;
- randomNum regreso;
- )
- / /
- _move ( ) { _Move Private function () (
- 1 , 5 ) ; _y + _getRndRange = (1, 5);
- _getRndRange ( - 50 , 50 ) ) > 0 ) ? 1 : - 1 ; _x + = ((_getRndRange (- 50, 50))> 0)? 1 - 1;
- 1 , 5 ) ; _rotation + _getRndRange = (1, 5);
- _y>_maxy ) { if (_y> _maxy) (
- _interval ) ; clearInterval (_interval);
- )
- ; updateAfterEvent ();
- )
- )
El método _move() contiene la inteligencia de los básicos, o de la caída, muy simple. Al cambiar el azar _x += ((_getRndRange(-50, 50))>0) ? 1 : -1;, _x += ((_getRndRange(-50, 50))>0) ? 1 : -1;, mediante la inclusión de un _getRndRange(-550, 50), un efecto de viento, es decir, los copos caen con una inclinación particular. En particular, los copos pueden enviar a cualquiera de las partes usando un código como este:
- _getRndRange ( _getRndRange ( - 350 , - 50 ) , _getRndRange ( 50 , 350 ) ) ) > 0 ) ? 1 : - 1 ; _x + = ((_getRndRange (_getRndRange (- 350, - 50), _getRndRange (50, 350)))> 0)? 1 - 1;
La rotación _rotation += _getRndRange(1, 5); entonces, da más detalles básicos a sí mismo.
Cuando creo un alimento básico (véase función creaFiocco() más abajo) también añadió un alpha=90 una escala de azar, que los copos de nieve de varios tamaños.
- / / Crear básicos
- creaFiocco función () (
- 20 , 100 ) ; var s = randRange (20, 100);
- - Math . floor ( ( Stage . width - 320 ) / 2 ) , Math . round ( ( Stage . width + 320 ) / 2 ) ) ; var x = randRange (- Matemáticas. piso ((Stage. ancho - 320) / 2), Matemáticas. ronda ((Stage. ancho + 320) / 2));
- . floor ( ( ( Stage . height - 256 ) / 2 ) ) - 10 ; var y = - Matemáticas. piso (((Stage. altura - 256) / 2)) - 10;
- "neve" , "neve_" + index , index , { _x :x, _y :y, _xscale :s, _yscale :s, _alpha : 90 } ) ; c_mc. attachMovie ( "nieve", "neve_" + índice, índice, (_x: x, _y: y, _xscale: s, _yscale: s, _alpha: 90));
- Índice + +;
- index> 1000 ) { if (índice> 1000) (
- ; index = 1;
- "c_mc" , 2 ) ; c_mc = createEmptyMovieClip ( "c_mc", 2);
- )
- )
Y eso es todo ...
¿Ha olvidado ... Saludos a todos y Felices fiestas ... ![]()

























Dieg0 dijo:
Revise mi sitio web: http://www.Dieg0.com.ar
Recuerdos,
Diego
Giovambattista Fazioli dijo:
@ Diego0: Gracias por los enlaces
En el sitio de Diego Javascript es un script que también simula la caída de copos de nieve. La ventaja de usar Javascript es colocar las hojuelas en nuestra página, que con Flash - possibiloe mientras que es a través de la transparencia - impide que hizo la selección.
Chris dijo:
Hola hijo que vino a buscar en vedendoti MyBlogLog en mi blogghetto. Es ignorante acerca de flash y sus alrededores, yo no sabía era OOP acción script. ¿Quién sabe cuándo nos dará un vistazo, lo que me atrae
Hola hola
Giovambattista Fazioli dijo:
@ Chris: Gracias por visitar! Vi que estás comentar OO en la programación con C + +! Excelente elección. Para hacer frente así OO conceptos seguramente debe saber que el C C + +. Actionscript no es tan "puro" como C + +, aunque cada versión está más cerca y más cerca de la "estrecha" metodologías de desarrollo OO. Sin embargo, si usted puede trabajar con Flash, incluyendo ActionScript 2.0, usted puede encontrar seguramente muchas cosas esclarecedora.
Widget de Navidad: la nieve caída en Flash | Undolog.com dijo:
[...] Actualización: servicio no disponible - Véase Crear un copo de nieve en Flash [...]