compteur
 
AccueilAccueil  PortailPortail  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  ConnexionConnexion  
Partager | 
 

 [Resolu]Transmission de variable type MovieClip

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2, 3  Suivant
AuteurMessage
kellsey5
Intéressé(e)
Intéressé(e)


Nombre de messages: 54
Date d'inscription: 16/11/2008

MessageSujet: [Resolu]Transmission de variable type MovieClip   Dim 15 Mar 2009, 16:27

Salutations! drunken

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 Razz


Dernière édition par kellsey5 le Sam 21 Mar 2009, 15:28, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
fastoche
Super accro
Super accro


Nombre de messages: 2388
Age: 48
Date d'inscription: 29/05/2007

MessageSujet: 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 Razz[/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...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
kellsey5
Intéressé(e)
Intéressé(e)


Nombre de messages: 54
Date d'inscription: 16/11/2008

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
kellsey5
Intéressé(e)
Intéressé(e)


Nombre de messages: 54
Date d'inscription: 16/11/2008

MessageSujet: Re: [Resolu]Transmission de variable type MovieClip   Mer 18 Mar 2009, 17:25

Petit up cyclops

Je bloques toujours sur cette fonction malgré mes efforts.
Vraiment personne n'a une idée d'où peux se situer l'erreur ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
chris_c
Super accro
Super accro


Nombre de messages: 8319
Age: 41
Date d'inscription: 18/11/2007

MessageSujet: Re: [Resolu]Transmission de variable type MovieClip   Mer 18 Mar 2009, 17:41

il faudrait demander à Kwelmes ou Beldjilali
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kwelmès
Programmeur
Programmeur


Nombre de messages: 1472
Age: 20
Localisation: dans les profondeurs insondables de l'infinité cosmique
Date d'inscription: 29/09/2007

MessageSujet: Re: [Resolu]Transmission de variable type MovieClip   Mer 18 Mar 2009, 18:29

pourquoi ne mets tu pas l'adresse au format : _root.ennemi ?

_________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.kwlms.o-n.fr/
kellsey5
Intéressé(e)
Intéressé(e)


Nombre de messages: 54
Date d'inscription: 16/11/2008

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
chris_c
Super accro
Super accro


Nombre de messages: 8319
Age: 41
Date d'inscription: 18/11/2007

MessageSujet: 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?)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
kellsey5
Intéressé(e)
Intéressé(e)


Nombre de messages: 54
Date d'inscription: 16/11/2008

MessageSujet: 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 Razz
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Admin
Administrateur
Administrateur


Nombre de messages: 17291
Localisation: Toulouse
Date d'inscription: 11/12/2005

MessageSujet: 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

_________________
.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.e-anim.com
kellsey5
Intéressé(e)
Intéressé(e)


Nombre de messages: 54
Date d'inscription: 16/11/2008

MessageSujet: 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. drunken
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
chris_c
Super accro
Super accro


Nombre de messages: 8319
Age: 41
Date d'inscription: 18/11/2007

MessageSujet: Re: [Resolu]Transmission de variable type MovieClip   Jeu 19 Mar 2009, 18:21

essaie au temps 2, par sécurité
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
kellsey5
Intéressé(e)
Intéressé(e)


Nombre de messages: 54
Date d'inscription: 16/11/2008

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
chris_c
Super accro
Super accro


Nombre de messages: 8319
Age: 41
Date d'inscription: 18/11/2007

MessageSujet: Re: [Resolu]Transmission de variable type MovieClip   Jeu 19 Mar 2009, 19:41

mc.onEnterFrame =function()


c'est plutot

_root. mc.onEnterFrame =function()
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
kellsey5
Intéressé(e)
Intéressé(e)


Nombre de messages: 54
Date d'inscription: 16/11/2008

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 

[Resolu]Transmission de variable type MovieClip

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 3Aller à la page : 1, 2, 3  Suivant

 Sujets similaires

-
» [Résolu] Utilisation du composant ComboBox
» [Résolu] Infos pour créer un serveur Ragnarok
» [Resolu]Transmission de variable type MovieClip
» [RESOLU] Modifier le type d'icone d'un notifyIcon avec la fonction modifier la propriété d'un contrôle .
» Faire un graphique de type Excel a partir de variable [Resolu]

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
E-anim :: Comment faire, Problème, Bug :: Tutoriels :: Programmation :: Aprendre L'actionscript 2 :: Vos Question-