| | [Resolu]Transmission de variable type MovieClip | |
|
|
| Auteur | Message |
|---|
kellsey5 Intéressé(e)


Nombre de messages: 54 Date d'inscription: 16/11/2008
 | Sujet: [Resolu]Transmission de variable type MovieClip Dim 15 Mar 2009, 16:27 | |
| Salutations!  Je bloques en ce moment sur une fonction que j'ai créé ( pour changer ). Cette fonction est sencée être appelée par un pantin "ennemi" afin de le déplacer : | Code: | static function deplacement_ennemy(mc:MovieClip,num:Number,str:String) { _root.basetext.text = mc.toString(); // sert pour le debug
mc.direction = str; mc.nbr_pas = num; mc.nbr_pas_fait = 0; mc.onEnterFrame =function() { if(this.nbr_pas_fait < this.nbr_pas) { if(this.direction == "gauche") { this._x -= 2; this.nbr_pas_fait ++; } else if(this.direction == "droite") { this._x += 2; this.nbr_pas_fait ++; } } }; }//Fin fonction deplacement ennemy
|
Le pantin doit envoyer 3 parametres a la fonction : - Son adresse du type MovieClip => mc - Le nombre de pas a faire => num - La direction => str
Il s'occupe ensuite d'animer le cycle de marche pendant que cette fonction le déplace du nombre de pas demandé.
Le souci c'est que je n'arrive pas a transmettre correctement l'adresse du movieclip.
Voici comment le pantin appelles la fonction : ->Pantin_test_v3:deplacement_ennemy(_this,40,"gauche");
J'ai essayé ->this , this , ou même le chemin entier _root/Pantin_ennemi, rien n'y fait, il ne veut pas le déplacer.
Donc si quelqu'un peut m'éclairer la dessus... merci d'avance 
Dernière édition par kellsey5 le Sam 21 Mar 2009, 15:28, édité 1 fois |
|
 | |
fastoche Super accro


Nombre de messages: 2388 Age: 48 Date d'inscription: 29/05/2007
 | Sujet: Re: [Resolu]Transmission de variable type MovieClip Dim 15 Mar 2009, 17:45 | |
| J'ai essayé ->this , this , ou même le chemin entier _root/Pantin_ennemi, rien n'y fait, il ne veut pas le déplacer. Donc si quelqu'un peut m'éclairer la dessus... merci d'avance  [/quote] tu m'as l'air bien plus calé que moi en action script alors je repondrai certainement une betise... comme action je mettrai en immediat ->Pantin_test_v3:deplacement_ennemy(Pantin_ennemi);simplement le nom du groupe...entre parenthese ..mais bon voilà place aux expert... |
|
 | |
kellsey5 Intéressé(e)


Nombre de messages: 54 Date d'inscription: 16/11/2008
 | Sujet: Re: [Resolu]Transmission de variable type MovieClip Dim 15 Mar 2009, 18:33 | |
| | Citation: | | tu m'as l'air bien plus calé que moi en action script alors je repondrai certainement une betise... |
Certainement pas, je tatonnes encore en apprenant ^^
| Citation: | | simplement le nom du groupe...entre parenthese |
En quelque sorte c'est bien le nom du groupe que je voudrais transmettre, seulement c'est sencé être une instance, donc le nom du groupe doit changer pour chaque pantin afin qu'on puisse les différencier. Voila pourquoi j'essaye de transmettre le nom sous une forme qui s'adapterait selon chaque pantin. "this" permettrait d'indiquer le nom du groupe du pantin auquel il est rattaché, sachant qu'il changerait a chaque fois.
De plus je pensais créer chaque fois des variables propres a chaque pantin en utilisant leur nom. Par exemple : mc.direction = str; voudrait dire que la variable "direction" ainsi créé ne serait attribuée qu'au mc. Donc chaque groupe aurait une variable "son_nom.direction = X".
Mais comme je l'ai dit je ne fais que tatonner donc je ne sait même pas si c'est la bonne méthode pour arriver a ce résultat. |
|
 | |
kellsey5 Intéressé(e)


Nombre de messages: 54 Date d'inscription: 16/11/2008
 | Sujet: Re: [Resolu]Transmission de variable type MovieClip Mer 18 Mar 2009, 17:25 | |
| Petit up Je bloques toujours sur cette fonction malgré mes efforts. Vraiment personne n'a une idée d'où peux se situer l'erreur ? |
|
 | |
chris_c Super accro


Nombre de messages: 8319 Age: 41 Date d'inscription: 18/11/2007
 | Sujet: Re: [Resolu]Transmission de variable type MovieClip Mer 18 Mar 2009, 17:41 | |
| il faudrait demander à Kwelmes ou Beldjilali |
|
 | |
Kwelmès Programmeur


Nombre de messages: 1472 Age: 20 Localisation: dans les profondeurs insondables de l'infinité cosmique Date d'inscription: 29/09/2007
 | Sujet: Re: [Resolu]Transmission de variable type MovieClip Mer 18 Mar 2009, 18:29 | |
| pourquoi ne mets tu pas l'adresse au format : _root.ennemi ? _________________  |
|
 | |
kellsey5 Intéressé(e)


Nombre de messages: 54 Date d'inscription: 16/11/2008
 | Sujet: Re: [Resolu]Transmission de variable type MovieClip Mer 18 Mar 2009, 20:50 | |
| | Citation: | | pourquoi ne mets tu pas l'adresse au format : _root.ennemi ? |
J'aimerais bien mais comme il doit y avoir plusieurs instances d'ennemis ( via une duplication de movieclip ) il faut que la fonction puisse s'adapter a chaque nom.
| Citation: | En quelque sorte c'est bien le nom du groupe que je voudrais transmettre, seulement c'est sencé être une instance, donc le nom du groupe doit changer pour chaque pantin afin qu'on puisse les différencier. Voila pourquoi j'essaye de transmettre le nom sous une forme qui s'adapterait selon chaque pantin. |
Par exemple :
_root.ennemy1, _root.ennemy2, _root.ennemy3 appelleront tous les trois la même fonction.
De plus ça me permettrait d'assigner des variables a chacun des ennemis en faisant comme suit :
mc.direction = "droite"; mc prendrait donc a chaque fois une adresse différente.
Par exemple ici ça donnerait :
_root.ennemy1.direction = "droite"; _root.ennemy2.direction = "droite"; _root.ennemy3.direction = "droite";
Mais je sais pas si c'est faisable. |
|
 | |
chris_c Super accro


Nombre de messages: 8319 Age: 41 Date d'inscription: 18/11/2007
 | Sujet: Re: [Resolu]Transmission de variable type MovieClip Mer 18 Mar 2009, 23:12 | |
| (il me semble qu'il faut faire un tableau array, mais peut-etre je dis une connerie?) |
|
 | |
kellsey5 Intéressé(e)


Nombre de messages: 54 Date d'inscription: 16/11/2008
 | Sujet: Re: [Resolu]Transmission de variable type MovieClip Jeu 19 Mar 2009, 17:29 | |
| J'ai essayé de représenter la situation du projet par un schéma, ce sera peut être plus parlant ^^ :     Cette fonction est sencée déplacer le movie clip qui l'appelles. Ce movie clip envoie donc a la fonction sa propre adresse, a travers le paramètre "mc". Ainsi la fonction peux savoir qui elle doit déplacer, puisque c'est chaque fois un movieclip différent qui l'appelles. Seulement quand je testes, le pantin ne se déplace pas, donc je me demandes si ça viens : - du paramètre "mc" qui ne serait pas reconnu. - de la déclaration des variables rattachées au mc ( mc.variable = xxx; ) - de la fonction imbriquée ( mc.onEnterFrame = function() ) - etc. Je continues de chercher  |
|
 | |
Admin Administrateur


Nombre de messages: 17291 Localisation: Toulouse Date d'inscription: 11/12/2005
 | Sujet: Re: [Resolu]Transmission de variable type MovieClip Jeu 19 Mar 2009, 17:46 | |
| Bonsoir, ATTENTION : il y a un premier problème qui est traitre. Regarde bien le groupe qui contient ton action. 1 - tu mets une action "immédiate en temps 0" 2 - le groupe à une durée de 10 temps => conséquence : l'action sera répétée toutes les demi-secondes ! => donc ton groupe est réinitialisé toutes els demis secondes. Comment corriger ? a - soit - mettre un stop b - soit - dans le script tester si le groupe a déjà été initialisé. Phildes |
|
 | |
kellsey5 Intéressé(e)


Nombre de messages: 54 Date d'inscription: 16/11/2008
 | Sujet: Re: [Resolu]Transmission de variable type MovieClip Jeu 19 Mar 2009, 18:06 | |
| Dans le schéma c'était juste un exemple simplifié, pour éviter la confusion. En fait il y a une autre action programmée qui reviens au temps 1 afin de faire une boucle d'animation. Donc ça ne repasse pas par le temps 0.  |
|
 | |
chris_c Super accro


Nombre de messages: 8319 Age: 41 Date d'inscription: 18/11/2007
 | Sujet: Re: [Resolu]Transmission de variable type MovieClip Jeu 19 Mar 2009, 18:21 | |
| essaie au temps 2, par sécurité |
|
 | |
kellsey5 Intéressé(e)


Nombre de messages: 54 Date d'inscription: 16/11/2008
 | Sujet: Re: [Resolu]Transmission de variable type MovieClip Jeu 19 Mar 2009, 19:27 | |
| | Citation: | | essaie au temps 2, par sécurité |
C'est testé mais ça marche toujours pas.
A mon avis ça vient pas d'un truc externe, j'ai tout vérifié, mais plutot de l'adresse du movie clip.
Quand j'essaye de l'afficher dans un textfield pour voir ce qu'il a enregistré ( avec le _root.basetext.text = mc.toString(); ), il affiche "this". Si j'essaye de changer le "_this" en paramètre par un "this", même résultat. Si je tentes quoi que ce soit d'autre ( comme ->this ) le textfield affiche "undefined".
Je pense que ça devrait logiquement me marquer l'adresse du clip au lieu de me répéter "this" non ? Par exemple il devrait afficher "_root.Pantin_ennemi", ou "ennemi_group", enfin l'adresse qu'indiquerais le "_this".
Pour les autres paramètres ( num et str ) ils sont transmis correctement. |
|
 | |
chris_c Super accro


Nombre de messages: 8319 Age: 41 Date d'inscription: 18/11/2007
 | Sujet: Re: [Resolu]Transmission de variable type MovieClip Jeu 19 Mar 2009, 19:41 | |
| mc.onEnterFrame =function()
c'est plutot
_root. mc.onEnterFrame =function() |
|
 | |
kellsey5 Intéressé(e)


Nombre de messages: 54 Date d'inscription: 16/11/2008
 | Sujet: Re: [Resolu]Transmission de variable type MovieClip Jeu 19 Mar 2009, 20:17 | |
| | Citation: | | _root. mc.onEnterFrame =function() |
Je penses aussi. seulement il me marque une erreur de compilation si je met le _root devant. Et si je lance quand même le pantin se déplace toujours pas.
Faut dire que j'ai jamais utilisé cet évenement ( onEnterFrame ) avant, donc j'ai testé comme ça. |
|
 | |
| | [Resolu]Transmission de variable type MovieClip | |
|