Sfat rapid Lucrul cu SharedObjects

În acest sfat rapid, vă vom arăta cum să stocați și să accesați SharedObjects (echivalentul Flash al cookie-urilor), astfel încât să puteți salva și încărca date utilizator între sesiuni.


Rezultatul final al rezultatelor

Să aruncăm o privire asupra rezultatului final pe care îl vom strădui:

Rețineți că animația intro nu se redă dacă ați văzut-o deja o dată. Încercați să vă conectați (puteți utiliza orice combinație de nume de utilizator / parolă) și apoi reîmprospătați browserul fără să vă deconectați. Detaliile dvs. vor fi introduse automat.

Pentru a reseta datele salvate în SharedObject, conectați-vă și apoi deconectați-vă din nou.


Pasul 1: Configurarea documentului

Primul lucru pe care trebuie să faceți este să descărcați fișierele sursă pentru acest tutorial. Din moment ce acest tutorial este un sfat rapid, voi trece peste pașii de aspect. După ce ați descărcat fișierele, deschideți fișierul "sharedObject.fla". Când fișierul este încărcat, veți observa că avem trei cadre cheie pe cronologie.

Primul cadru cheie deține animația intro. Animația este doar un movieclip cu unele tweens de mișcare și o acțiune "stop" la sfârșit.

Al doilea cadru cheie este ecranul de conectare. Aici un utilizator poate introduce în informațiile lor. Ei pot alege să-l salveze sau nu. Dacă utilizatorul dă clic pe butonul "Urmăriți animația din nou", acesta va fi readus la primul keyframe. De asemenea, SharedObject pe care o vom seta va fi șters.

Ultimul cadru cheie conține un cititor simplu RSS al fluxului ActiveTuts +. Dacă utilizatorul dă clic pe butonul "Deconectați-vă", acesta va fi readus la al doilea cadru cheie, iar SharedObject va fi șters. Acest lucru înseamnă că utilizatorul va vedea animația introductivă data viitoare când vizitează site-ul.


Pasul 2: Clasa de documente

Creați un nou fișier "ActionScript" și salvați-l în același director ca și "sharedObject.fla". Dă fișierului un nume de "sharedObject.as". Apoi, conectați fișierul Flash și fișierul ActionScript împreună în panoul Proprietăți. Pentru o analiză mai aprofundată a modului de configurare a clasei Document, vizitați celălalt Sfat rapid.


Pasul 3: Importurile

Iată instrucțiunile de import pe care le vom folosi pentru acest fișier. Deoarece folosim mai mult de un cadru al cronologiei, va trebui să o extindem ca un filmClip.

 pachet import flash.display.MovieClip; import flash.display.SimpleButton; importul flash.events.Event; importul flash.events.MouseEvent; import flash.net.SharedObject; import flash.net.URLLoader; import flash.text.TextField; class public shareObject extinde MovieClip funcția publică sharedObject () 

Pasul 4: Începând cu SharedObject

Iată ce spune despre referințele de limbă ActionScript 3.0 despre SharedObjects:

Clasa SharedObject este utilizată pentru a citi și a stoca cantități limitate de date pe computerul unui utilizator sau pe un server. Obiectele comune oferă schimb de date în timp real între mai multe fișiere SWF client și obiecte care sunt persistente pe computerul local sau pe serverul de la distanță. Obiectele locale partajate sunt similare cu cookie-urile din browser și obiectele partajate de la distanță sunt similare cu dispozitivele de transfer de date în timp real. Pentru a utiliza obiecte partajate de la distanță, aveți nevoie de Adobe Flash Media Server.

În acest exemplu, vom lucra numai cu obiecte locale partajate. Pentru a începe cu SharedObjects, creăm o variabilă denumită "partajată" și o exprimăm ca SharedObject. Apoi, vom folosi metoda getLocal din clasa SharedObject. I-am dat un nume de "exemplu", dar îi puteți da orice nume doriți.

După ce am inițializat SharedObject, numim funcția "init". În funcția "init", oprim linia principală. De asemenea, verificăm SharedObject pentru a vedea dacă animația intro a fost vizionată. Dacă este cazul, trimitem utilizatorul la rama 2. Dacă nu a fost setată proprietatea "urmărită" pe obiectul "date" al SharedObject, vom reda animația și vom asculta pentru a termina folosind un eveniment ENTER_FRAME.

 pachet import flash.display.MovieClip; import flash.display.SimpleButton; importul flash.events.Event; importul flash.events.MouseEvent; import flash.net.SharedObject; import flash.net.URLLoader; import flash.text.TextField; class public shareObject extinde MovieClip private var partajat: SharedObject; funcția publică sharedObject () shared = SharedObject.getLocal ("example"); init ();  funcția privată init (): void this.stop (); dacă (shared.data.watched === true) this.gotoAndStop (2); frame2handler ();  altceva this.addEventListener (Event.ENTER_FRAME, onEnter); 

