Pas vraiment...
En fait la fonction
chargeSousPartie(); prend 2 arguments :
-
section:
String (est une chaîne de caractère car il sera réaffecté à la variable
chemin qui est de type
URLRequest : et ce type de variable DOIT recevoir une chaîne de caractère).
-
categorieXML:
String (là aussi c'est une chaîne de caractère car cette variable sera récupérée par le code du swf chargé (ici portfolio.swf) pour compléter le chemin cible pour le chargement des projets depuis le fichier XML : et là encore on utilise une chaîne de caractère).
En résumé :La fonction
chargeSousPartie(); utilise la variable
chemin pour charger le SWF, alors que la variable
categorieXML elle, ne fait "que passer" par la fonction (au passage on en profite pour l'affecter à la variable
categorie qui sera ensuite utilisée par le code du swf que l'on vient de charger pour, à son tour, charger les infos du fichier XML.
Ici l'utilisation de la variable
categorieXML (qui sera donc réaffectée à la variable
categorie qui se trouve à l'extérieur de la fonction) sert à contourner le fait qu'en AS3, contrairement à l'AS2, nous ne disposons pas de variables "globales" (donc on est obligé d'agir autrement).
Ensuite, cette variable est donc réutilisée dans le code du fichier chargé (portfolio.swf) sous le nom
categorie2. J'ai délibérément utilisé un autre nom pour la variable pour ne pas la confondre avec la variable
categorie déjà existante dans le clip parent (interface.swf), pour autant ces 2 variables ont exactement la même valeur puisque les lignes :
- Code: Tout sélectionner
try {
// on récupère la variable categorie du swf appelant
(categorie2=this.parent.parent["categorie"]);
}
// on récupère l’erreur si la variable n’est pas passée
catch (e:Error) {
// on affiche l’erreur, s’il y a lieu
trace ("Erreur : "+e);
}
Présentes au début du code de portfolio.swf, servent précisément a affecter la valeur de la variable
categorie à la variable
categorie2.
//--- EDIT ---//Je viens d'avoir une autre idée pour expliquer le principe alors je la rajoute à tout hasard.
Imaginons que nous ayons une fonction
vaChercherVoiture();.
Pur que l'action puisse être effectuée, il faut que nous fournissions 2 choses à cette fonction :
- l'emplacement de la voiture
- les clefs
La première information servira à ce que le voiturier parvienne à localiser la voiture, et la seconde lui permettra de l'utiliser !