Opprette generativ kunst med HYPE

Creating generativ kunst med HYPE
Del
Del
Del
Del

Dette Cyber ​​mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.
Dette innlegget er en del av en serie som heter You Do The Math.Simulate prosjektil Motion med Action 3.0Playing Rundt med Elastic Kollisjoner

I løpet av denne opplæringen vi skal knytte matematikk og design sammen. Vi vil utforske Branden Hall og Joshua Davis 'HYPE rammer og skape generativ kunst fra kode.




Endelig resultat Forhåndsvisning

La oss ta en titt på den endelige Resultatet vi skal jobbe mot:



Trinn 1:. Prosjektstruktur

Før dykking hodet langt inn koden la oss ta et kort øyeblikk for å gjøre oss kjent med prosjektfiler

Inne kilden .zip filen du vil finne en mappe for hver betydelig skritt, slik at du kan se nøyaktig hvilke endringer som er gjort. Dessuten vil du finne en mappe som heter Base, lage en kopi av denne mappen som dette er vil tjene som utgangspunkt.

Inne i Base mappen vi har en bin
mappen der vår SWF vil bli offentliggjort. En src
mappen som inneholder vår Actionscript 3 og Flash-filer, og til slutt en lib
mappe hvor vi vil lagre HYPE ramme sin SWC-filer



Trinn 2.: Får HYPE

Neste opp, må vi ta tak i siste versjon av HYPE rammeverket fra sitt hjem på www.hypeframework.org.

Når nedlastingen er fullført, åpne ZIP-filen. Du vil finne to SWC-filer som heter hype-framework.swc Hotell og hype-extended.swc
. Kopierer begge disse til din Base \\ lib mappen.

Disse SWC-filer er egentlig en samling av kildefiler for rammene, alt sammen i én fil for enkel.



Trinn 3: Legge SWCS til Flash

Det siste trinnet er nødvendig for å få alt opp og kjører er å fortelle Flash for å lete etter de to nye SWC-filer når vi kompilere filmen, ellers vil det kaste en hel haug med feil vår måte, ikke hyggelig!

Åpne Main.fla
inne i Base \\ src
mappen, og velg Fil, Publish Settings. Velg fanen Flash som vist, i det nye vinduet som åpnes velger du Library Path kategorien.

Trykk på "Bla gjennom for å SWC" File-knappen og fortsett å legge begge SWC-filer til Flash-fil. Når dette er fullført er det på tide å begynne å legge noen kode



Trinn 4: Init HYPE

