Dans ce tutoriel, nous allons créer une application Twitter Reader, alimentée à partir de vos propres mises à jour Twitter. Nous allons examiner quelques-unes des fonctionnalités de la classe nativeWindow, comment la signer et créer un paquet d'installation.
Jetons un coup d'œil à l'application finale sur laquelle nous allons travailler:
Avec ce lecteur, vous pouvez exécuter n’importe quelle application portant l’extension .air, comme le nouveau Adobe Media Player. Nous devons d’abord installer le lecteur Adobe AIR. Allez donc sur Adobe et téléchargez le lecteur. Choisissez votre système d'exploitation et cliquez sur télécharger. Une fois le téléchargement terminé, installez-le.
Nous avons maintenant besoin de notre deuxième élément pour développer des applications AIR: l’extension. Dans ce cas, j'utilise celui de Flash CS3, mais il est également disponible pour Flash CS4. Accédez au centre de support Adobe Flash. Avant d'installer la mise à jour Flash pour Adobe AIR, vous devez télécharger et installer la dernière mise à jour de Flash Player (9.0.2), que vous pouvez télécharger ici: http://www.adobe.com/support/flash/downloads.html # 902.
Ensuite, vous devez télécharger et installer la mise à jour Adobe AIR pour Flash CS3 Professional: http://www.adobe.com/support/flash/downloads.html.
À ce stade, lorsque vous démarrez Flash CS3 ou CS4, vous avez la possibilité de créer un fichier Flash Adobe AIR sur l'écran d'accueil. Fais le! Réglez la taille de la scène sur 300 pixels de large et 500 pixels de haut avec 30 images par seconde. J'ai choisi une couleur blanche pour le fond. Enregistrez-le sous "my-twitter-updates.fla".
Nous allons utiliser une image d'iPhone comme arrière-plan, alors visitez le site Web de Sam Brown (beaux vecteurs) et téléchargez l'ensemble d'images d'iPhone. Ouvrez le fichier avec Fireworks ou Photoshop et choisissez n’importe quelle taille (sans texte), puis exportez-le sous le nom "bg_iphone.png"..
Dans Flash, choisissez Fichier> Importer, puis importez le "bg_iphone.png" à mettre en scène. Sélectionnez-le et alignez-le verticalement et horizontalement au centre. Convertissez cette image en un symbole MovieClip nommé "mcIphone", puis allez dans les propriétés et assignez "twitterApp" comme nom d’instance. Double-cliquez sur le symbole et renommez le premier calque en "bg_iphone". Vous devriez maintenant avoir quelque chose comme l'image suivante:
Maintenant, créez un nouveau calque pour le titre de notre application. Dessine un champ de texte dynamique et assigne-le "title_app" comme nom d'occurrence.
Ajoutez ensuite deux nouvelles couches. le premier nommé "mes mises à jour" et le second "suivez-moi". Créez un champ de texte dynamique multiligne sur le calque "mes mises à jour" avec les propriétés suivantes:
Nous aurons besoin d'un bouton pour Suis moi sur le calque "suivez-moi", créez un rectangle en bas de la zone de l'iPhone et convertissez-le en symbole de bouton avec le texte "suivez-moi". Ensuite, assignez "btFollowme" comme nom d'instance.
À ce stade, nous avons besoin de deux boutons; de haut en bas pour faire défiler le contenu du champ de texte "mes mises à jour". Accédez au panneau Montage et ajoutez un nouveau calque. Tapez le nom "boutons de défilement", puis tracez une flèche sur la scène et convertissez-la en symbole de MovieClip. Pour l'autre bouton copier, collez et retournez-le verticalement. Attribuez "btUp" et "btDown" comme nom d'instance. Enfin, retournez à la chronologie principale. Quand vous avez fini, vous devriez avoir quelque chose comme l’image suivante.
Tout d'abord, nous avons besoin de l'URL de votre flux RSS, alors rendez-vous sur votre page d'accueil Twitter. Maintenant, cliquez sur le bouton Profil dans la barre de navigation supérieure. Allez dans le panneau de droite, cliquez avec le bouton droit de la souris sur "Flux RSS de Nom d'utilisateur"et copiez l'URL.
Examinons la structure de nos mises à jour Twitter sur Twitter. La première partie est l'info rss de la chaîne et la seconde est la boucle des mises à jour. Nous allons utiliser quelques nœuds de base: le lien de la première partie, title, pubDate et le lien de l'élément loop.
Retournez dans Flash et créez un nouveau calque pour les actions. Il est temps de commencer à coder. Comme vous pouvez le constater, la première variable contient l'URL du flux RSS de votre profil Twitter, alors collez-le dans le votre:
var twitterURL: String = "http://twitter.com/statuses/user_timeline/16211488.rss"; var twitterXML: URLRequest = new URLRequest (twitterURL); var myLoader: URLLoader = new URLLoader (twitterXML); myLoader.addEventListener ("complete", xmlLoaded);
Avec cette fonction, nous pouvons charger le RSS et chaque nœud de la liste avant de commencer à définir les variables des nœuds xml:
fonction xmlLoaded (evtObj: événement) var twitter: XML = new XML (myLoader.data); var TwitterTitle: String = twitter.child (0) .description; var UserUrl: String = twitter.child (0) .link;
Dans cette partie, nous devons obtenir les valeurs des nœuds XML et les affecter à une variable myUpdates. Utiliser un pour la déclaration faire cela.
var myUpdates: String = ""; pour chaque (var nodo: XML dans twitter… item) myUpdates + = ""+ nodo.title +"
"+""+ nodo.pubDate +"
";
Nous affichons d’abord le titre de l’application, puis nous obtenons les mises à jour et ajoutons enfin un EventListener pour le bouton Suivre avec l’url de l’utilisateur (Exemple: http://twitter.com/_dariux)..
// THE TITLE APP> "Twitter updates from Darío Gutiérrez / _dariux." twitterApp.titleApp.text = TwitterTitle; // Affiche la valeur de myUpdates dans le champ de texte twitterApp.myUpdates.htmlText = myUpdates; // Actions pour le bouton Suivez-moi twitterApp.btFollowme.addEventListener (MouseEvent.CLICK, btFollowme_CLICK); function btFollowme_CLICK (e: MouseEvent): void var targetURL: URLRequest = new URLRequest (UserUrl); browseToURL (targetURL);
Code simple pour les boutons de défilement, vérifiez ce code:
// Listeners et fonctions pour les boutons de défilement twitterApp.btUp.addEventListener (MouseEvent.CLICK, scrollUp); twitterApp.btDown.addEventListener (MouseEvent.CLICK, scrollDown); fonction scrollUp (Event: MouseEvent): void twitterApp.myUpdates.scrollV - = 5; function scrollDown (Event: MouseEvent): void twitterApp.myUpdates.scrollV + = 5;
Testez le film (Menu Ctrl + Tester le film ou cmd + entrée). Comme vous pouvez le constater, il s’agit d’une fenêtre normale, tout comme lorsque vous utilisez le lecteur Flash classique. Dans l'étape suivante, nous allons personnaliser notre application et vous remarquerez la différence…
Pour les paramètres AIR dans Flash CS4, accédez à Fichier> Paramètres AIR et pour Flash CS3, à Commandes> Paramètres de l'application AIR et du programme d'installation. Dans cette fenêtre, nous allons commencer à personnaliser l’application. Nous allons donc dans le champ de description et écrire quelques informations générales..
Style de fenêtre
Le style de la fenêtre est intéressant. Il existe trois styles: chrome, opaque et transparent. Le style Chrome est comme une simple fenêtre avec des boutons, un arrière-plan et une bordure, l'Opaque est une fenêtre avec un arrière-plan mais sans boutons et le dernier style Transparent est une fenêtre sans des boutons et un arrière-plan. Dans notre cas, choisissez le style Transparent.
Icône
Choisissez une icône (ou créez-en une) pour votre application en différentes tailles: 16px, 32px, 48px, 128px avec extension .png.
Avancée
Dans cette option, vous pouvez sélectionner les différents paramètres de la fenêtre au lancement de votre application, les options pour les dossiers à installer et les mises à jour..
Signature numérique
Lorsque vous souhaitez expédier votre application AIR, vous avez besoin d'une signature numérique pour que le programme d'installation puisse l'installer sur les systèmes d'autres utilisateurs. Dans ce cas, nous signons notre application avec un certificat non approuvé pour permettre à runtime AIR de s'installer en tant qu'éditeur non vérifié. Pour plus d'informations sur l'obtention d'un certificat, consultez le lien suivant: Signature numérique d'applications Adobe AIR.
Destination
Choisissez la destination du dossier et un nom pour votre application.
Fichiers d'inclusion
Flash sélectionne automatiquement certains fichiers nécessaires à l'exécution de l'application. Si vous utilisez d'autres fichiers dans votre application (comme une caurina tween, par exemple), vous devez les inclure dans l'application..
Dans cette partie, nous utiliserons la classe "NativeWindow" et la fonction "startMove ()", afin de permettre à notre application de se déplacer sur toute la scène. Accédez au calque actions et ajoutez le code suivant. Puis testez-le:
stage.addEventListener (MouseEvent.MOUSE_DOWN, moveWin); function moveWin (e: MouseEvent): void stage.nativeWindow.startMove ();
Notre application peut maintenant se déplacer sur toute la scène, mais si vous voulez fermer ou réduire au minimum, vous ne pouvez pas. Allez créer deux boutons: minimiser (nom d'instance btMinimize) et fermer (nom d'instance btClose) tel que la photo suivante, mais cette fois, vous devez utiliser le clip principal (twitterApp). Enfin, ajoutez le code suivant:
// Bouton Réduire twitterApp.btMinimize.addEventListener (MouseEvent.CLICK, btMinimize_CLICK); fonction btMinimize_CLICK (e: MouseEvent): void stage.nativeWindow.minimize (); // Bouton Maximiser twitterApp.btClose.addEventListener (MouseEvent.CLICK, btClose_CLICK); fonction btClose_CLICK (e: MouseEvent): void stage.nativeWindow.close ();
Cette fonctionnalité est très simple. Il suffit d’ajouter un bouton en dessous du bouton Suivez-moi pour créer un nouveau calque dans le clip principal "twitterApp". Ecrivez "btAlwaysfront" comme nom d'instance:
Une fois que vous avez créé ce bouton, allez à l'intérieur et créez un autre cadre, chacun avec une action d'arrêt. L'objectif est d'avoir deux états pour le bouton. Premier cadre désactivé et le deuxième cadre activé. Cette fonctionnalité utilise le toujoursInFront méthode de la classe nativeWindow. Après cela, nous devons ajouter les actions au bouton btAlwaysfront, alors allez dans le cadre actions et collez le code suivant:
// Activer la fenêtre toujours devant stage.nativeWindow.alwaysInFront = false; twitterApp.btAlwaysfront.addEventListener (MouseEvent.CLICK, btAlwaysfront_CLICK); fonction btAlwaysfront_CLICK (e: MouseEvent): void if (stage.nativeWindow.alwaysInFront! = true) twitterApp.btAlwaysfront.gotoAndStop (2); stage.nativeWindow.alwaysInFront = true; else twitterApp.btAlwaysfront.gotoAndStop (1); stage.nativeWindow.alwaysInFront = false;
// Twitter URL rss var twitterURL: String = "http://twitter.com/statuses/user_timeline/16211488.rss"; var twitterXML: URLRequest = new URLRequest (twitterURL); var myLoader: URLLoader = new URLLoader (twitterXML); myLoader.addEventListener ("complete", xmlLoaded); fonction xmlLoaded (evtObj: événement) var twitter: XML = new XML (myLoader.data); var TwitterTitle: String = twitter.child (0) .description; var UserUrl: String = twitter.child (0) .link; var myUpdates: String = ""; // La boucle pour chaque élément (var nodo: XML dans twitter… item) myUpdates + = ""+ nodo.title +"
"+""+ nodo.pubDate +"
"; // THE TITLE APP>" Mises à jour Twitter de Darío Gutiérrez / _dariux. "TwitterApp.titleApp.text = TwitterTitle; // Affiche la valeur de myUpdates dans le champ de texte twitterApp.myUpdates.htmlText = myUpdates; // Actions pour suivre Moi bouton twitterApp.btFollowme.addEventListener (MouseEvent.CLICK, btFollowme_CLICK); fonction btFollowme_CLICK (e: MouseEvent): void var targetURL: URLRequest = nouvelle URLRequest (UserUrl); void URLText (targetURL); / ****** *********************************************** Auditeurs et fonctions des boutons de défilement ********************************************** ******** / twitterApp.btUp.addEventListener (MouseEvent.CLICK, scrollUp); twitterApp.btDown.addEventListener (MouseEvent.CLICK, scrollDown); fonction scrollUp (Event: MouseEvent): void twitterApp.myUpdates.scrollV - = 5; function scrollDown (Event: MouseEvent): void twitterApp.myUpdates.scrollV + = 5; / ********************* ******************************** Zone AIR ****************** ***************************** ******** / // déplacement de la fenêtre stage.addEventListener (MouseEvent.MOUSE_DOWN, moveWin); function moveWin (e: MouseEvent): void stage.nativeWindow.startMove (); // Bouton Réduire twitterApp.btMinimize.addEventListener (MouseEvent.CLICK, btMinimize_CLICK); fonction btMinimize_CLICK (e: MouseEvent): void stage.nativeWindow.minimize (); // Bouton Maximiser twitterApp.btClose.addEventListener (MouseEvent.CLICK, btClose_CLICK); fonction btClose_CLICK (e: MouseEvent): void stage.nativeWindow.close (); // Activer la fenêtre toujours devant stage.nativeWindow.alwaysInFront = false; twitterApp.btAlwaysfront.addEventListener (MouseEvent.CLICK, btAlwaysfront_CLICK); fonction btAlwaysfront_CLICK (e: MouseEvent): void if (stage.nativeWindow.alwaysInFront! = true) twitterApp.btAlwaysfront.gotoAndStop (2); stage.nativeWindow.alwaysInFront = true; else twitterApp.btAlwaysfront.gotoAndStop (1); stage.nativeWindow.alwaysInFront = false;
Pour publier votre fichier .air dans flash CS4 allez dans le menu Fichier> Paramètres AIR et cliquez sur le bouton "Publier le fichier AIR".
Pour flash CS3 allez dans Commandes> AIR - Créer un fichier AIR.
Ensuite, vous verrez une nouvelle fenêtre (la signature numérique). Choisissez un certificat et tapez votre mot de passe. Il faut un certain temps pour créer le fichier .air, mais une fois terminé, vous verrez une autre fenêtre avec le texte suivant "Le fichier AIR a été créé". Le fichier .air est créé dans le même répertoire de travail que votre fichier .fla.
Comme vous pouvez le constater, mon application a une ombre portée. Si vous voulez un style Windows Mac, il suffit de sélectionner le clip principal "twitterApp" et d'appliquer:
Nous avons donc notre application AIR! C'est une petite application, mais j'espère que cela vous aidera à développer la vôtre. Avec cette technologie, nous pouvons développer des applications géniales, masquables avec des API telles que Twitter, Gmaps et Flickr. Il y a beaucoup d'autres fonctionnalités non couvertes dans ce tutoriel, beaucoup de possibilités pour un futur tutoriel ou un guide rapide! Merci d'avoir lu.