[AS3] Attendre un événement

Djad666 Messages postés 15 Date d'inscription dimanche 11 novembre 2007 Statut Membre Dernière intervention 24 avril 2009 - 24 avril 2009 à 14:32
nickydaquick Messages postés 416 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 19 décembre 2013 - 27 avril 2009 à 14:59
Bonjour,

je voulais savoir si il y a une fonction qui permet d'attendre un événement et non de l'écouter comme le fait addEventListener.
Pour être plus clair, je vais vous montrer un cas utilisant les sockets:

Disons que je veut demander au socket une requête tel que la connexion au serveur puis je veut ensuite avoir la confirmation. Ma méthode actuelle est de diviser cette opération en deux parties:
    une qui envoie la requête au serveur
    une qui attend la confirmation avec un listener

Cette méthode embrouille rapidement le code quand il y'a plus de requête du même type. Je voudrais donc créer une seule partie qui envoie la requête au serveur et qui attend la réponse (cad qui attend l'événement du socket)

Est-ce possible?

4 réponses

nickydaquick Messages postés 416 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 19 décembre 2013 3
24 avril 2009 à 17:30
Salut,

   La tu parles de definir un protocole de communication qui identifie le type de requete dans l'envoi et la reponse.
   1- methode qui envoie une requete au serveur avec le type de requete : exemple  <requete __type="APPEL_DE_FONCTION">http://liveplayaz.com

je suis heureux de faire partie d'une grande famille ...!
0
Djad666 Messages postés 15 Date d'inscription dimanche 11 novembre 2007 Statut Membre Dernière intervention 24 avril 2009
24 avril 2009 à 22:23
Bonjour,

tu viens de rexpliquer la méthode que j'utilise en ce moment, cad deux fonctions différentes, une qui parle au serveur et une qui l'écoute.
Ceux que je voudrais, moi c'est créer une fonction unique faisant ceux-ci.

Au faite, ceux que je voudrais c'est créer une classe qui simplifierai l'utilisation des sockets en flash. Dans cette classe j'ai envie de mettre une fonction que je nommerai foncObtData qui permet d'envoyer une requête d'obtention de donnée au serveur et qui retourne le résultat. Le problème est qu'avec la manière dont fonctionne les sockets, je ne peut pas envoyer une requête au serveur et retourner la réponse obtenue au client dans la même fonction.

J'ai essayé avec cette méthode (en gros):
class x{
  var ok:boolean;
  var tab:array;

  //Fonction qui écoute le socket avec data, le résultat de la requête
  private function recevoirData(data){
    tab=data;
    ok=true;
  }

  //Fonction appelé par l'utilisateur
  public function foncObtData(){
    ok=false;
    socket.send(requete);
    while(!ok){}
    return tab;
  }

Le problème avec cette méthode, c'est que l'ordonnancement des procesus en flash n'est pas comme ceux du système d'exploitation. Si j'ai bien compris, flash ne continue pas tant que la fonction appelé n'a pas finit d'agir ainsi le programme se bloque à while(!ok){} sans laisser la main à la fonction recevoirData.
0
Djad666 Messages postés 15 Date d'inscription dimanche 11 novembre 2007 Statut Membre Dernière intervention 24 avril 2009
24 avril 2009 à 23:34
On peut pas éditer nos message? en tout cas j'ai pas vu de lien :s
Je voulais préciser que ceux que je cherche c'est une fonction pouvant remplacer mon:
while(!ok){}
0
nickydaquick Messages postés 416 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 19 décembre 2013 3
27 avril 2009 à 14:59
Salut,

Honnetement, je n'ai aucune idee pour te permet de d'envoyer et de recevoir des avis de notifications en meme temps (systeme evenementiel) le tout dans la meme fonction(meme pour la proggrammation serveur en java ou en c++, il faut un selecteur, un distributeur d'etats et plusieurs ecouteurs-gestionnaires d'etats).
 Lorsque tu parles d'une fonction qui retourne la reponse du serveur directement, tu parles de sockets bloquantes. L'ennui c'est que si l'autre connexion ne repond pas vite (ou pas du tout a la suite d'un bug) mais reste connecte........!!!???  Je te conseillerai de moins te compliquer la tache, et t'organiser un peu plus le code. Un cours sur les sockets et la programmation reseau en elle-meme ne ferait pas de mal non plus.

Bonne continuation.

http://liveplayaz.com

je suis heureux de faire partie d'une grande famille ...!
0
Rejoignez-nous