Je ne suis pas un developpeur AS3 (loin de là !!!), moi je suis plutôt sur les micro controleur et, justement, j'essaye de piloter un peripherique avec une appli Flash.
Le principe est relativement simple :
- Mon peripherique a son propre code dans lequel est stockée une variable "maVar". Quand celle-ci change de valeur, le peripherique execute telle ou telle chose (imprimer ou scanner par exemple ou tout autres choses qu'un peripherique pourrait faire)
- Dans l'appli Flash, on retrouve "maVar" et quand on clic sur un bouton de l'appli, on change la valeur de cette variable et on l'envoi dans un socket
- le socket est une entité se trouvant ENTRE l'appli Flash et le peripherique. En effet, pour faire le pont entre les 2, il faut utiliser un proxy (c'est une appli qui permet d'envoyer et recevoir des infos de l'USB de l'ordi). Le socket est donc une entité stockée DANS le proxy.
Tout fonctionne mais j'ai un probleme avec ce proxy et le soucis vient PEUT ETRE de mon code Flash. C'est pour cette raison que j'ai besoin de vous !
Pourriez vous me dire si, structurellement, il y a un probleme dans mon code SVP ?
Voila, ce petit monde fonctionne mais, plus j'envoie de requetes plus les connexions avec le proxy sont refusées !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 // les classes dont j'ai besoin import flash.display.Sprite; import flash.net.Socket; import flash.events.MouseEvent; //creation d'1 entité socket var _socket:Socket; _socket = new Socket(); //ça, ce sont les adresses de mon port USB var _proxyAddress:String = "127.0.0.1"; var _proxyPort:uint = 5331; //fonction de clic sur un bouton function onClic1(pEvt:Event):void { // je me connecte au proxy _socket.connect(_proxyAddress, _proxyPort); //la variable qui sera reconnue dans le peripherique var maVar:String = "E"; //j'ecris ma variable dans l'entité socket _socket.writeUTFBytes(maVar); } btn1.addEventListener(MouseEvent.CLICK, onClic1);
Je pense donc qu'il faut peut-être FERMER le socket après chaque utilisation !? j'utilise donc une methode .close() mais là, impossible !!! Flash m'envoi des message d'erreurs. Voila comment j'ecris ça :
-Arrivez vous à voir quelque chose de pas bien foutu ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 // les classes dont j'ai besoin import flash.display.Sprite; import flash.net.Socket; import flash.events.MouseEvent; //creation d'1 entité socket var _socket:Socket; _socket = new Socket(); //ça, ce sont les adresses de mon port USB var _proxyAddress:String = "127.0.0.1"; var _proxyPort:uint = 5331; //fonction de clic sur un bouton function onClic1(pEvt:Event):void { // je me connecte au proxy _socket.connect(_proxyAddress, _proxyPort); //la variable qui sera reconnue dans le peripherique var maVar:String = "E"; //j'ecris ma variable dans l'entité socket _socket.writeUTFBytes(maVar); _socket.close(); } btn1.addEventListener(MouseEvent.CLICK, onClic1);
-Comprenez vous pourquoi il refuse cette methode ?
-Sur un autre forum, quelqu'un me dit de ne pas mettre mon code sur la timeline.... ça peut changer quelque chose ?
Il me dit également de faire une classe et de mettre le code a l'interieur ????? je ne comprends rien !! peut être que vous oui !?
Partager