IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

La structure de mon code est elle bonne ?


Sujet :

ActionScript 3

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut La structure de mon code est elle bonne ?
    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 ?

    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);
    Voila, ce petit monde fonctionne mais, plus j'envoie de requetes plus les connexions avec le proxy sont refusées !
    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 :

    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);
    -Arrivez vous à voir quelque chose de pas bien foutu ?
    -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 !?

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Le seul truc que je vois, c'est de faire une fonction qui est appelée à l'initialisation et qui ferait la connexion du socket et une fonction, avant la fermeture du programme, qui ferait la déconnexion. Ainsi, il n'y aurait pas une connexion à chaque appuie du bouton.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Je crois que tu viens de me sauver !!!!!

    j'ai juste balancé la connexion du socket en debut de code et viré toutes les connexions dans les fonctions et ça a l'air de marcher !!!!!

    Merci, j'y etais depuis 1 mois !!!

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Je ne sais pas d'où vient votre handleDisconnect(). Mais il semble que vous ne l'utilisez pas correctement (le nombre de paramètres).
    Pour faire ce que je décrivais précédemment il faut faire une fonction init(), dans laquelle vous placez votre connect. Et une fonction fini() dans laquelle vous faites la déconnexion. Ensuite, il suffit d'appeler init() au début du programme et fini() à la fin.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mon idée est elle la bonne
    Par Speed41 dans le forum Moteurs 3D
    Réponses: 9
    Dernier message: 09/11/2007, 19h54
  2. Pourquoi mon code est plus lent que Arrays.sort
    Par alexis779 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 12/12/2006, 12h44
  3. [Tableaux] Mon code est bon ?
    Par garaut dans le forum Langage
    Réponses: 8
    Dernier message: 14/11/2006, 15h47
  4. [mysql] [calcul de dates] Ma requête est-elle bonne ?
    Par tiger33 dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/09/2006, 15h30
  5. [Dates] calcul de date est ce que mon code est bon?
    Par carmen256 dans le forum Langage
    Réponses: 2
    Dernier message: 09/06/2006, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo