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!
Să aruncăm o privire la aplicația finală la care vom lucra:
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.
Deschideți Flash și creați un document de 480 pixeli lățime, 480 pixeli înălțime. Setați rata cadrelor la 24fps.
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.
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ă.
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.
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.
Adăugați numele clasei la Clasă domeniu în Publica secțiunea din Proprietăți pentru a asocia FLA cu clasa de documente principale.
Creați o nouă clasă ActionScript 3.0 (Cmd + N) și salvați-o ca Main.as în dosarul dvs. de clasă.
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
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;
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;
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 ();
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;
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;
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;
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;
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;
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);
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");
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);
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ă!