Skapa en snöflinga i Flash
Torsdagen den 6 december 2007Några läsare har frågat mig hur det skapades snöflinga, så realistiskt, manicken jul. De som har laddat ner källan förmodligen redan vet ... Men det var mycket enkelt. Först av allt vill jag valt Brush verktyg i Flash och jag har utformat en punkt.
![]() | ![]() |
Jag har vänt det till en symbol och jag har två effekter tillämpas i rätt ordning: avfasa och Blur:
![]() | ![]() |
Resultatet blev: 
I detta MovieClip (symbol) har jag anslutit en enkel klass CNeve de facto intelligens stapelvara på sig själv:
- { CNEVA klass sträcker MovieClip (
- _interval; var privata _interval;
- _maxy: Number ; var privata _maxy: Antal;
- / /
- CNEVA funktion () (
- this , "_move" , 25 ) ; _interval = setInterval (detta, "_Move", 25);
- ( ( Stage . height + 256 ) / 2 ) +_getRndRange ( - 20 , - 7 ) ; _maxy = Math. runda ((Stage. höjd + 256) / 2) + _getRndRange (- 20 - 7);
- )
- / /
- _getRndRange ( min : Number , max : Number ) : Number { Privat tillställning _getRndRange (min: Antal, max: Number): Antal (
- = Math . floor ( Math . random ( ) * ( max- min + 1 ) ) + min ; var randomNum: Antal = Math. golvet (Math. slumpmässigt () * (max-min + 1)) + min;
- randomNum avkastning;
- )
- / /
- _move ( ) { _Move Privata funktion () (
- 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 ) { om (_y> _maxy) (
- _interval ) ; clearInterval (_interval);
- )
- ; updateAfterEvent ();
- )
- )
Metoden _move() innehåller intelligens av råvara, eller hösten, mycket enkelt. Genom att ändra slumpmässigt _x += ((_getRndRange(-50, 50))>0) ? 1 : -1;, _x += ((_getRndRange(-50, 50))>0) ? 1 : -1;, genom att införa en _getRndRange(-550, 50), en vind effekt, nämligen flingor faller med en viss lutning. I synnerhet de flingor kan skicka till någon sida använder en kod så här:
- _getRndRange ( _getRndRange ( - 350 , - 50 ) , _getRndRange ( 50 , 350 ) ) ) > 0 ) ? 1 : - 1 ; _X + = ((_getRndRange (_getRndRange (- 350, - 50), _getRndRange (50, 350)))> 0)? 1 - 1;
Rotationen _rotation += _getRndRange(1, 5); sedan, ger ytterligare information till basvara själv.
När jag skapar en basvara (se funktion creaFiocco() nedan) Jag lade också till en alpha=90 en skala slumpmässigt, att få snöflingor i olika storlekar.
- / / Skapa stapelvara
- creaFiocco funktion () (
- 20 , 100 ) ; var s = randRange (20, 100);
- - Math . floor ( ( Stage . width - 320 ) / 2 ) , Math . round ( ( Stage . width + 320 ) / 2 ) ) ; var x = randRange (- Math. golvet ((Stage. bredd - 320) / 2), Math. runda ((Stage. bredd + 320) / 2));
- . floor ( ( ( Stage . height - 256 ) / 2 ) ) - 10 ; var y = - Math. golvet (((Stage. höjd - 256) / 2)) - 10;
- "neve" , "neve_" + index , index , { _x :x, _y :y, _xscale :s, _yscale :s, _alpha : 90 } ) ; c_mc. attachMovie ( "snö", "neve_" + index, index, (_X: x, _y: y, _xscale: s, _yscale: s, _alpha: 90));
- index + +;
- index> 1000 ) { if (index> 1000) (
- ; Index = 1;
- "c_mc" , 2 ) ; c_mc = createEmptyMovieClip ( "c_mc", 2);
- )
- )
Och det är allt ...
Glömde ... Hälsningar till alla och Trevlig helg ... ![]()






















Dieg0 sa:
Kolla min webbplats: http://www.Dieg0.com.ar
Hälsningar,
Diego
Giovambattista Fazioli sa:
@ Diego0: Tack för länkar
På platsen för Diego Javascript är ett skript som simulerar också omfattas flingor av snö. Fördelen med att använda Javascript är att placera flingor på vår sida, som med Flash - medan possibiloe är genom öppenhet - förhindrar gjorde sedan valet.
Chris sade:
Det hello son kom att bläddra i vedendoti MyBlogLog på min blogghetto. Det är okunniga om blixten och dess omgivning, att jag inte vet var OOP åtgärder skript. Vem vet när den kommer att ge oss en titt, vad som lockar mig
Hej hej
Giovambattista Fazioli sa:
@ Chris: Tack för besök! Jag såg att du comentar i OO programmering med C + +! Utmärkt val. Att behandla och OO begrepp säkert vet att C C + +. ActionScript är inte lika "rent" som C + +, även om varje version är närmare och närmare det faktiska "nära" OO utveckling metoder. Men om du kan arbeta med Flash, inklusive ActionScript 2.0, du kan säkert hitta många saker upplysande.
Widget jul: Snö faller i Flash | Undolog.com sa:
[...] Uppdatering: Tjänsten är inte tillgänglig - Se Skapa en snöflinga i Flash [...]