15 Fragmente AS3 utile pe Snipplr.com

Când lucrați cu Flash și Actionscript 3.0, vă puteți întâmpina să repetați codul de la un proiect la altul. Crearea propriei biblioteci de fragmente de cod reutilizabile (de exemplu, pe snipplr.com) este o modalitate excelentă de a accelera dezvoltarea. Consultați aceste 15 fragmente, pe care le puteți considera utile pentru integrarea în propria bibliotecă de coduri.

Unele dintre următoarele fragmente sunt prezentate aici ca funcții care pot fi pur și simplu utilizate așa cum este. În timp ce ar trebui să puteți să renunțați la aceste coduri, atunci vă recomandăm să vă acordați timp să priviți cu adevărat codul pentru a înțelege mai bine ce se întâmplă. Privind la fragmente de cod este o modalitate foarte bună de a învăța tehnici noi și de a-ți îmbunătăți abilitățile de programare în general.


Prezentarea Snipplr.com

Snipplr este una dintre cele mai recente achiziții ale Envato. Un depozit de fragmente de cod, un hub social și o adăugare utilă la centura de instrumente Envato! Cu Snipplr puteți păstra toate fragmentele de cod utilizate frecvent într-un singur loc, accesibil de pe orice computer. Puteți să distribuiți codul dvs. altor vizitatori și să utilizați ceea ce postați.

Puteți să urmăriți @snipplr pe Twitter și să fiți la curent prin noua pagină Facebook Snipplr. Dacă aveți oricare dintre propriile fragmente AS3 pe care doriți să le partajați, adăugați-le la Snipplr și lăsați url în comentariile!

Utilizatorul Marketplace? De ce nu vă conectați la contul dvs. Snipplr din profilul social Marketplace?

1. Randomizați o matrice

Pentru a randomiza o matrice vom buclei pe lungimea matricei, înlăturând un obiect ales la întâmplare și apoi adăugându-l înapoi în poziția finală a Array-ului. Gândiți-vă la acest lucru având un pachet de cărți în care alegeți din întâmplare o cartelă și mutați-o în partea de sus a stivei repetate pentru numărul total de cărți din pachet.

Este important să rețineți că metoda splice returnează o matrice care conține obiectul eliminat și nu obiectul însuși, prin urmare, adăugând [0] după apelul de îmbinare pentru a face referire la obiectul conținut.

Fragment de cod - Randomizați o matrice pe Snipplr

2. Poziționați obiectele de afișare într-un aspect al rețelei

Acesta este un mod scurt de poziționare a obiectelor afișate într-un aspect al rețelei. Utilizează operatorul modulo (%) pentru a poziționa fiecare obiect afișat de-a lungul axei x și podea metoda clasei Math pentru poziția y.

Acest exemplu creează 20 de instanțe ale unui obiect de afișare personalizat numit MyDisplayObject poziționarea fiecărui exemplu într-o grilă cu 5 coloane lățime. Așa cum probabil ați ghicit, cei doi 5 din fragment reprezintă numărul de coloane din grilă.

Fragment de cod - Poziționați obiectele de afișare într-o dispunere a rețelei pe Snipplr

3. Eliminați toți copiii dintr-un DisplayObjectContainer

DisplayObjectContainer, o clasă părinte a claselor mai obișnuite de containere, cum ar fi MovieClip și Sprite, nu are o metodă construită pentru a elimina imediat toți copiii. Pentru a elimina toți copiii, pur și simplu folosim o buclă pentru a elimina copilul care ocupă indexul 0 în teanc până când nu mai rămân copii.

Fragment de cod - eliminarea tuturor copiilor dintr-un DisplayObjectContainer pe Snipplr

4. Obțineți URL-ul paginii în care SWF este încorporat

Pentru a obține adresa URL completă așa cum apare în bara de adrese a browserului nostru, folosim AS3 ExternalInterface clasă. Fără a intra în prea multe detalii, știți că în acest exemplu folosim ExternalInterface pentru a accesa DOM (Document Object Model) al paginii HTML care conține Flash.

Un dezavantaj al ExternalInterface este că SWF trebuie să fie încorporat în pagina HTML cu parametrul "allowcriptaccess" setat la "sameDomain" sau "always". Acest lucru este OK când controlați încorporarea unui SWF, dar din păcate nu se poate invoca dacă SWF poate fi rulat pe site-uri terțe. Nu uitați să adăugați import flash.extern.ExternalInterface în partea de sus a documentului.

Fragment de cod - Obțineți adresa URL a paginii în care SWF este încorporat în Snipplr

În mod alternativ, pentru a accesa adresa URL în care se află SWF, putem accesa proprietatea url a LoaderInfo obiect aparținând rădăcinii SWF-ului nostru. Rețineți că aceasta este locația fișierului SWF și nu pagina HTML în care este încorporată. Este important să faceți această distincție deoarece atît SWF, cît și HTML-ul pot locui pe diferite domenii.