Pasul 5: Manipularea animației intro

În funcția "onEnter", ascultăm dacă animația a ajuns la sfârșitul cadrelor sale. Odată ce a dispărut, eliminăm ascultătorul evenimentului, mergem la cel de-al doilea cadru cheie de pe cronologia principală și sunăm funcția "frame2handler". De asemenea, setăm proprietatea "urmărită" pe obiectul "date" al SharedObject. Din moment ce "date" este un obiect, îi putem atribui orice valoare. Am folosit doar "urmărit" ca un indicator pentru animația intro.

Apoi, numim metoda "flush" a SharedObject. Acest lucru va salva SharedObject la fișierul local adecvat și va fi accesibil pentru utilizare ulterioară.

 funcția privată onEnter (eveniment: Eveniment): void if (animation.currentFrame === animation.totalFrames) this.removeEventListener (Event.ENTER_FRAME, onEnter); this.gotoAndStop (2); frame2handler (); shared.data.watched = true; shared.flush (); 

Pasul 6: Ecranul de conectare

În funcția 'frame2handler', veți observa că apelez metoda 'addFrameScript'. Folosind această metodă, putem accesa diferite filme MovieClips în diferite părți ale liniei temporale. 'addFrameScript' este bazat pe zero, deci pentru a accesa MovieClips pe cadru 2, îl trecem 1. De asemenea, îi transmitem o funcție inline pentru a trata orice logică pe cadrul 2. În interiorul acelei funcții, verificăm dacă SharedObject are setat valorile "user", "password" și "remember". Dacă sunt, vom umple câmpurile de text cu informațiile corespunzătoare.

 funcția privată frame2handler (): void this.addFrameScript (1, funcția () if (shared.data.user! = null && shared.data.password! = null) user.text = shared.data.user; .text = shared.data.password; remember.selected = shared.data.remember; remember.label = "Amintește-mi"; enter.addEventListener (MouseEvent.CLICK, onClick); watcher.addEventListener (MouseEvent.CLICK, onClick) ;); 

Pasul 7: Manipularea clicurilor pe butoane

Deoarece aplicația este mică, vom gestiona toate clicurile cu o singură funcție. În cadrul funcției "onClick", verificăm numele destinației evenimentului. Dacă numele este "introduceți", verificăm apoi dacă utilizatorul dorește să-și amintească datele de conectare. Dacă au făcut-o, pur și simplu adăugăm mai multe valori obiectului "date". Dacă nu, vom șterge aceste valori din obiectul "date". După aceea, trimitem utilizatorul pe cadrul 3 și sunăm "frame3handler". Dacă utilizatorul a făcut clic pe butonul "observator", ștergem valoarea asociată animației intro. Utilizatorul revine apoi la primul cadru și numim funcția 'init' folosind 'addFrameScript'. În final, în cel de-al treilea cadru, în cazul în care utilizatorul face clic pe butonul "mai clar", ștergem obiectul "date" și toate valorile din SharedObject sunt șterse. Utilizatorul este apoi trimis înapoi la cadrul 2 și niciuna dintre informațiile sale nu este reținută.

 funcția privată onClick (eveniment: MouseEvent): void comutator (event.target.name) caz "enter": if (remember.selected) shared.data.user = user.text; shared.data.password = password.text; shared.data.remember = remember.selected; shared.flush ();  altceva delete shared.data.user; șterge parola.data.password;  this.gotoAndStop (3); frame3handler (); pauză; cazul "watcher": șterge shared.data.watched; this.gotoAndStop (1); this.addFrameScript (0, funcția () init ();); pauză; cazul "mai clar": shared.clear (); this.gotoAndStop (2); pauză; 

Pasul 8: Cadrul 3

În funcția 'frame3handler', folosim din nou 'addFrameScript' pentru a accesa MovieClips pe cadru 3. În interiorul funcției inline, încărcăm fluxul RSS și folosim componentele List și TextArea pentru a afișa informațiile.

 funcția privată frame3handler (): void this.addFrameScript (2, funcție () clearer.addEventListener (MouseEvent.CLICK, onClick); ur url: URLLoader = nou URLLoader (); url.addEventListener (Event.COMPLETE, var xml: XML = nou XML (url.data); var xmlList: XMLList = xml ... item; pentru (var i: int = 0; i 

Concluzie

Există o mulțime de aplicații pentru SharedObjects. Doar verificați orice site cum ar fi Pandora sau site-uri de jocuri cum ar fi Adult Swim. Cu toate acestea, cel mai bun mod de a învăța este să vă experimentați și, bineînțeles, să vă abonați la Tuts+.

Mulțumesc că ați urmat!

Cod