Åpne opp Main.as kildefilen i din valgte editor. Legg til følgende private eiendommer og initHype () metode:
public class Hoved strekker MovieClip {//private eiendommer private Var bitmapCanvas: BitmapCanvas; private Var clipContainer: Sprite; private Var objectPool: ObjectPool; /** * Konstruktør * /public funksjonen main () {//inits Hype rammeverket initHype (); } /** * Initiering av Hype medlemmene vi skal bruke og konfigurasjon før * å kjøre animasjonen * /private funksjon initHype (): void {//den clipContainer brukes som en forelder for alle våre gjenstander clipContainer = new Sprite (); addChild (clipContainer); }}

I de neste skrittene vi skal se på hver av disse objektene vi har lagt som private eiendommer, starter med clipContainer Sprite.

Som vår design kommer til å ha over hundre objekter all flytte rundt på skjermen på en gang, vi kommer til å trenge noe å huse dem alle - bare å legge dem til Stage vil bli problematisk lenger ned linjen. Svaret er å opprette en vanlig AS3 Sprite til å fungere som en forelder



Trinn 5:. De BitmapCanvas

Den første virkelige delen av HYPE, de BitmapCanvas kan betraktes som en Sprite eller enda bedre, en Bitmap /BitmapData til som vi skal male våre objekter, hver ramme, som en malere lerret.

Vi skaper det like under clipContainer kode og definere det med en bredde og høyde for å matche scenen. Vi legger det til Stage men også fortelle det til startCapture (clipContainer, sant), dette rett og slett forteller BitmapCanvas å ta et øyeblikksbilde av clipContainer hver ramme. For nå skjønt, holde dette kommentert ut Twitter /** * initiering av Hype medlemmene vi skal bruke og konfigurasjon før * å kjøre animasjonen * /private funksjon initHype (): void {//den clipContainer brukes som en forelder for alle våre gjenstander clipContainer = new Sprite (); addChild (clipContainer); //Tenk på BitmapCanvas som et tomrom vi vil "maling" //hver ramme med nye bildedata bitmapCanvas = nye BitmapCanvas (stage.stageWidth, stage.stageHeight); //bitmapCanvas.startCapture(clipContainer, true); addChild (bitmapCanvas); }}



Trinn 6: ObjectPool

Hvis du har jobbet med spill har du sannsynligvis kommet over begrepet en ObjectPool. Som å lage nye objekter er for mye av en hit på prosessoren skaper vi en pool av en spesifisert mengde gjenstander før spillet eller programmet starter. Vi vil deretter bruke objektene fra dette bassenget og ved å kjøre ut ville vi resirkulere og gjenbruke dem alle igjen, som unngår å skape nye objekter. Dette er ofte brukt for kuler /lasere i spill og den samme logikken brukes i HYPE.

Hvis du tar en titt på Main.fla biblioteket i Flash vil du se Jeg har opprettet en MovieClip kalt circleShape og gitt det Linkage Identifier av circleShape slik at vi kan lage flere kopier av dette objektet med kode; Dette er hva vår ObjectPool vil Hus

Legg til ObjectPool under BitmapCanvas kode, slik:. Twitter /** * initiering av Hype medlemmene vi skal bruke og konfigurasjon før * å kjøre animasjonen * /privat funksjon initHype (): void {//den clipContainer brukes som en forelder for alle våre gjenstander clipContainer = new Sprite (); addChild (clipContainer); //Tenk på BitmapCanvas som et tomrom vi vil "maling" //hver ramme med nye bildedata bitmapCanvas = nye BitmapCanvas (stage.stageWidth, stage.stageHeight); //bitmapCanvas.startCapture(clipContainer, true); addChild (bitmapCanvas); //Oppretter en samling av 10 objekter og lagre dem i en ObjectPool //for bruk i animasjonen objectPool = new ObjectPool (circleShape, 10); }



Trinn 7: Opprette objekter ved hjelp ObjectPool.request ();

Nå har vi vår kjernespillere oppsett, den clipContainer, de BitmapCanvas og ObjectPool med sine 10 klipp, er det på tide å begynne gjøre ting flytte

For å få et element fra ObjectPool vi kan bruke objectPool.request (.); som vil gi oss en circleShape MovieClip fra Flash Library å arbeide med.

ObjectPool gir oss også objectPool.onRequestObject () metode som er en praktisk måte å tildele egenskapene til et klipp hver gang vi be om en. Legg til følgende under der du instansiert den ObjectPool:
//skape en samling av 10 objekter og lagre dem i en ObjectPool //for bruk i animasjonen objectPool = new ObjectPool (circleShape, 10); //Hver gang vi ber om en ny form fra bassenget //vil det utføre følgende objectPool.onRequestObject = function (klipp: MovieClip): void {clip.x = Math.random () * stage.stageWidth; clip.y = Math.random () * stage.stageHeight; clipContainer.addChild (klipp); }



Trinn 8: Se resultatet

Med det nye koden lagt til, hver gang vi ber om et objekt fra bassenget ved hjelp objectPool.request () det vil skape en circleShape. Legg det til clipContainer og plasser den tilfeldig på skjermen. Du kan teste dette ved å endre konstruktøren å se ut som følgende: Twitter /** * Konstruktør * /public funksjonen main () {//inits Hype rammeverket initHype (); objectPool.request (); }

Hvis alt gikk bra du bør ha et enkelt, ensom sirkel på skjermen



Trinn 9:. Ber om alle objekter samtidig

Husker du vi setter ObjectPool størrelse til 10? Vel, vi kommer til å øke innsatsen og øke dette til 100 gjenstander ved å endre følgende:
//skape en samling av 10 objekter og lagre dem i en ObjectPool //for bruk i animasjonen objectPool = new ObjectPool (circleShape , 100);

Vi kan endre tidligere anmodning uttalelse til å lyde som requestAll () slik: Twitter /** * Konstruktør * /public funksjonen main () {//inits Hype rammeverket initHype (); objectPool.requestAll (); }

Nå bør vi ha 100 sirkler spredt over skjermen område



Trinn 10:. Legge FixedVibrations

Nå har vi våre 100 circleShapes fordelt rundt på skjermen er det på tide å gjøre vår design kommer til liv ved å legge til bevegelse.

La oss begynne med å påføre en FixedVibration til alfa og skala egenskapene til hvert klipp. Vi kan bruke ObjectPools onRequestObject metode for å gjennomføre det som vist:
//skape en samling av 10 objekter og lagre dem i en ObjectPool //for bruk i animasjonen objectPool = new ObjectPool (circleShape, 100); //Hver gang vi ber om en ny form fra bassenget //vil det utføre følgende objectPool.onRequestObject = function (klipp: MovieClip): void {clip.x = Math.random () * stage.stageWidth; clip.y = Math.random () * stage.stageHeight; //Legge en FixedVibration til alfa og skala egenskapene til hver circleShape når ba Var alphaVib: FixedVibration = new FixedVibration (klipp, "alpha", 0,9, 0,05, 0,5, 1,5, false); Var scaleVib: FixedVibration = new FixedVibration (klipp, "scale", 0,9, 0,05, 0,05, 0,8, false); alphaVib.start (); scaleVib.start (); clipContainer.addChild (klipp); }

La oss ta en nærmere titt på de FixedVibration stedene vi opprettet. Hver FixedVibration objekt skaper vi tar 7 parametre, henholdsvis de er som følger:.

  • Hensikten å bruke FixedVibration til, i vårt tilfelle vår circleShape kalt "klipp"

    Eiendommen å bruke FixedVibration til, denne gangen vi jobber med alfa og skalaegenskaper.

    Den tredje parameteren er våren den FixedVibration, jo høyere tall jo mer "spenstig" bevegelsen. En verdi mellom 0 og 1 vil fungere best.
  • Neste er opp Brukervennlighet vibrasjon, jo lavere verdi desto raskere vil det gli mellom følgende to verdier. En verdi mellom 0 og 1 vil fungere best.
  • Den laveste verdien er opp neste, vil dette være den laveste på vibrasjonen vil hit.
  • Tilsvarende maksimumsverdien vil være den maksimale verdien vibrasjonen vil hit.

    Endelig er relativ siste parameter, misligholde denne til false.

    Så hvordan alle disse passer sammen? La oss se på hvordan skalaen eiendommen er berørt av FixedVibration. Det har gitt minimums- og maksimumsverdier på 0,05 og 0,8, er Spring verdi ganske høy på 0,9 og Hjelpemiddel er ganske lav på 0,05 noe som gjør det skalere uberegnelig og rask.

    Ha en leke seg med disse verdiene for å få en føler for hvordan de påvirker bevegelsen

    Når vi teste våre Flash-fil vi skal få noe som dette.



    Trinn 11: Legge til en VariableVibration

    Svært lik til FixedVibration, vil VariableVibration justere en egenskap av et objekt med en verdi som svinger. Forskjellen er at VariableVibration ikke er lineær som navnet antyder.

    Endre koden som følger for å plassere klippene til midten av scenen, bare denne gangen vil vi bruke en VariableVibration til x og y-verdier for å begynne å se noen bevegelse
    //hver gang vi ber om en ny form fra bassenget //vil det utføre følgende objectPool.onRequestObject = function (klipp: MovieClip): void {clip.x = stage.stageWidth /2; clip.y = stage.stageHeight /2; //Legge en VariableVibration for x /y bevegelse av hver circleShape Var XVIb: VariableVibration = new VariableVibration (klipp, "x", 0,97, 0,03, 40); Var yVib: VariableVibration = new VariableVibration (klipp, "y", 0,97, 0,03, 40); xVib.start (); yVib.start (); //Legge en FixedVibration til alfa og skala egenskapene til hver circleShape når ba Var alphaVib: FixedVibration = new FixedVibration (klipp, "alpha", 0,9, 0,05, 0,5, 1,5, false); Var scaleVib: FixedVibration = new FixedVibration (klipp, "scale", 0,9, 0,05, 0,05, 0,8, false); alphaVib.start (); scaleVib.start (); clipContainer.addChild (klipp); }

    La oss ta en nærmere titt på de VariableVibration stedene vi opprettet. Hver VariableVibration objekt skaper vi tar bare fem parametere, henholdsvis de er som følger:.

  • Hensikten å bruke VariableVibration til, i vårt tilfelle vår circleShape kalt "klipp"

    eiendom å bruke VariableVibration til, denne gangen vi jobber med x og y egenskaper.

    Den tredje parameteren er våren vibrasjonen.

    Neste er opp Brukervennlighet vibrasjons .

    Den siste parameteren er Range av verdier som er produsert. Jo høyere tall, jo mer uberegnelig effekten

    Vår Flash-fil skal se omtrent slik ut når publisert:.



    Trinn 12: Legge Noen Wow

    Det begynner å se bra ut, men vi kan gjøre mye bedre! Husk at bitmapCanvas.startCapture () linje jeg ba deg holde uncommented vei tilbake i trinn 6? Gå videre og uncomment det deretter teste filmen igjen

    Dette er mer som det



    Trinn 13:.! En rask Trick for Rotation

    Et veldig enkelt triks å legge til en spiralbevegelse er å legge til en annen vibrasjon til klippets rotasjon eiendom som så:
    //hver gang vi ber om en ny form fra bassenget //vil det utføre følgende objectPool.onRequestObject = function (klipp: MovieClip) : void {clip.x = stage.stageWidth /2; clip.y = stage.stageHeight /2; //Legge en VariableVibration for x /y bevegelse av hver circleShape Var XVIb: VariableVibration = new VariableVibration (klipp, "x", 0,97, 0,03, 40); Var yVib: VariableVibration = new VariableVibration (klipp, "y", 0,97, 0,03, 40); xVib.start (); yVib.start (); //Legge en FixedVibration til alfa og skala egenskapene til hver circleShape når ba Var alphaVib: FixedVibration = new FixedVibration (klipp, "alpha", 0,9, 0,05, 0,5, 1,5, false); Var scaleVib: FixedVibration = new FixedVibration (klipp, "scale", 0,9, 0,05, 0,05, 0,8, false); alphaVib.start (); scaleVib.start (); //Legge en FixedVibration til rotasjonen av circleShape Var rotationVib: FixedVibration = new FixedVibration (klipp, "rotasjon", 0,9, 0,05, 0, 360, false); rotationVib.start (); clipContainer.addChild (klipp); }



    Trinn 14: A Quick Trick for Rotation

    Før test av dette hoppet over til Flash og åpne circleShape MovieClip i biblioteket

    Som vist, dra sirkelen bare. off fra sentrum i alle retninger. Jo lenger du flytter den fra sentrum, vil flere spiraler vises i design når du publiserer:



    Trinn 15: ExitShapes

    Et problem med vår nåværende animasjon er at når klipsene flytte ut av skjermen, de svært sjelden kommer tilbake. Vi kan løse dette lille problemet ved å opprette en ExitShapeTrigger.

    En ExitShapeTrigger er et område som trygt for klippet. Når klippet forlater dette området må vi utføre noen form for funksjon, for eksempel ber om en ny klipp fra ObjectPool

    Vi definerer en ExitShapeTrigger som følger:.
    //Hver gang vi ber om en ny form fra bassenget //vil det utføre følgende objectPool.onRequestObject = function (klipp: MovieClip): void {clip.x = stage.stageWidth /2; clip.y = stage.stageHeight /2; //Legge en VariableVibration for x /y bevegelse av hver circleShape Var XVIb: VariableVibration = new VariableVibration (klipp, "x", 0,97, 0,03, 40); Var yVib: VariableVibration = new VariableVibration (klipp, "y", 0,97, 0,03, 40); xVib.start (); yVib.start (); //Legge en FixedVibration til alfa og skala egenskapene til hver circleShape når ba Var alphaVib: FixedVibration = new FixedVibration (klipp, "alpha", 0,9, 0,05, 0,5, 1,5, false); Var scaleVib: FixedVibration = new FixedVibration (klipp, "scale", 0,9, 0,05, 0,05, 0,8, false); alphaVib.start (); scaleVib.start (); //Legge en FixedVibration til rotasjonen av circleShape Var rotationVib: FixedVibration = new FixedVibration (klipp, "rotasjon", 0,9, 0,05, 0, 360, false); rotationVib.start (); //Definere en ExitShape Var exit: ExitShapeTrigger = new ExitShapeTrigger (onExitShape, klipp, exitShape, true); exit.start (); clipContainer.addChild (klipp); } //Recycle objekter privat funksjon onExitShape (klipp: MovieClip): void {trace ("! CircleShape venstre på skjermen"); }

    Dette vil skape en ExitShapeTrigger med følgende parametre:

    Metoden for å utløse når hendelsen har skjedd

    MovieClip å teste om det er ute av gitt. området.

    MovieClip brukes til å definere trygt område, har du kanskje allerede lagt merke til at vi allerede har skapt dette, heter det exitShape og plassert den på scenen i Flash.

    Den siste parameteren er Enter Når flagget, bare sette denne til true for nå



    Trinn 16:. ObjectPool Slipp

    Etter fra ExitShape vi introdusert i det siste trinnet, vi skaI å bare redigere onExitShape metoden slik at når et klipp flyttes ut av vinduet, vil vi slette det og be om en ny en fra ObjectPool.

    Inntil nå har vi jobbet med anmodning ( ) og requestAll () metoder for ObjectPool, når vi ønsker å slette den gamle vi bruker utgivelsen (klipp) metode:
    //recycle objekter privat funksjon onExitShape (klipp: MovieClip): void {//fjerne fra ObjectPool og clipContainer objectPool.release (klipp); clipContainer.removeChild (klipp); //Få et nytt klipp fra ObjectPool objectPool.request (); }



    Trinn 17: Legge til en Blur

    HYPE har muligheten til å raskt og enkelt legge til filtre som uskarphet og glød til objekter. For å legge til et snev mer pizzazz til design vi kommer til å legge en BlurFilter til prosjektet bruker FilterCanvasRhythm:
    //tenk på BitmapCanvas som et tomrom vi vil "maling" //hver ramme med ny bildedata bitmapCanvas = nye BitmapCanvas (stage.stageWidth, stage.stageHeight); bitmapCanvas.startCapture (clipContainer, true); addChild (bitmapCanvas); //Legger til en blur Var uskarphet: FilterCanvasRhythm = new FilterCanvasRhythm ([ny BlurFilter (1.1, 1.1, 1)], bitmapCanvas); blur.start (TimeType.TIME, 100); //Opprette en samling av objekter og lagre dem i en ObjectPool //for bruk i animasjonen objectPool = new ObjectPool (circleShape, 100);

    Listen kode oppretter en FilterCanvasRhythm som tar et filter som parameter og bruker den til de bitmapCanvas vi erklært tidligere

    Test prosjektet, er det virkelig begynner å komme sammen nå



    Trinn 18:.! Legge Noen Diversity

    Vi kan enkelt legge til en litt dybde til sammensetningen ved å legge til flere figurer i blandingen. Snarere enn å måtte opprette og administrere flere ObjectPools, kan vi legge til rammer til den opprinnelige circleShape vi brukt og tilfeldig velge hvilken ramme å spille.

    Prøv dette nå, redigere circleShape objektet i Flash Biblioteket. Opprett en ny Keyframe, velge en ny farge og tegne en ny form. Gå videre og lage noen nøkkelbilder av dine egne, i neste trinn skal vi se på å implementere dem med kode. Dette er vår nye form:

    .. sammenlignet med vår gamle form:



    Trinn 19: Velge Random Rammer for circleShape

    Med vår circleShape nå sportslige et par nye nøkkelbilder kan vi bare sette inn denne eneste linje med kode for å velge en ramme som skal brukes hver gang vi kaller objectPool.request ():
    //hver gang vi ber om en ny form fra bassenget //det vil utføre følgende objectPool .onRequestObject = function (klipp: MovieClip): void {clip.x = stage.stageWidth /2; clip.y = stage.stageHeight /2; //Velge en tilfeldig ramme clip.gotoAndStop (Math.ceil (Math.random () * 3)); //Legge en VariableVibration for x /y bevegelse av hver circleShape Var XVIb: VariableVibration = new VariableVibration (klipp, "x", 0,97, 0,03, 40); Var yVib: VariableVibration = new VariableVibration (klipp, "y", 0,97, 0,03, 40); xVib.start (); yVib.start (); //Legge en FixedVibration til alfa og skala egenskapene til hver circleShape når ba Var alphaVib: FixedVibration = new FixedVibration (klipp, "alpha", 0,9, 0,05, 0,5, 1,5, false); Var scaleVib: FixedVibration = new FixedVibration (klipp, "scale", 0,9, 0,05, 0,05, 0,8, false); alphaVib.start (); scaleVib.start (); //Legge en FixedVibration til rotasjonen av circleShape Var rotationVib: FixedVibration = new FixedVibration (klipp, "rotasjon", 0,9, 0,05, 0, 360, false); rotationVib.start (); //Definere en ExitShape Var exit: ExitShapeTrigger = new ExitShapeTrigger (onExitShape, klipp, exitShape, true); exit.start (); clipContainer.addChild (klipp); }

    Som en rask notat, tilfeldig ramme koden ovenfor vil veksle mellom rammer 1, 2 og 3. Du må kanskje justere dette til mengden av rammer i circleShape.



    Trinn 20 .: Finish

    Det er på tide å teste filmen og sole seg i blanding av funky mønstre og farger som HYPE rammeverket tar koden din og blander det inn i et stykke generativ kunst

    Heres den endelige kode for referanse:
    pakke {import hype.extended.behavior.FixedVibration; import flash.display.Sprite; import flash.display.MovieClip; import flash.filters.BlurFilter; import hype.extended.behavior.VariableVibration; import hype.extended.rhythm.FilterCanvasRhythm; import hype.extended.trigger.ExitShapeTrigger; import hype.framework.core.ObjectPool; import hype.framework.core.TimeType; import hype.framework.display.BitmapCanvas; /** * En tutorial for å introdusere HYPE. En visuell ramme * av Branden Hall og Joshua David for å skape * generative /iterativ design med kode. * *author Anton Mills *version 06.02.2011 * /public class Hoved strekker MovieClip {//private eiendommer private Var bitmapCanvas: BitmapCanvas; private Var clipContainer: Sprite; private Var objectPool: ObjectPool; /** * Konstruktør * /public funksjonen main () {//inits Hype rammeverket initHype (); //Begynne sekvens objectPool.requestAll (); } /** * Initiering av Hype medlemmene vi skal bruke og konfigurasjon før * å kjøre animasjonen * /private funksjon initHype (): void {//den clipContainer brukes som en forelder for alle våre sprites clipContainer = new Sprite (); addChild (clipContainer); //Tenk på BitmapCanvas som et tomrom vi vil "maling" //hver ramme med nye bildedata bitmapCanvas = nye BitmapCanvas (stage.stageWidth, stage.stageHeight); bitmapCanvas.startCapture (clipContainer, true); addChild (bitmapCanvas); //Legger til en blur Var uskarphet: FilterCanvasRhythm = new FilterCanvasRhythm ([ny BlurFilter (1.1, 1.1, 1)], bitmapCanvas); blur.start (TimeType.TIME, 100); //Opprette en samling av objekter og lagre dem i en ObjectPool //for bruk i animasjonen objectPool = new ObjectPool (circleShape, 100); //Hver gang vi ber om en ny form fra bassenget //vil det utføre følgende objectPool.onRequestObject = function (klipp: MovieClip): void {clip.x = stage.stageWidth /2; clip.y = stage.stageHeight /2; //Velge en tilfeldig ramme clip.gotoAndStop (Math.ceil (Math.random () * 3)); //Legge en VariableVibration for x /y bevegelse av hver circleShape Var XVIb: VariableVibration = new VariableVibration (klipp, "x", 0,97, 0,03, 40); Var yVib: VariableVibration = new VariableVibration (klipp, "y", 0,97, 0,03, 40); xVib.start (); yVib.start (); //Legge en FixedVibration til alfa og skala egenskapene til hver circleShape når ba Var alphaVib: FixedVibration = new FixedVibration (klipp, "alpha", 0,9, 0,05, 0,5, 1,5, false); Var scaleVib: FixedVibration = new FixedVibration (klipp, "scale", 0,9, 0,05, 0,05, 0,8, false); alphaVib.start (); scaleVib.start (); //Legge en FixedVibration til rotasjonen av circleShape Var rotationVib: FixedVibration = new FixedVibration (klipp, "rotasjon", 0,9, 0,05, 0, 360, false); rotationVib.start (); //Definere en ExitShape Var exit: ExitShapeTrigger = new ExitShapeTrigger (onExitShape, klipp, exitShape, true); exit.start (); clipContainer.addChild (klipp); }; } //Recycle objekter privat funksjon onExitShape (klipp: MovieClip): void {objectPool.release (klipp); clipContainer.removeChild (klipp); objectPool.request (); }}}



    Konklusjon

    Denne omtrent brytes opp innføre HYPE rammeverk, tusen takk for tiden din. Jeg håper du likte det, og husker vi bare skrapet overflaten av noen av de fantastiske effekter som kan gjøres med rammeverket. Vennligst sjekk ut HYPE rammeverket hjemmeside www.hypeframework.org for noen fantastiske eksempler på rammen og hvordan andre har tatt det til neste nivå med Away3D /Papervision integrering!



    flere skudd ressurser på Activetuts +

    Kode en Chaotic Sammensetning Inspirert av Joshua Davis fra Bruno Crociquia

    Introduksjon til HYPE Actionscript 3.0 Framework av Tom Green

    Quick Tips: Slik eksporterer Flash til PNG med HYPE av Daniel Apt

    Lag en Hypnotiserende Music Visualizer med HYPE av Franci Zidar