Fragment de cod - Obțineți adresa URL a paginii în care este încorporat SWF: Apendice la Snipplr

Știind unde se execută un fișier SWF este utilă pentru afișarea conținutului specific domeniului. În contextul unui joc Flash, este posibil ca nivelurile "bonus" să fie disponibile numai când SWF rulează pe site-ul dezvoltatorului sau dacă anunțurile sunt afișate sau nu.


5. Runda Valorile Pozitive ale unui DisplayObjectContainer și ale Copiilor săi

Aceasta este o funcție recursivă care are o funcție DisplayObjectContainer (cum ar fi Sprite sau MovieClip) și rotunjește valorile x și y ale acestuia și ale copiilor săi. Este recursiv, deoarece funcția se numește atunci când întâlnește un copil care este, de asemenea, a DisplayObjectContainer astfel încât copiii săi să fie și ei rotunjiți. Aceasta returnează întreaga listă de afișare sub cea trecută DisplayObjectContainer, copiii săi, copiii copiilor săi etc..

Punctul acestei funcții este să vă asigurați că ați trecut DisplayObjectContainer și toți copiii ei stau pe pixeli întregi. Acest lucru poate fi important atunci când se ocupă de grafică care nu este așezată pe pixeli întregi, deoarece le va face să apară neclară. Acest lucru este probabil cel mai vizibil atunci când se ocupă cu fonturile pixel.

Fragment de cod - Runda Valorile Pozitive ale unui DisplayObjectContainer și ale Copiilor lui pe Snipplr

Veți observa prima verificare a declarației dacă doriți să vedeți dacă a trecut DisplayObjectContainer NU este stadiul. Acest lucru este necesar ca Stage moșteni de la DisplayObjectContainer dar nu implementează proprietățile x și y (împreună cu alte câteva proprietăți). Aceasta vă permite să treceți în mod sigur treapta ca parametru al acestei funcții, care va inversa poziția tuturor obiectelor din lista de afișare.


6. Numărul aleatoriu între două valori

Generarea unui număr aleatoriu este adesea utilă atunci când dezvoltați aplicații în AS3 (mai ales atunci când dezvoltați jocuri). AS3 are o metodă construită în număr aleator ca parte a clasei matematice care generează un număr mai mic de 1 și mai mare sau egal cu 0. Putem folosi acest lucru pentru a crea o funcție utilă pentru generarea unui număr aleator între alte două numere.

Fragment de cod - Număr aleator între două valori pe Snipplr

7. Boolean aleator

Similar cu necesitatea unui număr aleatoriu, este posibil să aveți nevoie de un Boolean aleator pentru a fi utilizat într-o expresie. Din nou, folosim întâmplător metoda clasei Math pentru a reveni pur și simplu dacă întâmplător() generează un număr mai mare sau egal cu 0,5 sau false dacă este mai mic.

Fragment de cod - Random Boolean pe Snipplr

8. Găsiți unghiul dintre două puncte

Acesta este un alt fragment comun utilizat de dezvoltatorii de jocuri pentru a găsi unghiul dintre două puncte dintr-un avion. Această funcție are patru parametri; prima pereche fiind valorile x și y ale primului punct și a doua pereche fiind valorile x și y ale celui de-al doilea punct.

Este important să rețineți că această funcție returnează unghiul în grade radiate NU.

Fragment de cod - Găsiți unghiul dintre două puncte pe Snipplr

9. Conversia între radii și grade

Atunci când se ocupă de ecuații care implică unghiuri, veți trata adesea în radiani și nu în grade. Afișarea obiectelor din Flash utilizează grade atunci când se ocupă de proprietatea lor de rotație, așa că avem nevoie de o modalitate de a converti între cele două. Aceste funcții de ajutor sunt utile pentru realizarea acestui lucru; unul pentru convertirea radianelor în grade și celelalte grade pentru radiani.

Fragment de cod - Conversia între radiații și gradele pe Snipplr

10. Validarea e-mailului

Când se acceptă intrarea de la un utilizator printr-un formular, este adesea necesar să se valideze datele înainte de a se permite trimiterea acestuia la un script de back-end. Acest lucru este valabil cel mai mult pentru adresele de e-mail, deoarece acestea sunt adesea singurul punct de contact între dvs. și utilizator și sunt importante pentru a obține dreptul. Funcția de mai jos utilizează o expresie regulată pentru a confirma că e-mailul are un format valid.

Fragment de cod - Validarea e-mailului pe Snipplr

Dacă nu sunteți sigur de ce este expresia regulată, citiți acest articol pe wikipedia, precum și documentația AS3 pentru tipul RegExp. Asigurați-vă că verificați și Validarea diferitelor date de intrare în Flash.


11. Eliminarea spațiului

