Quel est l'équivalent de _global pour un fonction?

cs_fanfouer Messages postés 209 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 27 janvier 2008 - 15 nov. 2005 à 18:09
cs_SoyYo Messages postés 210 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 27 novembre 2009 - 17 nov. 2005 à 21:19
Bonjour,
Il y a quelque temps, j'avais un probleme avec mes variables qui en passaient pas entre tt mes swf chargés. Maintenent, c'est au tour de mes fonctions : lorsque je fais un "setInterval()" ds un swf que je charge ds un autre ou je déclare la fonction de l'interval, il ne me ressort un message d'erreur a l'endroit ou devait apparaitre le texte de la focntion : [type function].
Je pense que cela vien que je met _root. devant la fonction mais ca peut aussi etre autre chose, je ne sais pas.

Comment regler ce probleme?

10 réponses

cs_SoyYo Messages postés 210 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 27 novembre 2009
15 nov. 2005 à 21:21
Salut



T'aurais pas le code a montrer histoire que ce soit plus clair?!!
0
cs_fanfouer Messages postés 209 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 27 janvier 2008
15 nov. 2005 à 21:55
Pas de probleme :
//ma fonction :
function defineTreeContent (nbQuartiers, nbCommunes, arrayQuartiers, arrayCommunes){
// Create an XML object.
var XMLtree:XML = new XML();
//variables
nbQuartiers = nbQuartiers - 1;
nbCommunes = nbCommunes - 1;
//cretation des array
Quartiers = new Array();
Communes = new Array();
//on s'occupe des quartiers
//on creé la branche "quartiers"
Quartiers[0] = XMLtree.createElement("node");
Quartiers[0].attributes.label = "Quartiers";
Quartiers[0].attributes.data = 0;
XMLtree.appendChild(Quartiers[0]);
//pour creer la liste des quartiers dispos
i=0;
while(i<=nbQuartiers){
Quartiers[i] = XMLtree.createElement("node");
Quartiers[i].attributes.label = arrayQuartiers[i];
Quartiers[i].attributes.data = i+2;
XMLtree.firstChild.appendChild(Quartiers[i]);
i++
}
//on s'occupe des communes dépendantes
//on creé la branche "communes"
Communes[0] = XMLtree.createElement("node");
Communes[0].attributes.label = "Communes";
Communes[0].attributes.data = 0;
XMLtree.appendChild(Communes[0]);
//pour creer la liste des communes dispos
j=nbQuartiers;
while(j<=nbCommunes+nbQuartiers){
Communes[j] = XMLtree.createElement("node");
Communes[j].attributes.label = arrayCommunes[j-nbQuartiers];
Communes[j].attributes.data = j+3;
XMLtree.lastChild.appendChild(Communes[j]);
j++
}
clearInterval(eval ("_root."+_global.dept+"."+_global.ville).defineTree);
_root.StatClip.myTree.dataProvider = XMLtree;
}

//l'apel de ma fonction dans le clip chargé... qui me ressort des truc incomprehensible
defineTree = setInterval(_root.defineTreeContent, 2000, 1, 0, arrayQuartiers, arrayCommunes);

