Créer un générateur de code QR dans Flash avec AS3

Les codes QR sont omniprésents de nos jours: publicités dans les magazines, panneaux d’affichage, voire publicités télévisées. Vous avez probablement un téléphone dans votre poche qui peut lire un code QR et décoder l'URL ou le message qu'il contient. Dans ce didacticiel, vous apprendrez à créer un fichier SWF pouvant inverser le processus: créez un code QR à partir d'une URL ou d'un message. Continuer à lire!


Aperçu du résultat final

Jetons un coup d'œil à l'application finale sur laquelle nous allons travailler:


Étape 1: bref aperçu

En utilisant des éléments graphiques prédéfinis, nous allons créer une interface attrayante qui sera alimentée par plusieurs classes ActionScript 3.

Le code utilisera une classe de codeurs QR Code créée par Jean-Baptiste Pin..


Étape 2: Paramètres du document Flash

Ouvrez Flash et créez un document de 480 pixels de large et 480 pixels de large. Définir le taux de trame à 24fps.


Étape 3: interface

Une belle interface colorée sera affichée, cela implique plusieurs formes, boutons et plus.
Les formes simples ont été créées à l'aide des outils de dessin Flash. Il n'est donc pas nécessaire d'inclure leur création..


Étape 4: noms d'instance

L'image ci-dessus montre la Noms d'instance utilisé dans le MovieClips. Ceux qui commencent par un Lettre capitale sont Noms de classe de la bibliothèque et ne devrait pas être sur scène.


Étape 5: TweenNano

Nous utiliserons un moteur d'interpolation différent de celui par défaut inclus dans Flash, ce qui augmentera les performances et sera plus facile à utiliser..

Vous pouvez télécharger TweenNano depuis son site officiel.


Étape 6: Bibliothèque de codes QR

Nous utiliserons une fantastique bibliothèque QR Code Encoder, téléchargeable ici. Vous pouvez en savoir plus sur l'utilisation de bibliothèques externes dans votre code avec ce tutoriel..

Note de la rédaction: utilisez le fichier SWC, et non les classes du dossier \ org \, pour obtenir de meilleurs résultats..


Étape 7: Définir la classe principale

Ajoutez le nom de la classe à la Classe champ dans le Publier section de la Propriétés panneau pour associer la FLA à la classe de document Main.


Étape 8: Créer une nouvelle classe ActionScript

Créez une nouvelle classe ActionScript 3.0 (Cmd + N) et enregistrez-la sous Main.as dans votre dossier de classe.


Étape 9: Structure de classe

Créez votre structure de classe de base pour commencer à écrire votre code.

 package import flash.display.Sprite; classe publique Main étend Sprite fonction publique Main (): void // code constructeur

Étape 10: Classes requises

Ce sont les classes que nous devons importer pour que notre classe fonctionne, le importation directive met à la disposition de votre code des classes et des packages définis en externe.

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

Étape 11: Variables

Ce sont les variables que nous allons utiliser, lisez les commentaires dans le code pour en savoir plus à leur sujet, certains de leurs noms s’expliquent d'eux-mêmes, il n'y aura donc pas de commentaire.

 private var textView: TextView; var privé smsView: SMSView = new SMSView (); var privé emailView: EmailView = new EmailView (); var privé linkView: LinkView = new LinkView (); private var lastView: Sprite; private var currentTarget: String; // chaîne en cours de conversion de la variable privée qrImg: Bitmap;

Étape 12: constructeur

Le constructeur est une fonction qui s'exécute lorsqu'un objet est créé à partir d'une classe. Ce code est le premier à s'exécuter lorsque vous créez une instance d'un objet ou que vous l'exécutez à l'aide de la classe de document..

Il appelle les fonctions nécessaires pour démarrer l'application. Vérifiez ces fonctions dans les prochaines étapes.

 fonction finale publique Main (): void addTextView (); addListeners (); 

Étape 13: Ajouter une vue de texte

La première fonction exécutée par le constructeur. Il va instancier le TextView et l'ajouter à la scène. Ce sera la vue par défaut qui sera affichée à partir de l'application. Il inclut un appel pour supprimer la vue actuellement visible (le cas échéant) et effectue également une interpolation en tant que détail de l'interface..

 fonction finale privée addTextView (): void removeLastView (); textView = new TextView (); textView.x = stage.stageWidth * 0.5; textView.y = 110; addChild (textView); TweenNano.from (textView, 0.5, y: textView.y - 10, alpha: 0, facilité: Expo); lastView = textView; 

Étape 14: Affichage SMS

Ce code gère la position et l'animation de SMSView. Il est appelé lorsque vous appuyez sur l'onglet du bouton SMS..

 fonction finale privée addSMSView (): void removeLastView (); smsView = new SMSView (); smsView.x = stage.stageWidth * 0.5; smsView.y = 150; addChild (smsView); TweenNano.from (smsView, 0.5, y: smsView.y - 10, alpha: 0, facilité: Expo); lastView = smsView; 

Étape 15: Affichage par courrier électronique

Le code EmailView. Il placera et animera cette vue sur la scène.

 fonction finale privée addEmailView (): void removeLastView (); emailView = new EmailView (); emailView.x = stage.stageWidth * 0.5; emailView.y = 155; addChild (emailView); TweenNano.from (emailView, 0.5, y: emailView.y - 10, alpha: 0, facilité: Expo); lastView = emailView; 

Étape 16: Affichage du lien

Ceci est le dernier onglet, il supprime la dernière vue visible et ajoute le LinkView à la scène.

 fonction finale privée addLinkView (): void removeLastView (); linkView = new LinkView (); linkView.x = stage.stageWidth * 0.5; linkView.y = 110; addChild (linkView); TweenNano.from (linkView, 0.5, y: linkView.y - 10, alpha: 0, facilité: Expo); lastView = linkView; 

Étape 17: Supprimer la dernière vue

Cette fonction supprime la vue actuellement visible de la scène et la libère pour le nettoyage de la mémoire..

 fonction finale privée removeLastView (): void if (lastView! = null) removeChild (lastView); lastView = null; 

Étape 18: Ajouter des auditeurs

Le code suivant relie les boutons aux fonctions correspondantes. Cela permettra la navigation par onglet.

 fonction finale privée addListeners (): void abcBtn.addEventListener (MouseEvent.MOUSE_UP, indicatorHandler); smsBtn.addEventListener (MouseEvent.MOUSE_UP, indicateurHandler); emailBtn.addEventListener (MouseEvent.MOUSE_UP, indicateurHandler); linkBtn.addEventListener (MouseEvent.MOUSE_UP, indicateurHandler); refreshBtn.addEventListener (MouseEvent.MOUSE_UP, refreshCode); 

Étape 19: Indicateur de gestion

L'indicateur MovieClip est la petite flèche qui montre l'onglet actif. Cette fonction le place dans la bonne position et appelle la fonction de tabulation.

 fonction finale privée indicateurHandler (e: MouseEvent): void indicateur.x = e.target.x; commutateur (e.target.name) case 'abcBtn': addTextView (); Pause; case 'smsBtn': addSMSView (); Pause; case 'emailBtn': addEmailView (); Pause; case 'linkBtn': addLinkView (); Pause; défaut: trace ('Button Names Error'); 

Étape 20: actualiser le code QR

Cette fonction sera exécutée lorsque le bouton Actualiser sera enfoncé, elle déterminera la chaîne actuelle à convertir et le QRObject. encoder() méthode pour générer un bitmap qui est ensuite ajouté à la scène.

 fonction finale privée refreshCode (e: MouseEvent): void commutateur (lastView) case textView: currentTarget = textView.textTF.text; Pause; case smsView: currentTarget = 'SMSTO:' + smsView.phoneTF.text + ':' + smsView.contentTF.text; Pause; case emailView: currentTarget = 'SMTP:' + emailView.toTF.text + ':' + emailView.subjectTF.text + ':' + 'emailView.bodyTF.text; Pause; case linkView: currentTarget = linkView.linkTF.text; if (currentTarget.indexOf (': //') == -1) currentTarget = 'http: //' + currentTarget; // ajoute automatiquement http: // au début des liens si nécessaire break; défaut: trace ('Erreur de cible');  if (qrImg! = null) removeChild (qrImg); qrImg = null;  var qrObj: QRCode = new QRCode (); qrObj.encode (currentTarget); qrImg = new Bitmap (qrObj.bitmapData); qrImg.x = stage.stageWidth * 0.5 - (qrImg.width * 0.5); qrImg.y = 300 - (qrImg.height * 0.5); addChild (qrImg); TweenNano.from (qrImg, 1, alpha: 0, facilité: Expo); 

Conclusion

Utilisez cette application pour générer vos codes QR personnalisés et n'oubliez pas d'explorer les fichiers source.

J'espère que vous avez aimé ce tutoriel, merci d'avoir lu!