skabe et musikalsk fødselsdagskort med papervision3d

, skabe et musikalsk fødselsdagskort med papervision3d,,,,, andel,,,,,,,,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss ud. det er activetuts + første fødselsdag!lad os fejre det med en musikalsk 3d - kort med papervision3d og tweenmax.,,,, trin 1: sager fælde, begynde med at skabe en ny mappe (dette vil være dit projekt er grundlæggende mappe) og skabe en ny as3 ned i den mappe, main.fla. dette vil indeholde alle de eu - erhvervsgrenen, vi har brug for for at skabe det kort. for denne forelæsning, vi får brug for to populære flash biblioteker: papervision3d og tweenmax.download papervision (jeg bruger version 2.1.932) og ekstrakt, kom og nochump, mapper fra nul til dit projekt er grundlæggende mappe.download tweenmax (jeg bruger version 11) og ekstrakt zip til dit projekt er grundlæggende folder samt. nu skabe en tom fil og redde det som "cardviewport." i deres projekt er grundlæggende mappe.dette vil være vores papervision3d viewport med kortet.skabe en tom fil, i den samme mappe, der hedder "vigtigste. som". dette vil være dit nummer klasse.(ved ikke, hvordan jeg skal bruge et nummer?læs denne hurtige indførelse.), din mappe struktur skal se sådan ud:,, trin 2: fase fælde, luk op main.fla og redigere tidspunkt at gøre det 500x440 med en 30fps billedhastigheden.sæt det dokument, klasse, vigtigste:,, trin 3: lag fælde, vi behøver kun to lag for denne lektion:,, kortet beholder, som vil blive befolket af vores papervision, knapperne lag, som vil udløse en åben /tæt ind på kortet, trin 4: viewport fælde, den viewport lag, skabe en rektangulær form.størrelse, at størrelsen af den fase, og flytte den til holdning 0,0.slå f8 konvertere form til en movieclip symbol.kryds til eksport til actionscript og tilføjer klasse navn cardviewport.det vil knytte til den klasse, vi vil bygge på et senere tidspunkt.,, klik på viewport movieclip og give det et tilfælde af "viewport".,, løntrin 5: viewport baggrund, åbne viewport film magasin symbol og skabe uanset baggrund, du kan lide.det er, hvad jeg gjorde et par af gradient former for himlen - - og en til jorden og activetuts + logo, centreret om himlen.,, trin 6: knap fælde på knap lag, skabe en rektangulær form.konvertere det til en film. symbol og kalde det "open_mc". sørg for at give den samme instans navn. i open_mc en textfield.det skal være dynamisk, giv det en instans, label_txt navn og integrere skrifttyper ved at klikke "karakter, omfatter" og udvælgelse af alfabetet, du vil bruge.,, få det til at se ud, som du vil.jeg byggede mit med en gradient og diagonale linjer løber tværs over:,, note: jeg ejer ikke retten til at forhandle, standard 07_66, den skrifttype, jeg bruger i dette projekt.undskyld for det.,, trin 7: aktiver, photoshop tid. vi skal bygge vores kort med fire fly (fast rektangler) over for hinanden.til det formål har vi brug for fire forskellige image filer til kort i flyene.,,, vores fly vil være 700x900 og vores fire billeder vil derfor også være af den størrelse.grunden til denne størrelse, er, at flyene er flydende i 3d plads langt væk fra kameraet, og de er nødt til at være stor, så vi kan se dem.navn på de billeder "page_1_front jpg", "page_1_back jpg", "page_2_front jpg", "page_2_back jpg" og lagde dem i roden folder med dit projekt. her er mine billeder:,, disse billeder er inkluderet i den primære kilde zip, men de kan også downloade dem direkte, hvis du foretrækker..., gøre det samme for en sund, hvis du ønsker at tilføje en.scott vilje fra audiojungle var flink nok til at give den fede vej sammen med os.,, trin 8: cardviewport.as import, åben cardviewport.as.jeg vil bruge flashdevelop til kode, men du kan bruge lysglimt, hvis du foretrækker det. skabe en pakke og importere de klasser, vi har brug for:, pakke (//grundlæggende kategorier import flash.display.sprite; import flash.events.event; import flash.events.mouseevent; //papervision klasser import org.papervision3d.objects.primitives.plane; import org.papervision3d.materials.bitmapfilematerial; import org.papervision3d.view.basicview; import org.papervision3d.objects.displayobject3d; import org.papervision3d.render.quadrantrenderengine. //tweening motor import kom. greensock. tweenmax;,, trin 9: cardviewport.as private variabler, der blev oprettet den private variabler, vi skal bruge for cardviewport: offentlige klasse cardviewport udvider basicview //basicview sin klasse, der omfatter en grundlæggende viewport fælde for vores scene (//skaber 4 fly private var front_cover: fly; private var front_inside: fly; private var back_cover: fly; private var back_inside: fly; //skaber 4 materialer private var front_cover_img: bitmapfilematerial; private var front_inside_img: bitmapfilematerial; private var back_cover_img: bitmapfilematerial; private var back_inside_img: bitmapfilematerial; //skaber forsiden beholder, der skal rede 2 fly private var front_container: displayobject3d; //skaber bagsiden beholder, der skal rede de andre to fly, private var back_container: displayobject3d; //skaber en kort container, der vil rede den aft) og tilbage beholder private var card_container: displayobject3d;}, gå 10: cardviewport.as konstruktør, her er den funktion, der vil finde sted, når den cardviewport er skabt: offentlige funktion cardviewport () (super(); //for at slippe af med et par fejl om, hvordan z-depth er beregnet på vores scene //vi er nødt til at ændre de type til en, som kan korrigere det setrendertype(); //instantiates materialer og fastsætter dens egenskaber setmaterials(); //instantiates flyene, tilføjer materialer til fly, tilføjer det fly til indpakning (containere) setplanes(); //gør kameraet hvert billede. addeventlistener (event.enter_frame gør); //repositions flybaseret på mus er holdning. addeventlistener (mouseevent.mouse_move, positionplanes)}, trin 11: cardviewport.as gøre type, for at slippe af med et par fejl om, hvordan z-depth er beregnet på vores scene, er vi nødt til at ændre de type til en, som kan korrigere.den quadrantrenderengine accepterer en parameter: korrektion type.vi vil rette z - filter, denne gang, brug den klogt, da det kan tage din cpu i komplekse situationer. privat funktion setrendertype() {this.renderer = nye quadrantrenderengine (quadrantrenderengine. correct_z_filter), trin 12: cardviewport.as materialer fælde, selv om vi ikke ser den fjerde fly (bagsiden af kortet, - besluttet at tilføje det bare, hvis du vil lege med gerningsstedet. vi vil anvende en bitmapfilematerial, ved at "præcise" til jeg er at forbedre den overordnede kvalitet, men jeg er også anvender flere cpu magt. privat funktion setmaterials(): ugyldig (//forsiden side front_cover_img = ny bitmapfilematerial ("page_1_front jpg" sande); front_cover_img.doublesided = falske.front_cover_img.fillalpha = 1, 0; //front i side front_inside_img = nye bitmapfilematerial ("page_1_back jpg" sande); front_inside_img.doublesided = falske front_inside_img.fillalpha = 1, 0; //indenfor side back_inside_img = nye bitmapfilematerial ("page_2_front jpg" sande); back_inside_img.doublesided = falske back_inside_img.fillalpha = 1, 0; //tilbage til forsiden back_cover_img = nye bitmapfilematerial ("page_2_back jpg"); back_cover_img.doublesided = falske back_cover_img.fillalpha = 1, 0;}, trin 13: cardviewport.as fly fælde, vi skaber de fire planer, der udgør vores kort, at opdele dem i et par af containere, så de viser sig som to sider, privat funktion -tplanes(): ugyldig (//skaber den forreste fly dække front_cover = nye fly (front_cover_img, 700, 900, 3, 3); front_cover. z = 0, front_cover. x = 350 //denne kompensation skal bruges senere, så vi kan åbne kort //skaber i den forreste fly front_inside = ny fly (front_inside_img, 700, 900, 3, 3); front_inside. z = 0, front_inside.rotationy = 180; //drejet 180 grader, så vi kan se det indefra front_inside. x = 350 //dens præcis halvdelen af bredden af fly //skaber et dæksblad objekt, så vi kan dreje forsiden fra en anden akse //den sider.det er lettere på den måde, du behøver ikke at ødelægge med oprettelse //koordinater, og vi kan opveje det.front_container = nye displayobject3d(); front_container. addchild (front_cover); front_container. addchild (front_inside); front_container. x - = 350 ////////////////- her er vi, modregning, gentage processen for den anden side back_inside = nye fly (back_inside_img, 700, 900, 3, 3); back_inside. z = 0, 1; back_inside x = 350 back_cover = nye fly (back_cover_img, 700, 900, 3, 3); back_cover. z = 0, 1; back_cover.rotationy = 180; back_cover. x = 350 back_container = nye displayobject3d(); back_container. addchild (back_inside); back_container. addchild (back_cover); back_container. x - = 350 //og efter alt kommer foran og bagved beholdere til de vigtigste indpakning og tilføje papir tilscene.card_container = nye displayobject3d(); card_container. addchild (front_container) card_container. addchild (back_container) scene. addchild (card_container)), punkt 14: cardviewport.as opencard(), meddelelse om, at dette er en offentlig opgave, så vi kan få adgang til det gennem det vigtigste dokument, - - da vi tryk på knappen: offentlige funktion opencard() (////////når vi åbner det kort, er vi nødt til at fjerne den mus lyttere fra fase, fordi //, når vi mus bevæger vi os roterer ting, nogle gange beholdere til flyene selv, //vi derfor ikke kan rotere begge samtidigt, så vil vi ende med animation fejl trin. removeeventlistener (mouseevent.mouse_move, positionplanes); //vi er nødt til at nulstille flyene holdninger -indenfor de beholdere, resetplanesposition(); //vi skifte foran beholder 180 grader og x - 0 //, fordi vi kompensere for fly tidligere, nu har i overensstemmelse hermed.tweenmax. - front_container, 1.4, (rotationy: 180 x: 0, oncomplete: function() (fase. addeventlistener (mouseevent.mouse_move, positioncontainer)}}); tweenmax. - back_container, 1.4, (x: 0}); //efter turnusordningen, tilføjer vi en ny lytter til mus.denne tid til at flytte de vigtigste beholder.}, gå 15: cardviewport.as closecard(), samme for lukning af kortet: offentlig funktion closecard() (//, når vi lukker det kort, de skridt, der er meget lig, når vi åbner.fase. removeeventlistener (mouseevent.mouse_move, positioncontainer); //forskel er, hvor vi nulstille de vigtigste beholder rotation card_container.rotationy = card_container.rotationx = 0 //vi nulstille foran og bagved beholdere "x og rotationy egenskaber tweenmax. - front_container, 1.4, (rotationy: 0 x: - 350, oncomplete: function() (fase. addeventlistener (mouseevent.mouse_move, positionplanes)}}); tweenmax. - back_container, 1.4, (x: - 350}); //og efter animation tilføjer vi den foregående mus flytte tilfælde foranstaltninger til holdning, fly), trin 16: cardviewport.as holdning fly, kaldes det, når musen er flyttet, mens kortet er lukket, privat funktion positionplanes (ref.: begivenhed): ugyldig (//- rstaterne imellem - 25 º og 25 º afhængigt af mus holdning front_cover.rotationy = back_inside.rotationy = (stage.mousex /stage.stagewidth * 50 *) - 25 front_cover.rotationx = front_inside.rotationx = back_cover.rotationx = back_inside.rotationx = (stage.mousey /stage.stageheight * 50 *) - 25 //- vi behøver kun at tilføje 180 til ansigter, der formodes at være imod os front_inside.rotationy = back_cover.rotationy = ((stage.mousex /stage.stagewidth * 50 *) - 25) + 180}, skridt 17: cardviewport.as holdning container, kaldes det, når musen er flyttet, mens kortet er åben:, privat funktion positioncontainer (ref.: begivenhed): ugyldig (//ligesom det fly.den roterer mellem - 25 º og 25 º afhængigt af mus holdning card_container.rotationy = (stage.mousex /stage.stagewidth * 50 *) - 25 card_container.rotationx = (stage.mousey /stage.stageheight * 50 *) - 25), gå 18: cardviewport.as nulstille fly, kaldes det, når kortet er slået til at åbne:, privat funktion resetplanesposition() (////////funktionen navn siger det hele, det har flyene tilbage til sin oprindelige skabt holdning front_inside.rotationy = back_cover.rotationy = 180 front_cover.rotationy = back_inside.rotationy = front_cover.rotationx = front_inside.rotationx = back_cover.rotationx = back_inside.rotationx = 0}, skridt 19: cardviewport.as gøre det sidste skridt er naturligvis, at de viewport,efter at vi går videre til det dokument, klasse, private funktion gøre (ref.: begivenhed): ugyldig (//singlerender er en basicview funktion, der aktiverer gøre i denne tid.singlerender();}, det er slutningen af klassen.glem ikke at tilføje deres sidste krølle bøjle.,, gå 20: cardviewport.as fulde kode, vi vil ikke ændre på noget andet i cardviewport klasse, så du kan få en kilde fra zip fil og sammenligne den med dine egne.,, gå 21: main.as import, dette skridt er forholdsvis enkelt, vi bare nødvendigt at knytte åbne kort og tæt på kort aktioner til knap.før det, lad os indføre følgende klasser i vores pakke:, pakke (import flash.display.movieclip; import flash.events.event; import flash.events.mouseevent; import flash.media.sound; //huske birthday.mp3?det vil her tilføjes, import, flash. net. urlrequest;,, skridt 22: main.as konstruktør, igen ikke noget overdrevet, det udvider movieclip og skaber en god ting: offentlige klasse vigtigste udvider movieclip (private var birthday_song: sunde}, gå 23: main.as hovedfunktion, her er et tip til jer - for at forhindre, at for fejl, påbegynd dine ordrer efter klassen blevet føjet til scenen.på denne måde er du sikker på, alt det, du prøver at få adgang til, er til stede, offentlig funktion main(): ugyldig (addeventlistener (ref. added_to_stage, lokalitet)}, gå 24: main.as lokalitet funktion, - - og det er den funktion, der vil finde sted, når dokumentet klasse er blevet tilføjet til fase:, privat funktion lokalitet (ref.: begivenhed): ugyldig (removeeventlistener (event.added_to_stage, lokalitet) //- vi har ikke brug for det mere open_mc.label_txt.text = "_!åbne kort!_ "//etiketter på knappen open_mc.buttonmode = sandt; //sæt knappen til at handle som en knap open_mc.mousechildren = falske; //deaktiverer mus begivenheder på open_mc børn open_mc. addeventlistener (mouseevent.click, opencard) //tilføjer en begivenhed til at lytte til museklik}, gå 25: main.as klik til at åbne sig, funktion vil finde sted, når kortet er faldet, hvis den er lukket, privat funktion opencard (ref.: mouseevent): ugyldig (open_mc. removeeventlistener (mouseevent.click, opencard); //fjerner den åbne til at lytte viewport. opencard(); //adgang til viewport åbne kort (husk, vi sætter den offentlige tidligere?)open_mc.label_txt.text = "_!tæt på kortet._ "//ændringer etiketten open_mc. addeventlistener (mouseevent.click, closecard) //tilføjer en til at lytte til tæt på kortet på klik med musen birthday_song = ny lyd (nye urlrequest (" fødselsdag. mp3 - "); //belastninger fødselsdags sang birthday_song. play(); //spiller fødselsdags sang}, skridt. - main.as klik til tæt kontakt, det er stort set det samme som opencard(), men i bakgear.;), privat funktion closecard (ref.: mouseevent): ugyldig (open_mc. removeeventlistener (mouseevent.click, closecard) viewport. closecard(); open_mc.label_txt.text = "_!åbne kort!_ "open_mc. addeventlistener (mouseevent.click, opencard)}, skridt 27: main.as færdig, færdig.ingen hemmeligheder i dette dokument, klasse, det er ret ligetil.glem ikke at tilføje deres sidste krølle bøjle.,, jeg vil gerne slutte af med at se dig gå fra denne lektion tager nogle af de små tips, jeg gav dig, fra added_to_stage til displayobject3d indpakning, ved hjælp af en tweening klasse at skifte og komme en 3d - objekt.tag det og gøre det til dit eget. tillykke med fødselsdagen activetuts +!jeg håber, du kan lide denne forelæsning, tak for det!,













Previous:
Next Page: