Étape 7: Client Flash et application
Donc, ouvrez Flash et créer deux nouveaux fichiers flash. L’un au format ActionScript 3.0 et nommez-le Client.fla et l’autre pour Adobe AIR avec le nom ArduinoAIR.fla. Créer deux fichiers ActionScript, puis nous appellerons ClienDocument.as et ArduinoAIRDocument.as. Le client contient un composant TextArea, nommé « msgArea », composant InputText nommé « inputMessage », deux composants boutons nommés « sendButton » et « reconnectButton », trois éléments de curseur appelé « motorX », « moteur », « motorZ » et quatre TextFields dynamiques, appelé « red5StatusTxt », « sharedStatusTxt », « socketStatusTxt » et « queueStatus ».
Le soft AIR a les mêmes composants, mais il a également un composant de bouton supplémentaire appelé « sendArduinoButton ». Quand vous avez ces configuré, vous devez pointer chaque fichier flash vers sa classe de document. En des termes clairs, les classes de document servent à déplacer votre code de la chronologie dans un fichier externe acrionscript. Pour la Client.fla la classe de document devrait donc être ClientDocument.as et pour les ArduinoAIR.fla devraient être ArduinoAIRDocument.as. Bien. Maintenant, ouvrez ClientDocument.as et peur de voir ce que nous avons ici.
Dans les premières lignes, nous allons définir les classes que nous allons utiliser.
Les choses qui nous intéresse sont à l’intérieur de la fonction publique ClientDocument() laisse donc passer par chacun d’eux et d’expliquent ce qu’ils font.
Les trois premières lignes masquent le TextAreas et lauréat du trophée. Les 4. ligne initialise la classe Red5Broadcast qui gère la diffusion en continu et la diffusion de la vidéo. Nous devons lui donner l’emplacement du serveur red5, le nom d’application red5 et TextField dans lequel l’état de flux de données s’affiche. Il faut ajouter à la liste d’affichage dans le cas contraire, il ne serait pas montrer le flux vidéo.
Ensuite, Flash communique avec la prise de php via une classe XMLSocket qui fait partie du flash. J’ai créé une classe de modèle qui gérera tous les écouteurs nécessaires et envoyer des événements lorsque les données sont reçues. Il s’appelle XMLSocketModel et nous l’initialisez cette façon :
Nous devons passer l’URL où est notre prise, notre nombre et comme dernier paramètre le type d’application. The URL I use is arduinoproject.no-ip.org . Oui, j’ai utiliser www.no-ip.org service. De cette façon, j’ai la possibilité d’avoir un nom d’hôte pour mon IP dynamique. Il suffit de s’inscrire, choisissez un nom d’hôte et installer leur programme sur votre ordinateur. La dernière chose que nous transmettons est « client » parce que nous travaillons maintenant sur le fichier flash de notre client. Notez que tous les paramètres doivent être renseignés.
La ligne suivante initialise la classe View. Elle est utilisée pour afficher les données entrantes et il change quand il reçoit les événements envoyés par la classe de modèle.
Lorsque nous initialisons la xmlSocketView nous lui passer la zone de texte appelée « msgArea » en tant que paramètre. Qu’il indique où afficher nos données entrantes. La ligne suivante indique quel modèle il doit écouter les événements.
Ainsi xmlSocketView devrait écouter xmlSocketModel pour les événements.
Ensuite, il faut initialiser notre classe de contrôleur. C’est là toute la magie opère. La classe Controller est où toutes les décisions et sont formulées et la commande sont publiées. Aussi les boutons que nous mettons sur la scène vont avoir des auditeurs dans le contrôleur commandes de tir lorsque nous Appuyez sur eux, le contrôleur aussi changements lorsqu’il reçoit la dipatched des événements de la classe de modèle. Alors, tout d’abord, nous initialisons le Controler. Dans la prochaine ligne de nous dire ce qui modèle, il devrait écouter. Encore une fois comme le point de vue classe nous lui dire le modèle est xmlSocketModel. Puis nous lui dire que c’est videoBroadcast = diffusion . Nous ajoutons les boutons, les « queueStatus » TextField pour afficher la file d’attente, le « winnerStamp » MovieClip qui indique si le client gagne.
Finalement, nous initialisons le sharedObject qui échange les commandes pour le moteur avec le soft AIR. Les paramètres sont votre chemin d’accès du domaine, le nom de l’objet partagé et le « sharedStatusTxt » TextField où l’état de la connexion partagée s’affiche.
Maintenant nous allons jeter un oeil sur le code de l’application d’AIR.
Jetez un oeil attentif à la fonction publique ArduinoAIRDocument().
Le code est presque identique à celui du fichier flash client sauf lorsque nous initialisons la classe xmlSocketModel, qu'il faut passer "AIR" comme dernier paramètre.
La chose nouvelle que nous avons ici se passe dans les lignes 8 à 10.
Ici, nous initialisons le socketModel. Le socketModel est la classe de modèle pour la communication avec l’arduino. Il utilise la classe Socket du flash. Ligne 9 Initialise le socketView qui est la classe d’affichage pour le socketModel. Lorsque nous initialze il nous devons passer de la zone de texte « msgArea » parce que c’est aussi où nous affichons les commandes que nous envoyons à l’arduino et quel arduino retourne à l’AIR env. 10 ligne indique le socketView pour écouter les événements de la socketModel.
Le xmlSocketAppController s’étend de l' xmlSocketController donc nous initialisez-la près de la même manière.
Les trois dernières lignes du code initialisent le socketAppController qui est le contrôleur pour le socketModel. Il se chargera de la communication entre l’application d’AIR et arduino via port 5333. Port 5333 sera ouverte par TinkerProxy.
Maintenant, il faut publier nos fichiers. Publier le Client.fla pour Flash Player 10 et le soft AIR.