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 :

Paramètre pour une fonction


Sujet :

ActionScript 3

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Paramètre pour une fonction
    Voici le contexte:

    J'ai une fonction à cette endroit : this.deuxJoueurs_mc.lesQualifs_mc.question1_mc (où this représente la mainTimeLine).

    Cette fonction, qui se trouve dans question1_mc, se charge notamment d’appeler une fonction qui se trouve sur la mainTimeLine en lui envoyant des paramètres

    Voici le problème:

    Cette fonction qui se trouve sur la mainTimeLine doit prendre en paramètre le nom d'un movieClip, mais elle ne veut pas.

    Dans la fonction,
    Je ne veux pas faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.deuxjoueurs_mc.lesQualifs_mc,question1_mc.addChild(unTruc);
    Mais bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.parametre1.parametre2.parametre3.addChild(unTruc);
    Car, plusieurs clips a différents endroits appellent cette fonction.

    Bref, comment faire pour faire comprendre à la fonction du mainTimeLine que le paramètre est en fait un clip que je lui envoie?

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 869
    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 869
    Points : 219 087
    Points
    219 087
    Billets dans le blog
    121
    Par défaut
    Bonjour,

    Pour faire un cast (précisé / changer le type d'une variable en un autre), vous devez faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.parametre1.parametre2.parametre3.addChild(unTruc as MovieClip);
    Mais, je ne pense pas vraiment que ce soit ça le problème.

    Par contre, j'ai remarqué que la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.deuxjoueurs_mc.lesQualifs_mc,question1_mc.addChild(unTruc);
    contient une virgule assez étrange.
    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
    Candidat au Club
    Inscrit en
    Juillet 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    La virgule est une erreur frappe. C'est bel et bien un point que j'ai dans mon code. À noter aussi que le addChild est un exemple de ce que je veut faire dans ma fonction.

    C'est le paramètre qu'il ne reconnait pas. J'ai essayer d'envoyer le nom du movieClip en string, mais j'ai une erreur qui me dit que la conversion en movieClip est impossible.

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 869
    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 869
    Points : 219 087
    Points
    219 087
    Billets dans le blog
    121
    Par défaut
    Comment a été déclaré votre variable ? (Qu'il ne reconnait pas).

    Pouvez vous copier / coller l'erreur que vous retourne le compilateur, s'il vous plait.
    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.

  5. #5
    Candidat au Club
    Inscrit en
    Juillet 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Je suis sûr que le problème vient de la valeur de la variable, je ne sais pas quoi mettre d'autre. Voici le code:

    // QUESTION1_MC //
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var deuxJoueurs_mc:MovieClip = deuxJoueurs_mc;
    var lesQualifs_mc:MovieClip = lesQualifs_mc;
    var question1_mc:MovieClip = question1_mc;
    //Cette fonction en appelle une autre sur la mainTimeLine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function appelChoixReponse (pEvt:KeyboardEvent) {
            if(pEvt.keyCode==(this.parent.parent.parent as MovieClip).toucheDuo){
    	//On enregistre la touche pressée et on appelle la fonction "choixReponses" si l'une des bonne touches est pressée
    		toucheEnfoncee = pEvt.keyCode;
    		(this.parent.parent.parent as MovieClip).choixReponses(toucheEnfoncee, 0, 0, 1, 2, 3, deuxJoueurs_mc, lesQualifs_mc, question1_mc);
    	}
    }
    // MAINTIMELINE //

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //Cette fonction située sur la mainTimeLine reçois en paramètre des moviesClips, notamment.
    function choixReponses (toucheEnfoncee:int, nbJoueur:MovieClip, nomManche:MovieClip, noQuestion:MovieClip):void {
       this.nbJoueur.nomManche.noQuestion.addChild(bJaune);
    }
    Message d'erreur:
    TypeError: Error #1010: Un terme n'est pas défini et n'a pas de propriété.
    at TLMVPSS_fla::MainTimeline/choixReponses()[TLMVPSS_fla.MainTimeline::frame2:75]
    at TLMVPSS_fla::question1_62/appelChoixReponse()[TLMVPSS_fla.question1_62::frame10:22]

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 869
    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 869
    Points : 219 087
    Points
    219 087
    Billets dans le blog
    121
    Par défaut
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function choixReponses (toucheEnfoncee:int, nbJoueur:MovieClip, nomManche:MovieClip, noQuestion:MovieClip):void {
       this.nbJoueur.nomManche.noQuestion.addChild(bJaune);
    }
    Juste ceci, ce n'est pas du tout possible (enfin, je pense).
    La classe actuelle (accessible par this) n'a pas de propriétés nbJoueur / nomManche / noQuestion.
    Ou alors, si elle a ces propriétés, pas besoin de les passées en paramètres.
    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.

  7. #7
    Candidat au Club
    Inscrit en
    Juillet 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Je crois que je dois lui donner en paramètre ces movieClips car, il y a plus de 20 questions, soit plus de 20 movieClips, qui appellent cette seule fonction.
    nbJoueur, nomManche et noQuestion représentent le nom des paramètres. Je veut simplement pouvoir donner le chemin d'accès aux questions à cette fonction en remplacent, par exemple, le paramètre noQuestion par la valeur envoyée, soit question1_mc.

    La classe actuelle (accessible par this) n'a pas de propriétés nbJoueur / nomManche / noQuestion.
    Je ne suis pas sûr de comprendre ce que vous voulez dire.

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 869
    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 869
    Points : 219 087
    Points
    219 087
    Billets dans le blog
    121
    Par défaut
    Si ce sont des noms ou des chemins, vous devez passé des String.
    Mais si vous passez des String, il vous faudrait un tableau associatif. Pour chaque MovieClip, un nom lui sera associé.

    Ou encore, vous pourriez surement utilisé une méthode plus orientée objet, à base d'une nouvelle classe.
    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.

  9. #9
    Candidat au Club
    Inscrit en
    Juillet 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Même en créant un tableau associatif je n'y arrive pas. Il cherche toujours à trouver le movieClip. LesQualifs_mc se trouve dans deuxJoueurs_mc. Il est donc normal qu'il ne le trouve pas d'où je suis. Il faudrait un moyen de dire que je ne veut pas qu'il cherche le movieClip, mais que je veux seulement qu'il remplace le paramètre sans chercher plus loin.

    Voici un exemple de ce que j'ai écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var monTableau:Object = {"deuxJoueurs_mc":deuxJoueurs_mc, "lesQualifs_mc":lesQualifs_mc}
    trace(monTableau["deuxJoueurs_mc"])//deuxjoueurs_56
    trace monTableau["lesQualifs_mc"])//null
    N.B. je ne travaille pas en classe externe, mais directement dans le logiciel.

Discussions similaires

  1. passage des paramètres pour une fonction
    Par monalise dans le forum NetBeans
    Réponses: 4
    Dernier message: 20/08/2009, 09h36
  2. Réponses: 1
    Dernier message: 27/11/2008, 10h55
  3. paramètre d'appel pour une fonction javascript
    Par narutobaka dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/09/2008, 16h04
  4. Réponses: 2
    Dernier message: 29/08/2007, 19h43
  5. paramètres pour une fonction
    Par bul dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/05/2005, 07h49

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