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 :

Attendre un évenement pour poursuivre une condition


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2008
    Messages : 186
    Par défaut Attendre un évenement pour poursuivre une condition
    Bonsoir,

    Je développe un petit jeu où un joueur affronte plusieurs joueurs dirigés par l'ordinateur.

    J'ai utilisé le pattern MVC pour créer le jeu et je bloque un peu sur le moment où le joueur doit cliquer pour continuer.

    J'ai tenté une boucle while tout en connaissant le résultat , ça plante.

    Je pense qu'il faut utiliser un écouteur mais je n'arrive pas à l'implémenter.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    else {                         
         trace("C'est à deale.prochainDealer(tableauJoueurEnCours,false,joueurEnCours)+" de jouer ensuite !");
       if(joueurEnCours is JoueurReel){
                                 
              // ICI LA METHODE D'ATTENTE POUR LE JOUEUR                   
        }
        else{deale.prochainDealer(tableauJoueurEnCours,false,joueurEnCours).analyser();
              }
    joueurEnCours = deale.prochainDealer(tableauJoueurEnCours,false,joueurEnCours);
      }
    Une idée, un conseil, les deux ?

    Merci !

  2. #2
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    salut, por un temps d'attente en AS3 c'est la classe Timer mais setTimeout() fonctionne aussi

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 32
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import flash.utils.Timer;
    import flash.events.TimerEvent;
     
    var nTempsEnMs:int = 1500;
    var nbRepetitions:int = 1;
     
    var timer:Timer = new Timer(nTempsEnMs, nbRepetitions);
    timer.addEventListener(TimerEvent.TIMER_COMPLETE, fonctionAppelee);
    timer.start();
     
    function fonctionAppelee(tEvt:TimerEvent):void {
      //ton code
    }
    Quant tu appelles le constructeur de la classe Timer, le premier champ est le délai en millisecondes au bout duquel l'événement a lieu, et le deuxième est le nombre de répétitions (par ex si tu veux que la fonctions soit appelée toutes les "tant de millisecondes" à x reprises.

    Dans l'exemple ci-dessus, fonctionAppelee sera appelée 1 seule fois au bout d'1 seconde et demi.

    ++

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2008
    Messages : 186
    Par défaut
    Si je suis dans la condition, et que j'appelle un timer, celui-ci fera référence à une fonction externe, je ne vois pas comment cela pourrait permettre de mettre en attente le flash et revenir dans la condition. Vous voyez ce que je veux dire ?

    En Java on a la fonction wait() par exemple, qui met en pause le processus jusqu'à ce qu'un évènement ne le ré-enclenche et ne reprenne là d'où il est parti.

    Pas faisable en AS3 ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 32
    Par défaut
    Malheureusement je viens de vérifier les docs et il semble que tu sois obligé de faire appel à une fonction. (Corrigez-moi si je me trompe)

    Je confirme que ça tendance à hâcher le code sans forcément aider à sa lisibilité. (Mais t'inquiète, AS3 se rattrape par rapport à Java sur d'autres points ;-))
    D'où la nécessité d'avoir un découpage clair et fonctionnel de tes fonctions, et éventuellement d'avoir des fonctions plus ou moins génériques (par exemple pour cacher ou afficher des éléments au bout d'un temps, etc).

    ++

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2008
    Messages : 186
    Par défaut
    Finalement il faut abandonner cette idée d'événements dans les boucles et les conditions.

    AS3 étant asynchrone, si on place le code dans une condition, un IF par exemple, et qu'à l'intérieur on appelle une fonction qui exécute un Timer qui déclenchera dans 10 secondes une animation, Flash va simplement passer dans la condition, lire la fonction, exécuter le Timer et sortir de la condition, et 10 secondes plus tard le timer lancera l'animation.

    La solution dans ce genre de cas, le mien en particulier, est d'utiliser des événements, un dispatchEvent qui se déclenche quand on le souhaite.



    Merci à la bible http://pratiqueactionscript3.bytearray.org/

Discussions similaires

  1. [PHP 5.3] Aide pour mettre une condition sur une url
    Par Sansa dans le forum Langage
    Réponses: 12
    Dernier message: 29/06/2015, 16h54
  2. besoin d'aide pour insérer une condition
    Par wholehog2 dans le forum XSL/XSLT/XPATH
    Réponses: 17
    Dernier message: 26/09/2014, 16h38
  3. [MySQL] Aide pour créer une condition
    Par manu_789 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 23/01/2011, 10h52
  4. attendre un evenement pour continuer une boucle
    Par dederfred dans le forum Flash
    Réponses: 2
    Dernier message: 20/01/2007, 20h01
  5. [VBA-EXCEL]-condition pour ouvrir une msgbox
    Par captaine93 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/08/2006, 20h51

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