Aide - Recherche - Membres - Calendrier
Version complète : Menu externe & Fonction globale
Centre de Formation Flash - Forums Adobe Flash > Adobe Flash > Programmation Actionscript > Actionscript 2
Alcarion
Bonjour à tous,

J'ai créé un clip menu avec un clip cliquable "Attaquer", qui lance la fonction globale gAttaquer. (Menu > Bouton Attaquer)
La variable "tour" est sur la scène (d'où les 2 _parent)

Code du bouton

Action Script

on (press) {
_global.gAttaquer(_parent._parent.tour);
}

Code de la fonction

Action Script

var tour:String = 'p1';

_global.gAttaquer = function(tour:String) {
if(tour == 'p1') {
scene.p1.gotoAndPlay('epee');
}
}


Ce code fonctionne lorsque tout est dans le même swf.
Cependant, lorsque je met mon bouton dans un swf externe (via loadMovie), je ne parviens plus à lancer ma fonction. Le nombre de _parent que je peux ajouter à la variable "tour" n'y change rien.

Avez vous une idée ?
D'avance, merci : )
paodao
salut

je deplace dans une salle un peu plus aproprié icon_wink.gif

a+
gludion
à vue de nez j'ai l'impression que gAttaquer est bien appelée.
la valeur _parent._parent.tour semble etre correctement passée.

Je pencherai plutot sur une erreur de l'évaluation de scene au sein de la fonction.
Mettre quelques trace() ici et là devrait te permettre d'élucider ton probleme.
Par exemple:
trace ("appel de gAttaquer avec tour = " + tour + ", scene = " + scene);
gludion
Citation (gludion @ Oct 8 2008, 05:22 PM) *
à vue de nez j'ai l'impression que gAttaquer est bien appelée.
la valeur _parent._parent.tour semble etre correctement passée.

Je pencherai plutot sur une erreur de l'évaluation de scene au sein de la fonction.
Mettre quelques trace() ici et là devrait te permettre d'élucider ton probleme.
Par exemple:
trace ("appel de gAttaquer avec tour = " + tour + ", scene = " + scene);


arf, une autre piste:
si "Attaquer" est un clip cliquable, la syntaxe on(press) n'est pas adaptée. (c'est réservé aux boutons).

Dans flash il y a 36 façon différentes de faire un gestionnaire de clic.
Une (parmi tant d'autres) c'est de mettre sur la frame 1 de ton clip "Attaquer":

Action Script

this.onPress = function()
{
trace("ok press sur " + this);
_global.gAttaquer(etc..);
}


ou simplement:

Action Script

function onPress()
{
trace("ok press sur " + this);
_global.gAttaquer(etc..);
}



Alcarion
Salut,

Merci pour ta réponse, je ne l'avais pas vue étant donné le sujet déplacé.
Ton système de onPress marche bien, cela dit lorsque je trace(_parent._parent.tour); j'ai undefined.

J'ai l'impression que _parent ne sort pas du clip importé ? (j'ai fait varier le nombre de parent)
En revanche, une fonction qui ne nécessite pas de variable est bien appelée ; le problème vient donc du ciblage variable.

Action Script

function onPress() {  
trace(_parent._parent.tour);
_global.gAttaquer(_parent._parent.tour);
_global.gCooldown();
}
Alcarion
Up ?
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2009 Invision Power Services, Inc.