În același mod în care trebuie adesea să formatați date trimise din Flash, uneori trebuie să formatați datele primite. Această funcție are un șir și elimină toate spațiile de la ea. Aici vom folosi metoda split a clasei String pentru a împărți șirul într-o matrice și apoi apelați metoda de îmbinare a clasei Array pentru ao converti înapoi la un șir. Acest lucru este util atunci când se ocupă cu un șir pe care știi că nu poate conține spații cum ar fi o adresă de e-mail, un URL sau un număr de telefon. Aceasta returnează un șir nou, lăsând șirul de intrare neschimbat.

Fragment de cod - Eliminarea spațiului pe Snipplr

Dacă vă întrebați de ce nu folosim o expresie regulată aici, este pur și simplu pentru că această metodă se execută mai repede.


12. Slugificați

Wikipedia descrie un slug ca

parte a unei adrese URL care identifică o pagină care utilizează cuvinte cheie care pot fi citite de oameni

Un slug este, de obicei, câteva cuvinte, fiecare cuvânt separat de un caracter delimitant, de obicei un subliniere sau o cratimă. O versiune stilizată a șirului "10 sfaturi pentru o viață mai bună!" ar fi "10 sfaturi pentru o viață mai bună".

Această funcție are nevoie de un șir arbitrar și se convertește pentru a fi utilizat ca un slug. Utilizăm două expresii regulate pentru a realiza acest lucru, primul este folosit pentru a elimina orice caracter care nu este un caracter cuvânt, spațiu sau cratimă, al doilea înlocuiește orice spații cu o singură cratimă. În final, convertim șirul în litere mici. Aceasta returnează un șir nou, lăsând șirul de intrare neschimbat.

Fragment de cod - Slugificare la Snipplr

Dacă vă întrebați unde se poate folosi acest lucru în contextul Flash, este deosebit de util cu SWFAddress pentru crearea URL-urilor prietenoase SEO pentru secțiunile discrete ale aplicației dvs..


13. Strip http: // sau https: // De la un șir, opțional eliminat www.

Această funcție are un șir și returnează o copie cu toate aparițiile http: // și https: // îndepărtat. Șirul "Vă rugăm să vizitați http://exemplu.com pentru a afla mai multe" se va converti la "Vă rugăm să vizitați example.com pentru a afla mai multe". În general, aceasta este mai compactă, deoarece http: // este redundantă atunci când vă referiți în mod evident la o adresă URL.

Opțional, această funcție poate, de asemenea, să se desprindă www subdomeniu prin trecerea adevăratului ca al doilea parametru. Este setat la valoarea false ca implicit, deoarece example.com și www.example.com ar putea conține teoretic site-uri diferite.

Fragment de cod - Strip http: // sau https: // De la un șir, opțional Îndepărtarea www. pe Snipplr

14. Strip HTML Markup

Dacă există vreodată un timp când încărcați text dintr-o sursă externă care conține marcaj HTML nedorit, utilizați următoarea funcție. Aceasta utilizează o expresie regulată pentru a elimina toate etichetele HTML din șirul de intrare. Șirul "Faceți clic aici pentru a afla mai multe"ar fi pur și simplu convertit în" Faceți clic aici pentru a afla mai multe ".Acest lucru returnează un nou șir, lăsând șirul de intrare neschimbat.

Fragment de cod - Strip HTML Markup pe Snipplr

15. Strip Namespaces

Încărcarea XML, în special din surse terță parte, se poate dovedi uneori problematică atunci când XML utilizează spații de nume. Acest fragment va lua un obiect XML și va dezbate toate declarațiile și prefixele din spațiul de nume. Acest fragment lasă XML-ul de intrare neschimbat și returnează un nou obiect XML.

Fragment de cod - Strip XML Spațiul de nume pe Snipplr

Merită menționat faptul că spațiile de nume există pentru un motiv și că eliminarea acestora poate provoca probleme. Aceasta este de obicei doar o problemă atunci când combinați mai multe fișiere XML împreună din diferite surse. Eu personal nu am experimentat niciodată acest lucru, dar merită încă să fiu precaut.


Concluzie

Sper că ați găsit aceste 15 fragmente utile. Scrierea codului funcțional, reutilizabil poate fi un obicei foarte bun pentru a intra. Eu personal cred că vă uitați la fragmente de cod ale altor persoane este o modalitate excelentă de a învăța sfaturi și trucuri pe care nu le puteți gândi înainte.

Pentru a consulta mai multe fragmente, mergeți la secțiunea Actionscript din Snipplr și dacă aveți oricare dintre propriile fragmente AS3 pe care doriți să le partajați, adăugați-le la Snipplr și lăsați url în comentariile!

Dacă v-ați bucurat de acest post vă rugăm să verificați site-ul meu la ahrooga.com pentru mai multe articole legate de Flash.

Cod