Quick Tips: Arbeide med SharedObjects
Del
Del
Del
Del
Dette Cyber mandag Envato Tuts + Kursene vil bli redusert til bare $ 3. Ikke gå glipp av.
I denne hurtig Tips, skal jeg vise deg hvordan du kan lagre og få tilgang SharedObjects (Flash tilsvarer cookies), slik at du kan lagre og laste inn brukerdata mellom øktene. Anmeldelser
Endelig resultat Forhåndsvisning
La oss ta en titt på det endelige resultatet vi skal jobbe mot:
Legg merke til at introen animasjonen ikke spiller Hvis du allerede har sett det en gang. Prøv å logge deg inn (du kan bruke en hvilken som helst brukernavn /passord-kombinasjon) og deretter oppdatere nettleseren uten å logge ut. Dine detaljer vil automatisk bli lagt
For å tilbakestille dataene som er lagret i Shared, logg inn og deretter logge ut igjen
Trinn 1:.. Sette opp Document
< p> Det første du må gjøre er å laste ned kildefilene for denne opplæringen. Siden denne opplæringen er en rask spiss, vil jeg hoppe layout trinn. Når du har filer som lastes ned, åpne 'sharedObject.fla' fil. Når filen er lastet, vil du legge merke til at vi har tre nøkkelbilder på tidslinjen.
Den første keyframe holder intro animasjon. Animasjonen er bare en MovieClip med noen motion tweens og en "stopp" action på slutten.
Den andre nøkkelbilde er innloggingsbildet. Her en bruker kan gå inn i sin informasjon. De kan velge å lagre det eller ikke. Hvis brukeren klikker på "Se animasjon igjen" -knappen, vil de bli tatt tilbake til den første keyframe. Dessuten vil Shared at vi kommer til å sette bli slettet.
Den siste keyframe inneholder en enkel RSS leser av ActiveTuts + feed. Hvis brukeren klikker på "Logg ut" -knappen, vil de bli tatt tilbake til andre nøkkelbilde og Shared vil bli slettet. Dette betyr at brukeren vil se intro animasjon neste gang de besøker nettstedet
Trinn 2:. Dokument Class
Opprett en ny "Actionscript-fil og lagre den på samme mappe som "sharedObject.fla. Gi filen et navn 'sharedObject.as. Deretter kobler Flash-filen og Actionscript-fil sammen i Properties panelet. For en mer inngående titt på hvordan du setter opp dokumentklassen, besøk denne annen Quick Tips
Trinn 3:. De Importen
Her er import uttalelser om at vi vil være å bruke for denne filen. Siden vi bruker mer enn én ramme av tidslinjen, må vi utvide det som en MovieClip
pakke {import flash.display.MovieClip.; import flash.display.SimpleButton; import flash.events.Event; import flash.events.MouseEvent; import flash.net.SharedObject; import flash.net.URLLoader; import flash.text.TextField; public class Shared strekker MovieClip {offentlig funksjon Shared () {}}}
Trinn 4: Starte Med Shared
Her er hva Actionscript 3.0 Language Reference sier om SharedObjects:
< p> Shared klassen brukes til å lese og lagre begrensede mengder data på brukerens datamaskin eller på en server. Delte objekter tilby sanntids datadeling mellom flere klient SWF-filer og objekter som er vedvarende på den lokale datamaskinen eller en ekstern server. Lokalt delte objekter er lik informasjonskapsler og fjern delte objekter er lik real-time data overføring enheter. For å bruke fjern delte objekter, trenger du Adobe Flash Media Server.
I dette eksemplet vil vi bare jobbe med lokale delte objekter. For å få til gang med SharedObjects, skaper vi en variabel som heter "delt" og kastet det som en Shared. Deretter bruker vi "getLocal 'metode av Shared klassen. Jeg ga den et navn av "eksempel", men du kan gi den et navn du liker.
Etter at vi har initialisert vår Shared, vi kaller den "init" -funksjonen. I "init" -funksjonen, stopper vi hovedtidslinjen. Vi sjekker også Shared å se om intro animasjon har blitt overvåket. Hvis det har, vi sender brukeren til å ramme 2. Hvis 'overvåket' eiendom på 'data' gjenstand for vår Shared ikke er satt, vi spiller animasjonen og lytte til den er ferdig ved hjelp av en ENTER_FRAME hendelse. Anmeldelser pakke {import flash.display.MovieClip; import flash.display.SimpleButton; import flash.events.Event; import flash.events.MouseEvent; import flash.net.SharedObject; import flash.net.URLLoader; import flash.text.TextField; public class Shared strekker MovieClip {private Var delt: Shared; offentlig funksjon Shared () {delt = SharedObject.getLocal ("eksempel"); i det(); } Private funksjon init (): void {this.stop (); if (shared.data.watched === true) {this.gotoAndStop (2); frame2handler (); } Else {this.addEventListener (Event.ENTER_FRAME, onEnter); }}}}
Trinn 5: Håndtering av Intro Animation
I "onEnter" -funksjonen, lytter vi for å se om animasjonen har nådd slutten av sine rammer. Når det har, fjerner vi arrangementet lytteren, gå til andre nøkkelbilde på hovedtidslinjen, og kaller den "frame2handler" -funksjonen. Vi har også sette 'overvåket' eiendom på 'data' gjenstand for Shared. Siden "data" er et objekt, kan vi tildele noen verdi til det. Jeg bare brukte "sett" som en indikator for intro animasjon.
Neste, vi kaller den "flush" metoden i Shared. Dette vil spare Shared til riktig lokal fil og være tilgjengelig for senere bruk
privat funksjon onEnter (hendelse: Hendelse):. Void {if (animation.currentFrame === animation.totalFrames) {this.removeEventListener (Event. ENTER_FRAME, onEnter); this.gotoAndStop (2); frame2handler (); shared.data.watched = true; shared.flush (); }}
Trinn 6: innloggingsbildet
I "frame2handler" -funksjonen, vil du legge merke til at jeg ringer den "addFrameScript" -metoden. Ved hjelp av denne metoden, kan vi få tilgang til ulike movieclips i ulike deler av tidslinjen. 'addFrameScript' er null basert, så for å få tilgang til movieclips på ramme 2, passerer vi den 1. Også passerer vi det en innebygd funksjon for å håndtere enhver logikk på ramme 2. Inni den funksjonen, er vi sjekker for å se om Shared har "brukeren", "passord" og "huske" verdiene satt. . Hvis de er, vi fylle ut tekstfelt med riktig informasjon
privat funksjon frame2handler (): void {this.addFrameScript (1, function () {if (shared.data.user = null & & delt! ! .data.password = null) {user.text = shared.data.user; password.text = shared.data.password; remember.selected = shared.data.remember;} remember.label = "Husk meg", skriver .addEventListener (MouseEvent.CLICK, onClick); watcher.addEventListener (MouseEvent.CLICK, onClick);});}
Trinn 7: Håndtering av knapper Klikk
Siden appen er liten, vi kommer til å håndtere alle klikkene med én funksjon. Inne i onClick-funksjon, vi sjekker navnet på målet for arrangementet. Hvis navnet er 'enter' vi så sjekk for å se om brukeren ønsket deres innlogging info husket. Hvis de gjorde det, vi bare legge til flere verdier til 'data' objekt. Hvis ikke, vil vi slette disse verdiene fra 'data' objekt. Etter at vi sender brukeren til ramme 3 og kalle den "frame3handler. Hvis brukeren har klikket på "watcher" -knappen, vi sletter verdien assosiert med intro animasjon. Brukeren går deretter tilbake til det første bildet, og vi kaller den "init" -funksjonen bruke "addFrameScript. Til slutt, på den tredje rammen, hvis brukeren klikker på "klarere" -knappen, fjerner vi den 'data' objekt og alle verdier av Shared blir slettet. Brukeren blir så sendt tilbake til frame 2 og ingen av deres informasjon er beholdt
privat funksjon onClick (event: MouseEvent):. Void {switch (event.target.name) {case "enter": if (remember.selected ) {shared.data.user = user.text; shared.data.password = password.text; shared.data.remember = remember.selected; shared.flush (); } Else {slette shared.data.user; slette shared.data.password; } This.gotoAndStop (3); frame3handler (); gå i stykker; case "watcher" delete shared.data.watched; this.gotoAndStop (1); this.addFrameScript (0, function () {init ();}); gå i stykker; case "klarere": shared.clear (); this.gotoAndStop (2); gå i stykker; }}
Trinn 8: Ramme 3
I "frame3handler-funksjonen, bruker vi" addFrameScript 'igjen for å få tilgang til movieclips på ramme 3. Innsiden av inline funksjon, legger vi den RSS mate og bruke listen og textarea komponenter for å vise informasjonen
privat funksjon frame3handler (): void {this.addFrameScript (2, function () {clearer.addEventListener (MouseEvent.CLICK, onClick); Var url:. URLLoader = ny URLLoader (); url.addEventListener (Event.COMPLETE, function () {var xml: XML = new XML (url.data); Var xmlList: XMLList = xml..item; for (var i: int = 0; i < xmlList.length (); i ++) {list.addItem ({label: xmlList [i] .title.text (), data: xmlList [i] .description.text ()});} list.selectedIndex = 0; area.htmlText = list.selectedItem.data; list.addEventListener (Event.CHANGE, function () {area.htmlText = list.selectedItem.data;});}); url.load (ny URLRequest ("http: //feeds.feedburner.com/flashtuts "));});}
Konklusjon
Det er massevis av søknader om SharedObjects. Bare sjekk ut alle nettsteder som Pandora eller spillområder som på Adult Swim. Imidlertid er den beste måten å lære å eksperimentere selv og, selvfølgelig, abonnere på Tuts +.
Takk for følge med! Anmeldelser