Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/12/2011, 02h58   #1
Invité de passage
 
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 0
Points : 0
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 :
this.deuxjoueurs_mc.lesQualifs_mc,question1_mc.addChild(unTruc);
Mais bien:
Code :
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?
Gingin_89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 00h50   #2
Responsable 2D/3D/Jeux

 
Avatar de LittleWhite
 
Homme Alexandre Laurent
Étudiant
Inscription : mai 2008
Messages : 6 560
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Laurent
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2008
Messages : 6 560
Points : 14 057
Points : 14 057
Bonjour,

Pour faire un cast (précisé / changer le type d'une variable en un autre), vous devez faire:
Code :
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 :
this.deuxjoueurs_mc.lesQualifs_mc,question1_mc.addChild(unTruc);
contient une virgule assez étrange.
__________________
Vous souhaitez participer à la section Jeux ? Contactez-moi
La rubrique a aussi un blog !

Ma page sur DVP
Mon Portfolio

Qui connaît l'erreur, connaît la solution.
LittleWhite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 01h56   #3
Invité de passage
 
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 0
Points : 0
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.
Gingin_89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 08h09   #4
Responsable 2D/3D/Jeux

 
Avatar de LittleWhite
 
Homme Alexandre Laurent
Étudiant
Inscription : mai 2008
Messages : 6 560
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Laurent
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2008
Messages : 6 560
Points : 14 057
Points : 14 057
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 section Jeux ? Contactez-moi
La rubrique a aussi un blog !

Ma page sur DVP
Mon Portfolio

Qui connaît l'erreur, connaît la solution.
LittleWhite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 03h57   #5
Invité de passage
 
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 0
Points : 0
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 :
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 :
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 :
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]
Gingin_89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 12h20   #6
Responsable 2D/3D/Jeux

 
Avatar de LittleWhite
 
Homme Alexandre Laurent
Étudiant
Inscription : mai 2008
Messages : 6 560
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Laurent
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2008
Messages : 6 560
Points : 14 057
Points : 14 057
Code c :
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 section Jeux ? Contactez-moi
La rubrique a aussi un blog !

Ma page sur DVP
Mon Portfolio

Qui connaît l'erreur, connaît la solution.
LittleWhite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 18h43   #7
Invité de passage
 
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 0
Points : 0
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.

Citation:
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.
Gingin_89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 20h35   #8
Responsable 2D/3D/Jeux

 
Avatar de LittleWhite
 
Homme Alexandre Laurent
Étudiant
Inscription : mai 2008
Messages : 6 560
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Laurent
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2008
Messages : 6 560
Points : 14 057
Points : 14 057
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 section Jeux ? Contactez-moi
La rubrique a aussi un blog !

Ma page sur DVP
Mon Portfolio

Qui connaît l'erreur, connaît la solution.
LittleWhite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 18h56   #9
Invité de passage
 
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 0
Points : 0
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 :
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.
Gingin_89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h39.


 
 
 
 
Partenaires

Hébergement Web