html5 lærred optimering: et konkret eksempel

, html5 lærred optimering: et konkret eksempel,,,,, 4,,,,,,,,, 8,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, hvis du har gjort javascript udvikling længe nok, har du sandsynligvis smadrede din browser et par gange.det problem, som viser sig at være en javascript insekt, som en uendelig, mens, loop; hvis ikke, den næste mistænkte er side forandringer eller animations - den slags, der består i at tilføje og fjernelse af elementer fra webstedet eller gennemførelse af informationstiltag css stil egenskaber.denne pædagogiske fokuserer på at optimere animeringer, der er fremstillet ved hjælp af js, og html5, < lærred > element.,,,, denne lektion starter og slutter med, hvad html5 animation dims, du se under:, vil vi tage det med os på en rejse, udforskning af de forskellige nye lærred optimering tips og teknikker og anvende dem til den dims er javascript kildekode.målet er at forbedre den dims er henrettelse hastighed og ender med en bedre, mere flydende animation dims, der drives af enklere, mere effektiv javascript.,, kilden downloade indeholder html og javascript fra hvert enkelt skridt i ministeriet, - - så du kan følge fra ethvert punkt, lad os tage det første skridt.,,, trin 1: spille film trailer, den dims ovenfor er baseret på en film trailer sintel, en 3d animerede film i blenderen institut.det er opbygget ved hjælp af to af html5 er mest populære tilføjelser:, < lærred > og < video >, elementer,.,,, < video >, belastninger og spiller sintel video - fil, mens, < lærred >, skaber sine egne animation sekvens ved at tage billeder af spille video og blande det med tekst og grafik.når du klik til at spille den video, lærred fjedre til livet med en mørk baggrund, at der er en større sort og hvidt kopi af spille video.mindre, farvet skærm billeder af videoen er kopieret til gerningsstedet, og svæve over det som en del af en film, rul illustration.,,, i øverste venstre hjørne har vi den titel og et par linjer af beskrivende tekst, som svinder ind og ud, som informationstiltag spiller.manuskriptet er ydeevne hastighed og beslægtede målekriterier indgår som en del af informationstiltag, i den lille sorte boks på det nederste, venstre hjørne med en figur og levende tekst.vi kigger på netop dette punkt mere indgående senere. endelig er der et stort roterende blade, der flyver på stedet i begyndelsen af informationstiltag, hvis grafiske er ladt fra en ekstern men heller ikke dér er menneskene sikre image fil.,,, trin 2: baggrund den kilde, kilde - koden indeholder de sædvanlige blanding om: css og javascript.The HTML is sparse: just the ,<canvas>, and ,<video>, tags, enclosed in a container ,<div>,:, ,<div id="animationWidget" > \t<canvas width="368" height="208" id="mainCanvas" ></canvas>\t \t<video width="184" height="104" id="video" autobuffer="autobuffer" controls="controls" poster="poster.jpg" > \t\t<source src="sintel.mp4" type="video/mp4" ></source> \t\t<source src="sintel.webm" type="video/webm" ></source> \t</video> </div>, ,The container , <div> , is given an ID (,animationWidget,), which acts as a hook for all the CSS rules applied to it and its contents (below)., , #animationWidget{ \tborder:1px #222 solid; \tposition:relative; \twidth: 570px; højde: 220px;}&#animationwidget lærred (grænse: 1pxÞ fast. position: absolutte, top. 5px; tilbage: 5px;}&#animationwidget video (holdning: absolutte, top. 110px; tilbage: 380px;}, mens html og css er tilsat krydderier og krydderiblandinger. den javascript - kød af widget.,,, på toppen, har vi de vigtigste ting, der vil blive anvendt, ofte gennem manuskriptet, herunder henvisninger til gulvet element og 2d sammenhæng.,,, init(), funktion kaldes når videoen begynder at spille, og opstiller alle de genstande, der anvendes i manuskriptet.,,, samplevideo(), funktion fanger den nuværende ramme af spille video, mens setblade(), belastninger, et image udadtil, der kræves af informationstiltag, tempoet og c.indhold af lærred animation kontrolleres af det, main(), funktion, som er manuskriptet er hjerteslag.løb med regelmæssige mellemrum, når den video, begynder at spille, tegner den hvert billede af aktivering af første clearing - lærredet, så ringer hver af manuskriptet er fem træk funktioner:,,, drawbackground(),,,, drawfilm(),,,, drawtitle(),,,, drawdescription() drawstats(),,,,,,,,,,,, som navnet antyder, at funktion er ansvarlig for udarbejdelsen af et punkt på dagsordenen i animation scene.strukturering af kode på denne måde forbedrer fleksibilitet og gør fremtiden vedligeholdelse lettere.,, skal den fuldstændige manuskript er vist nedenfor.tag et øjeblik til at vurdere det, og se om du kan se ændringer ville du gøre for at fremskynde den.,, (function() (hvis (!dokument. createelement ("eller"). getcontext) {tilbage;} //lærredet, tag ikke støttede var maincanvas = dokument. getelementbyid ("maincanvas"); //punkter til html lærred element ovenfor var maincontext = maincanvas. getcontext ('2d); //tegningen i forbindelse med lærred element var video = dokument. getelementbyid ("video"); //peger på http: //video element var frameduration = 33; //informationstiltag hastighed i millisekunder video. addeventlistener ("play", lokalitet); //den init() funktion kaldes, når brugeren trykker spille & videoen starter /fortsætter spille video. addeventlistener (", sluttede, function() {drawstats (korrekt)}); //drawstats() kaldes en sidste gang, da den video, at sammenfatte alle statistikkervar videosamples; //- det er en række billeder, bruges til at lagre alle billeder af spille video taget over tid.disse billeder er vant til at skabe film rulle »var baggrunde. //- det er en række billeder, bruges til at lagre alle billeder af spille video taget over tid.disse billeder er anvendt som lærred baggrund var blade; //et lærred element til at lagre billedet ud fra blade.png var bladesrc = "blade. men heller ikke dér er menneskene sikre; //vej til blade image kilde fil var lastpaintcount = 0; //butikker i værdien af mozpaintcount stikprøven var paintcountlog = []; ////////et system, der indeholder alle de målte værdier for mozpaintcount over tid var speedlog = []; //et system med gennemførelsen hastigheder på main(), målt i millisekunder var fpslog = []; //et system med de beregnede billeder pr. anden (fps) i manuskriptet, målt ved at tælle de opkald til main() pr. sekund var framecount = 0; //tæller antallet af gange main() gennemføres pr. sekund.var framestarttime = 0; //sidste gang main() blev kaldt //ringede, da den video, begynder at spille.indeholder alle de javascript objekter, der kræves for at skabe det lærred, animation og måle præstationer funktion init() (hvis (video.currenttime > 1) {tilbage;} bladesrc = nye image(); bladesrc.src = "blade. men heller ikke dér er menneskene sikre" bladesrc.onload = setblade; baggrunde = [...], videosamples = [...], fpslog = [...], paintcountlog = []; hvis (window.mozpaintcount) (lastpaintcount = window.mozpaintcount;} speedlog = [...], framecount = 0, framestarttime = 0, main(); settimeout (getstats, 1000)} //som manuskripter vigtigste funktion, der kontrollerer rytmen af informationstiltag funktion main() {settimeout (vigtigste, frameduration); hvis (video.paused



Previous:
Next Page: