Creați un generator de cod QR în Flash utilizând AS3

Codurile QR sunt peste tot în aceste zile: reclame în reviste, panouri publicitare, chiar și reclame TV. Există șanse să aveți un telefon în buzunar, care să poată citi un cod QR și să decodeze adresa URL sau mesajul conținut în acesta. În acest tutorial, veți învăța cum să creați un SWF care poate inversa procesul: creați un cod QR dintr-o adresă URL sau un mesaj. Citește mai departe!


Rezultatul final al rezultatelor

Să aruncăm o privire la aplicația finală la care vom lucra:


Pasul 1: Prezentare succintă

Folosind elemente grafice prefabricate, vom crea o interfață bine concepută care va fi alimentată de mai multe clase ActionScript 3.

Codul va folosi bine o clasă QR Code Encoder, creată de Jean-Baptiste Pin.


Pasul 2: Setări Flash Document

Deschideți Flash și creați un document de 480 pixeli lățime, 480 pixeli înălțime. Setați rata cadrelor la 24fps.


Pasul 3: Interfața

Va fi afișată o interfață cu aspect frumos, care implică mai multe forme, butoane și multe altele.
Formele simple au fost create folosind instrumentele Flash Drawing Tools, astfel încât nu va fi necesar să includeți crearea acestora.


Pasul 4: Numele instanțelor

Imaginea de mai sus arată Nume de instanță folosit în MovieClips. Cele care încep cu a Majusculă sunteți Numele claselor bibliotecilor și nu ar trebui să fie pe scenă.


Pasul 5: TweenNano

Vom folosi un motor tween diferit de cel implicit inclus în Flash, ceea ce va crește performanța și va fi mai ușor de utilizat.

Poti descarca TweenNano de pe site-ul său oficial.


Pasul 6: Biblioteca de cod QR

Vom folosi o bibliotecă fantastică QR Code Encoder, care poate fi descărcată de aici. Puteți afla mai multe despre utilizarea bibliotecilor externe în codul dvs. cu acest tutorial.

Notă editor: Utilizați fișierul SWC, nu clasele din folderul \ org \, pentru rezultate optime.


Pasul 7: Setați clasa principală

Adăugați numele clasei la Clasă domeniu în Publica secțiunea din Proprietăți pentru a asocia FLA cu clasa de documente principale.


Pasul 8: Creați o nouă clasă ActionScript

Creați o nouă clasă ActionScript 3.0 (Cmd + N) și salvați-o ca Main.as în dosarul dvs. de clasă.


Pasul 9: Structura clasei

Creați structura claselor de bază pentru a începe să scrieți codul.

 pachet import flash.display.Sprite; clasa publică principală extinde Sprite funcția publică Main (): void // code constructor

Pasul 10: Clasele necesare

Acestea sunt clasele pe care trebuie să le importăm pentru ca clasa noastră să funcționeze import directiva face ca clasele și pachetele definite extern să fie disponibile pentru codul dvs..

 import flash.display.Sprite; importul flash.events.MouseEvent; import org.qrcode.QRCode; import flash.display.Bitmap; import com.greensock.TweenNano; import com.greensock.easing.Expo;

Pasul 11: Variabile

Acestea sunt variabilele pe care le vom folosi, citiți comentariile din cod pentru a afla mai multe despre ele, unele dintre ele sunt explicate de sine, astfel încât nu va fi nici un comentariu acolo.

 private var textView: TextView; privat var smsView: SMSView = nou SMSView (); privat var emailView: EmailView = nou EmailView (); private var linkView: LinkView = nou LinkView (); privat var lastView: Sprite; private var currentTarget: String; // șir curent pentru a converti privat var qrImg: Bitmap;

Pasul 12: Constructorul

Constructorul este o funcție care rulează atunci când un obiect este creat dintr-o clasă, acest cod este primul care se execută atunci când faceți o instanță a unui obiect sau executați utilizând Clasa de documente.

Se apelează funcțiile necesare pentru a porni aplicația. Verificați aceste funcții în pașii următori.

 funcția publică finală Main (): void addTextView (); addListeners (); 

Pasul 13: Adăugați vizualizarea textului

Prima funcție executată de constructor. Acesta va instanțiat TextView și îl va adăuga în scenă. Aceasta va fi vizualizarea implicită care va fi afișată pornind de la aplicație. Acesta include un apel pentru a elimina vizualizarea vizibilă în prezent (în cazul în care există o) și, de asemenea, efectuează un Tween ca un detaliu la interfață.

 funcția finală privată addTextView (): void removeLastView (); textView = TextView nou (); textView.x = stage.stageWidth * 0.5; textView.y = 110; addChild (TextView); TweenNano.from (textView, 0,5, y: textView.y - 10, alfa: 0, ușurință: Expo); lastView = textView; 

Pasul 14: Vizualizare SMS

Acest cod se ocupă de poziția și animația SMSView. Se numește când se apasă butonul pentru butonul SMS.

 funcția finală privată addSMSView (): void removeLastView (); smsView = nou SMSView (); smsView.x = stage.stageWidth * 0.5; smsView.y = 150; addChild (smsView); TweenNano.from (smsView, 0,5, y: smsView.y - 10, alfa: 0, ușurință: Expo); lastView = smsView; 

Pasul 15: Vizualizarea e-mailului

Codul EmailView. Va pune și va anima această viziune pe scenă.

 funcția finală privată addEmailView (): void removeLastView (); emailView = noul EmailView (); emailView.x = stage.stageWidth * 0.5; emailView.y = 155; addChild (emailview); TweenNano.de (emailView, 0.5, y: emailView.y - 10, alfa: 0, usurinta: Expo); lastView = emailView; 

Pasul 16: Vizualizare legătură

Aceasta este fila finală, elimină ultima vizualizare vizibilă și adaugă LinkView la scenă.

 funcția finală privată addLinkView (): void removeLastView (); linkView = nou LinkView (); linkView.x = stage.stageWidth * 0.5; linkView.y = 110; addChild (linkView); TweenNano.from (linkView, 0.5, y: linkView.y - 10, alfa: 0, usurinta: Expo); lastView = linkView; 

Pasul 17: Eliminați ultima vizualizare

Această funcție elimină viziunea curentă vizibilă de pe scenă și o eliberează pentru colectarea gunoiului.

 funcția finală privată removeLastView (): void if (lastView! = null) removeChild (lastView); lastView = null; 

Pasul 18: Adăugați ascultători

Următorul cod leagă butoanele de funcțiile corespunzătoare. Aceasta va permite navigarea pe fila.

 funcția finală privată addListeners (): void abcBtn.addEventListener (MouseEvent.MOUSE_UP, indicatorHandler); smsBtn.addEventListener (MouseEvent.MOUSE_UP, indicatorHandler); mailBtn.addEventListener (MouseEvent.MOUSE_UP, indicatorHandler); linkBtn.addEventListener (MouseEvent.MOUSE_UP, indicatorHandler); refreshBtn.addEventListener (MouseEvent.MOUSE_UP, refreshCode); 

Pasul 19: Indicator de manipulare

Indicatorul MovieClip este săgeata mică care afișează fila activă. Această funcție o plasează în poziția corectă și apelează funcția file.

 indicatorul funcției finale privateHandler (e: MouseEvent): void indicator.x = e.target.x; comuta (e.target.name) caz 'abcBtn': addTextView (); pauză; cazul "smsBtn": addSMSView (); pauză; cazul "emailBtn": addEmailView (); pauză; cazul "linkBtn": addLinkView (); pauză; implicit: urmări ("Eroare nume buton"); 

Pasul 20: Reîmprospătați codul QR

Această funcție se va executa la apăsarea butonului de actualizare, determină șirul de conversie curent și QRObject codifica() pentru a genera un bitmap care este adăugat în continuare la etapă.

 funcția finală privată refreshCode (e: MouseEvent): void comutare (lastView) text textView: currentTarget = textView.textTF.text; pauză; cazul smsView: curentTarget = 'SMSTO:' + smsView.phoneTF.text + ':' + smsView.contentTF.text; pauză; caz emailView: currentTarget = 'SMTP:' + emailView.toTF.text + ':' + emailView.subjectTF.text + ':' + emailView.bodyTF.text; pauză; caz linkView: currentTarget = linkView.linkTF.text; dacă (currentTarget.indexOf (': //') == -1) currentTarget = 'http: //' + curentTarget; // adăugați automat http: // în partea din față a legăturilor, dacă este necesar pauză; implicit: urmărire ("Eroare țintă");  dacă (qrImg! = null) removeChild (qrImg); qrImg = null;  var qrObj: QRCode = QRCode nou (); qrObj.encode (currentTarget); qrImg = Bitmap nou (qrObj.bitmapData); qrImg.x = stadiu. stadiul Width * 0.5 - (qrImg.width * 0.5); qrImg.y = 300 - (qrImg.height * 0,5); addChild (qrImg); TweenNano.from (qrImg, 1, alfa: 0, ușurință: Expo); 

Concluzie

Utilizați această aplicație pentru a genera codurile QR personalizate și nu uitați să explorați fișierele sursă.

Sper că ți-a plăcut acest tutorial, mulțumesc pentru lectură!

Cod