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 :

Comportement asynchrone ?


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut Comportement asynchrone ?
    Bonjour, j'ai un peu de mal à saisir le comportement asynchrone de l'AS3...

    Déjà est il toujours activé ?

    Dans le cas suivant :

    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
     
    private var unAttribut:Boolean = false;
     
    private function uneFonction():Boolean
    {
           uneAutreFonction();
     
           return unAttribut;
    }
     
    private function uneAutreFonction():void
    {
         /*Ici un long traitement, puis : */
     
         unAttribut = true; 
     
    }
    Le retour de uneFonction() sera probablement false non ?

    En fait comment faire pour "attendre" qu'une fonction ai fini pour continuer le traitement ? Dispatcher une multitude d'evenements persos...?

    Merci de vos suggestions

  2. #2
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    Bonjour,

    dans ce cas précis la méthode retourne toujours vrai, il n'y a qu'à tester avec une boucle.

    uniquement certaines fonctions ont un comportement asynchrone comme par exemple pour l'appel à un script coté serveur.

  3. #3
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Ah ok je ne pensais pas...

    En fait mon problème est le suivant : je crée un formulaire d'inscription ou le joueur (car c'est un jeu) peut choisir d'être positionné automatiquement ou non (2 radioButton oui et non). Si non, 3 listes déroulantes liées permettent de choisir une position. Ces 3 listes déroulantes sont placées dans un VGroup "choisir".

    Voici une partie de mon code :

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    private function positionChoisir():void
    			{
    				var objet:Object = new Object();
     
    				supprimeListes([galaxie, ss, position]);
     
    				if(!choisir)
    				{
    					galaxie = new DropDownList();
    					galaxie.dataProvider = galaxiesProvider;
    					galaxie.labelField = "galaxie"
    					galaxie.prompt = 'galaxie';
    					galaxie.percentWidth = 100;
    					galaxie.addEventListener(IndexChangeEvent.CHANGE, launchGetSS);
     
    					choisir = new VGroup();
    					choisir.percentWidth = 100;		
    					choisir.addElement(galaxie);			
     
    					position_conteneur.addElement(choisir);
     
    					objet.univers = univers_ddl.selectedItem.univers;
    					objet.num = univers_ddl.selectedItem.num;
    					monService.getGalaxies(objet);							
    				}
     
    			}
     
    			private function supprimeListes(listes:Array):void
    			{
     
    				for each(var liste:DropDownList in listes)
    				{
    					if(liste)
    					{
    						choisir.removeElement(liste);
    						liste = null;
    					}
    				}
     
    				if(choisir && choisir.numElements == 0){
    					position_conteneur.removeElement(choisir);
    					choisir = null;
    				}
     
    			}
    En fait il marche bien mais seulement la première fois. Ce code s'exécute sur le "click" du radioButton sur le choix "non". Lors d'un deuxieme click, je ne rentre apparemment pas dans mon if(!choisir){...} c'est pourquoi je pensais que ce teste du if s'effectuait après mon appel à la fonction supprimeListes() qui me remove mon conteneur choisir...

    Là je cale probablement un problème de méthodologie étant noob en flex

  4. #4
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    pour afficher différents éléments suivant la sélection du radio bouton c'est plus simple d'utiliser les states.
    ou sinon de jouer sur la visibilité des éléments créés en mxml suivant la sélection.

  5. #5
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Pas bête je testerai j'ai pas encore les bons réflexes du flexer

    Par contre ma fonction supprime liste semble correcte ou non ? J'ai l'impression que le problème vient de là mais débutant en AS3, je vois pas le problème peut être gros comme une maison

    Je l'appelle parfois avec des dropDownList seulement déclarés mais non construites

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    private var galaxie:DropDownList;
    // et pas
    private var galaxie:DropDownList = new DropDownList();
    Logiquement, le test != null doit marcher dans ce cas de figure non ?

Discussions similaires

  1. Connexion asynchrone RS232 Comport
    Par thelife dans le forum Débuter
    Réponses: 2
    Dernier message: 07/04/2010, 08h10
  2. Comportement asynchrone de FLEX
    Par luilui dans le forum Flex
    Réponses: 21
    Dernier message: 23/06/2009, 15h15
  3. Réponses: 2
    Dernier message: 22/09/2003, 11h23
  4. architecture d'un programme client/serveur asynchrone (win)
    Par Heimdall dans le forum Développement
    Réponses: 2
    Dernier message: 05/09/2003, 23h59
  5. Réponses: 6
    Dernier message: 25/03/2002, 21h11

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