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 :

Passage d'arguments à un écouteur d'événements


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2004
    Messages : 24
    Par défaut Passage d'arguments à un écouteur d'événements
    bonsoir à tous,

    je débute avec AS3, et là j'ai un problème qui me fait tourner en rond depuis un moment.

    au fait, je voudrais savoir s'il y a un moyen pour passer des arguments supplémentaires à un écouteur d'événment.

    mon code est le suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    yingbtn.addEventListener(MouseEvent.CLICK,LockYYSign("ying"));
    yangbtn.addEventListener(MouseEvent.CLICK,LockYYSign("yang"));
    homebtn.addEventListener(MouseEvent.CLICK,LockYYSign("home"));
    plus loin j'ai ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    protected function LockYYSign(e:Event, target:String):void { 
    	position = target;
    	yingbtn.addEventListener(Event.ENTER_FRAME,Locking);
    	yangbtn.addEventListener(Event.ENTER_FRAME,Locking);
    }

    voici les erreurs que ça génère:

    1067: Contrainte implicite d'une valeur du type String vers un type sans rapport flash.events:Event.
    1136: Nombre d'arguments incorrect. 2 attendus.
    1067: Contrainte implicite d'une valeur du type void vers un type sans rapport Function.


    j'ai essayé ensuite ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    protected function LockYYSign(e:Event, target as String):void { 
    	position = target;
    	yingbtn.addEventListener(Event.ENTER_FRAME,Locking);
    	yangbtn.addEventListener(Event.ENTER_FRAME,Locking);
    }

    j'obtiens l'erreur suivante:
    1084: Erreur de syntaxe : rightparen est attendu devant as.

    j'ai mis des parenthèses et tout ce qu'il faut, çA NE MARCHE PAS.

    des idées?????

    merci pour votre aide.

  2. #2
    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
    Salut,

    Tu utilises trois boutons différents, pourquoi ne crées tu pas simplement trois fonctions pour chaque écouteurs ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    protected function LockYYSign_YI(e:Event):void { 
        position = "ying";
        yingbtn.addEventListener(Event.ENTER_FRAME,Locking);
        yangbtn.addEventListener(Event.ENTER_FRAME,Locking);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    protected function LockYYSign_YA(e:Event):void { 
         position = "yang";
         yingbtn.addEventListener(Event.ENTER_FRAME,Locking);
         yangbtn.addEventListener(Event.ENTER_FRAME,Locking);
     }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    protected function LockYYSign_HO(e:Event):void { 
         position = "home";
         yingbtn.addEventListener(Event.ENTER_FRAME,Locking);
         yangbtn.addEventListener(Event.ENTER_FRAME,Locking);
     }
    Tu peux (tu dois!) aussi lire ce pdf http://pratiqueactionscript3.bytearray.org/, ou acheter le livre qui contient quelques mises à jour.

    Bye

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Par défaut
    Salut;
    Plutôt que de créer 3 fonction différentes tu peut créer une variable dans chaque bouton, genre pour le bouton "ying" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     var id:String = "ying";
    puis dans ta fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private function Locking(e:Event) {
        position = e.currentTarget.id;
        trace(position)        //affiche "ying"
    }
    ++

    ps : normalement on ne met une majuscule au nom des fonctions que pour les fonctions constructeur.

  4. #4
    Membre éprouvé
    Profil pro
    Développeur multimédia
    Inscrit en
    Juin 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Juin 2009
    Messages : 130
    Par défaut
    yingbtn.addEventListener(MouseEvent.CLICK,LockYYSign("ying"));

    public function LockYYSign(e:Event, target as String)
    C'est impossible de faire cela.
    Tout d'abord, pour typé un paramètre dans une fonction, c'est toujours
    'as' est utilisé pour faire comprendre au compilateur que la variable est du type de ton choix, et qu'il peut alors utilisé les fonctions héritées.

    Ensuite, je ne crois pas me trompé en disant que les fonction CallBack lié aux événements ne reçoivent toujours qu'un seul argument, et de toute manière tu aurais une erreur de syntaxe en appelant une méthode dont la signature est methode(param1,param2) en en indiquant 1 seul.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/07/2007, 15h06
  2. [JAVASCRIPT] passage d'argument à une fonction
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 03/06/2005, 18h17
  3. [TASM] Passage d'argument à une macro
    Par sorry60 dans le forum Assembleur
    Réponses: 13
    Dernier message: 23/04/2005, 18h22
  4. [web] passage d'arguments à un CGI
    Par ma2th dans le forum Web
    Réponses: 4
    Dernier message: 20/08/2004, 12h18
  5. passage d'argument à la procédure main ()
    Par Zazeglu dans le forum C
    Réponses: 5
    Dernier message: 01/09/2003, 19h59

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