Fyrverkerier (web animering) (version 1.0)



Klicka på länken för att titta på fyrverkeri animeringen (Fyrverkeri Animation).

Detta projekt är en animering av fyrverkerier som tog över 8 timmar av arbete att skapa. Om du vill visa animeringen, vänligen följ denna länk med en annan webbläsare än Internet Explorer. Jag skulle också uppskatta ert stöd i instructables teknik contest.

Här är en länk för en jsfiddle med kodkommentarer läggs till nästan varje enskild rad med JavaScript att tillåta Javascript orienterade människor att läsa tillsammans. Fyrverkeri animation med kommentar anteckningar.

Omsorg av hög CPU-användningen som svar på datorn bearbetar denna webbsida, jag ställde en fråga på kod översyn stackexchange som du kan läsa här. Svaret jag fick föreslog att använda canvas eller använda requestAnimationFrame(); (infödd Javascript-funktionen) att förhindra användningen av alla timers skriptet använder för närvarande. Jag tror jag kommer att lära canvas snart eftersom webbläsare inte är uppenbarligen byggda för att kunna bearbeta animationer som denna i DOM (dokument objektmodellen [ DOM Wikipediaartikeln ]) ensam.

Om du inte är flytande i JavaScript, kan du förstå hur detta fungerar genom att läsa nedan.

Stjärnor:

När sidan laddas, funktion initialize(); kallas som sätter upp allt. Det börjar med att ställa in stjärnorna i bakgrunden genom att skapa en stjärna med slumpmässiga x y koordinater längs vyport bredd och höjd. Det kommer att skapa en stjärna för varje pixel att visningsområdet är bred.

Visningsområdet är den synliga delen av sidan. Visningsområdets bredd är bredden på den synliga delen av sidan och visningsområdets höjd är höjden av den synliga delen av sidan.

Här är den långa definitionen av "vyport" vyport Wikipediaartikeln. Korta definitionen är att visningsområdet är området av synlig höjd av sidan (multiplicerat) synliga bredd på sidan.

Stjärnan är sedan placerad slumpmässigt inuti visningsområdet.

Skapandet av fyrverkerier:

Fyrverkerier skapas när stjärnorna är klar kommer att vara :)

Varje fyrverkeri är 100px under visningsområdet (så du inte kan se det) och tilldelas en random x-koordinaten och en slumpvis färg. Varje fyrverkeri ges också 12 strålar (de dyker upp när fyrverkeripjäs exploderar). Högst upp i dokumentet anges variablerna som som ger rotation och x-y-position varje fyrverkeri Ray, i förhållande till fyrverkeri. Dessa positioner och rotation tilldelas till varje stråle av fyrverkeri.

Om webbläsaren stöder filter:blur(); en suddig bakgrund skapas för fyrverkeri.

Fyrverkeri timingfunktioner och animation:

Efter att alla fyrverkerier skapas, den funktion fireworkTiming(); kallas. Den här funktionen loopar igenom varje fyrverkeri och kallar den kapslade funktionen createTimer();. Kapslade funktionen skapar en något varierande timer för varje fyrverkeri och när timern går ut den givna fyrverkeri är animerad mellan 7/10ths och 9/10ths av visningsområdets höjd. Om alla fyrverkerier har varit animerade, är de alla återställa till ursprungligt skick med ny position och färg tilldelningar. Efter fyrverkeri skickas i "luften", en funktion som kallas explodeTimer(); kallas som skapar en timer som väntar på fyrverkeri till nästan slut den animering som kastar den i luften och sedan expanderar fyrverkeri strålar och lägger den suddig bakgrunden för att göra det verkar som om det exploderar. En för 800 millisekunder timern och när den tiden är slut, den hela fyrverkeri börjar tona ut.

Ändra storlek på funktion:

När webbläsarfönstret ändrar storlek, måste flera saker ske för att se till att fireworks eller stjärnor fortfarande har önskat beteende. För det första återställs variablerna vyport bredd och höjd så att alla de andra beräkningar som diskuterats tidigare som beror på dessa variabler är korrekt. Eftersom omformateringsläget händelsen är en återkommande händelse och bränder ibland tiotals gånger vid storleksändring webbläsarfönster och att göra bättre effektivitet än att återskapa allt på varje ändra storlek, det finns en timer inställning som bara kallar initialize(); funktionen 100 millisekunder efter den allra sista ändra storlek på händelsen, vilket förhindrar fullständig överbelastning av webbläsaren försöker hålla jämna steg med annars överväldigande koden.

Relaterade Ämnen

Raspberry webbserver skickar GET data till Arduino Nano kör 6 servon

http://www.youtube.com/watch?v=f7oSqLO9iJoDetta är ett litet projekt jag gjorde för en kollega som bygger en 1/48 skala RC modell av en Fletcher-klass jagare (Japp... det gör "modellen" ca 8 fot lång!) Han frågade om jag kunde animera 5 x MKIII...

CupBot - 3D tryckt Robotics plattform

Här är en stor helg robotics projekt som du kan genomföra kallas CupBots baserat på Raspberry Pi och BeagleBone svart som är kreditkort storlek datorer och även 3D-utskrifter...De flesta 3D tryckta delar är gemensamma för både versionen av CupBot och...