Voila!!
0
cs_fanfouer Messages postés 209 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 27 janvier 2008
15 nov. 2005 à 22:57
En fait, je pense plus que c'est le "_root.defineTreeContent" dans le setInterval qui pose probleme : il ne toruve plus la fonction a executer (vu qu'elle est sur le swf chargant le clip qui apel la fonction).
Je dis aussi que le tout n'a pas été compilé a l'endroit ou je les lis donc si j'apelle une variable entre ces deux clips en mettant _root. et que je lis a l'endroit ou les deux on été compilés, tout ce passe bien, en revanche, si je les change de place en cour de route, ils ne trouvent plus la variable, d'ou l'utilisation de _global, comme ca plus de probleme!
Je voudrais donc une chose analogue pour les fonction (car ecrire ceci : funtion _global.nomdelafonction(){}, lors de la déclaration, retrourne une erreur de synthaxe et si je ne marque pas _global a la déclaration mais a l'apel, la finction est purement ignorée).

Merci de votre aide et j'espere que vous avez tout compris lol.
0
cs_fanfouer Messages postés 209 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 27 janvier 2008
16 nov. 2005 à 12:19
Bon, alors en fait, j'ai trouvé ds l'aide de flash comment déclarer une fonction en utilisant _global, il faut mettre ca : _global.NomDeLaFontion = function (parametres){statements}.
Mais j'ai toujour mon probleme. A savoir que ca marche vraiment comme je le souhaite lorsque je lis dans le dossier ou ont été compilés mas swf. Mais dès que je change, mon clip chargé n'éxécute carrément plus la fonction, (rien n'aparait dans mon treeview... a la place de [type Function]), ce qui sous entand que mon clip chargé ne vise meme plus le _global de l'animation! (sachent que j'ai bien pris le soin de rajouter _global. lors de l'apel de ma fonction)
Comment faire pour regler ca?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_SoyYo Messages postés 210 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 27 novembre 2009
16 nov. 2005 à 14:31
Deja c'est vrai que en voyant ton code la declaration de ta fonction
etait pas bonne. Du coup la nouvelle declaration que tu fais
_global.NomDeLaFontion = function (parametres){statements} me semble
bonne mais apres je ne connais pas trop l'utilisation de _global avec
Flash. moi je sais que pour mon site j'ai des variables ou des fonction
globales qui sont dans mon swf main qui sont declares dans le genre
_root.myVar [val] ou _root.maFonction function (param)
{statements}et pars quand je dois les utiliser dans mes clip enfants je
fait _root.myVar ou _root.maFonction et ca marche tres bien, du coup je
ne sais pas si tu as essaye avec _root mais bonen mem temps ca a l'air
d'ertre a peut pret la meme utilisation!!!!
0
cs_fanfouer Messages postés 209 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 27 janvier 2008
16 nov. 2005 à 16:56
Oui, effectivement mais la c'est plus un probleme de chargement de ce clip... car j'en ai mis un autre en oeuvre, et lui ca marche a tout les coup avec le meme code! (meme en changeant 10 fois de place, il execute toujour la fonction) alors que l'autre ne trouve meme pas global (et il est bien pris en compte dans le swf quand meme car j'ai fait un debugging et lail est bien pris en compte). Je ne comprend plus rien la et c'est vraiment génant.
On dirait qu'en fait, en chargeant le clip a probleme, il a pas les yeux en face des trous vu qu'il nen vise pas au bon endroit.
Est-ce que cependant, le mode de déclaration avec _global toruvé ds l'aide de flash est bon lui? car ca pourrais expliquer qu'il n'éxécute pas la fonction...
0
cs_fanfouer Messages postés 209 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 27 janvier 2008
16 nov. 2005 à 17:00
Je précise que _global est une sorte de "super racine"... elle rassemble tous les _root. des clips chargés dans un autre swf.
Elle permet d'atteindre a coup sur nimporte quelle variable déclarée avec _global devant et ce par nimporte quel swf qui est en relation avec ce _global.
0
cs_SoyYo Messages postés 210 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 27 novembre 2009
16 nov. 2005 à 18:15
Et tu fais quoi de reellement different entre le clip qui marche et
celui qui ne marche pas parceque du coup ca veut dire que le _global
marche bien?
0
cs_fanfouer Messages postés 209 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 27 janvier 2008
17 nov. 2005 à 17:40
Hourrra!!! j'ai trouvé!!
je suis passé entre temps a la version 8 de flash et en fait, le clip ou ca marchait, dans les paramètres de publication, la version du player était sur 8 alors que sur l'autre, la position de la liste était retsée sur 7... ce qui changeait tout!
Donc ben maintenent ca marche!

Merci pour ton aide!
0
cs_SoyYo Messages postés 210 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 27 novembre 2009
17 nov. 2005 à 21:19
Bah de rien du coup j'ai pas fait grand chose!!!!
0
Rejoignez-nous