2D tecknad Animation av Instructable Robot

Den bekant instructable robot som vi alla har vuxit till kärlek har nu modelleras i Synfig Studios fantastiska 2D-animation programvara och publiceras på dessa sidor för alla att använda. Fullt fungerande robot modellfilen ingår och allt är gratis. D...

Nr-sy Two-Face kostym (Lego Kids Version)

Min äldsta son ville vara "Two-Face" från Batman (aka Harvey Dent) för Halloween i år.Som de åtta - åring var att han var när jag skrev detta Instructable, hans huvudsakliga exponering för Two-Face det LEGO Batman spel.Jag sökte och sökte på nät...

Introduktion till installera web apps.

Webbapplikationer är en välsignelse för datormiljön. Traditionellt skulle du ladda dator program lokalt på varje system. Även med program för automatiserad kan distribution system, fortfarande vara stödja intensiva. Med web-applikationer kan du läsa...

Omfattande Design & byggandet av Papercraft Anime peruker

detta är min första Instructible, så tänk med mig. :-)Ivrig cosplayers som jag själv, har över hela världen, länge varit frustrerad av de till synes mystiska, allvar-trotsar frisyrer som många anime och spel tecken har. Vi spenderar stora pengar på p...

Marknadsföra ditt företag med flera plattformar web apps

nyligen hittade jag en webbplats som tillåter dig att göra en iPhone web app som kan läggas på hemsidan och har utseendet på en vanlig app.Med denna tjänst kan du skapa en iphone app utan en mac eller sdk.Med den här tjänsten kommer din apps att arbe...

Animais feitos de Caños de PVC • PVC Pipe djur leksak

Esse é um brinquedo bem simples de ser feito e você pode usar aquelas SLU sobras de cano de PVC para fazê-lo. Basicamente, são alguns cortes e furos. EU usei uma Dremel, mas acredito que o mesmo trabalho pode ser feito com uma serra tico-tico manual....

Skapa animering och spel: kapitel 1 komma igång.

Välkommen till först av en multi-del serien:Att skapa animering och spel: kapitel 1 komma igångDenna serie kommer att dyka in med Propeller microcontroller baserat system för att skapa din egen grafik, animering och video spel. Jag antar att du bara...

Skapa animering och spel: kapitel 2 spelenheter

Välkommen till andra av ett flerdelat series:Att skapa animering och spel: kapitel 2 spelenheterDenna serie kommer att dyka in med Propeller microcontroller baserat system för att skapa din egen grafik, animering och video spel. Jag antar att du bara...

Konserverad Eiffeltornet Stop Motion projektet med fyrverkerier och trädgårdar

Vi älskar att göra animeringar, så när Andy gavs en "Eiffel tornet i en tenn" för sin födelsedag, det verkade ett bra ämne för en stop-motion. Han hade tanken att vi bara skulle göra en time-lapse av honom att sätta ihop, som det var en riktigt...

The Word Clock - Arduino version

**************************************************************************Stora uppdateringar - en mycket bättre inhägnad för denna klocka har utformats - kolla in**************************************************************************Förra månaden...

Pussel och drakar Nybörjarguide (uppdaterad till version 8.6)

Jag passerade nyligen min 500: e dag på pussel och drakar och jag kan bara sluta inte. : DFör er inte säker är vad pussel och drakar, ta en titt på den officiella hemsidan. Det är ett pussel baserat Pokemon-ish battle spel där du bygger lag av monste...

Göra en Stop Motion Animation - för nybörjare

Har du någonsin undrat hur de Pixar filmer görs? Eller hur Aardman gör det, med Shaun fåren, och Wallace och Gromit? Tja, har du kommit till rätt ställe!Stop motion-var den första formen av animation, och den används fortfarande mycket idag! Möjlighe...

3D skriva ut och animera själv

Detta instructable syftar till att visa dig den steg för steg-process för takin en full body scan och manipulera till någon annan plats för en 3D utskrift. Jag gjorde steg så kort som möjligt, så någon skulle kunna göra sina egna 3D scan enkelt.Jag t...

Att göra en 3D-animation från en 2D bild

Denna video instructable är "making of" för en 3D promo video jag har jobbat på, för en Beatles-bok.Utgångspunkt:En detaljerad svartvita fotorealistiska ritning av medförfattare, Jeff Aarons, professionell illustratör, som användes på främre oms...

Film till Web-Comic konvertering

jag nyss fick idén att det kan bli kul (typ av opraktiskt, nästan säkert olagligt, men kul ändå) för att ta skärmdumpar från viktiga skott i filmer och digitalt rita om dem i Illustrator eller liknande program, lägga till i word bubblor och liknande....

Rita: Anime tecken

Hey guys, ledsen för att vänta--jag har varit ut på länge, jag är säker några du har märkt av... Eller inte. Anyway, här är min senaste Instructable-- och innan jag får några galna ranters, låt mig gå över allt som är fel med min ritning:Ja, det är e...

Hur att animera ett Walkcycle från The Front i Flash

visste du att ju mer du går, desto tyngre du få? Detta är naturligtvis inte för gott eller löpbandet tillverkare skulle gå i konkurs och kroppen bryta skulle vara överflödigt, men det är sant, även om det för en bråkdel av tiden. Lagar om relativitet...