Bonjour !! Ca faisait longtemps .... Alors voici mon problème du jour. Imaginez ma scène : dessus j'ai un clip "carte" dans lequel je charge 19 fichiers swf externe gràce à une boucle et ce que j'ai appris ici il y a quelques semaines. Chaque fichier est contenu dans un clip nommé "conteneur_1", "conteneur_2", "conteneur_3" ... Comme ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// ICI ON EST DANS LE CLIP "CARTE"
var nbreCouchesLoad:Number = 19;
var nomCouches:Array = ["fond", "r_feu_foret", "zone_industrielle", "pop_continu", "pop_discontinu", "r_inondation_faible", "r_inondation_moyen", "r_inondation_fort", "r_ruissellement", "r_tmd", "r_chute_blocs", "r_glissement", "r_industriel", "cadastre", "eau_secondaire", "eau_principal", "route_secondaire", "route_nationale", "voie_ferree"];
var carteL0:Number = this._width;
var carteH0:Number = this._height;
 
function load(aIndex:Number) {
	var tmp:MovieClip = this.createEmptyMovieClip("conteneur_"+aIndex, this.getNextHighestDepth());
 
	var listener:Object = new Object();
	listener.onLoadInit = initialisation;
 
	var mcl:MovieClipLoader = new MovieClipLoader();
	mcl.addListener(listener);
	var fileName:String = "couches/"+ nomCouches[aIndex] +".swf";
	mcl.loadClip(fileName, tmp);
}
 
function initialisation(aTarget:MovieClip) {
	var currentIndex:Number = Number(aTarget._name.split("_")[1]);
	if (currentIndex<nbreCouchesLoad-1) {
		load(currentIndex+1)
	}
	aTarget._x = (0-(carteL0/2))+((carteL0-aTarget._width)/2);
	aTarget._y = (0-(carteH0/2))+((carteH0-aTarget._height)/2);
}
 
load(0);
Sur ma scène, j'ai aussi un clip "couches" qui contient un autre clip scrollable "txtscroll" dans lequel j'ai disposé 19 checkbox nommées "checkbox1", "checkbox2", "checkbox3" ... vous suivez ? Sur mon calque d'action, j'essaye de faire en sorte qu'1 checkbox X soit assigné à une couche X, pour qu'en cochant ça affiche la couche, et en décochant ça la masque. Pour ça, j'ai fait une boucle dans laquelle j'assigne un indice à chaque checkbox pour pouvoir effectuer une action différente en fonction de l'indice. Comme ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
for(var i=1 ;i<19 ; i++){
	var chkbox = this.couches.txtscroll["checkbox"+i];
	chkbox.indice = i;
 
	var listener2 = new Object();
 
	listener2.click = function(evt){
		if (chkbox.selected) {
			//_root.carte["conteneur_"+i]._visible = true;
			trace("OUI : "+ chkbox)
		} else {
			//_root.carte["conteneur_"+i]._visible = false;
			trace("NON : " + chkbox)
		}
	}
 
	chkbox.addEventListener("click",listener2);	
}
Le soucis est donc que ça ne fonctionne pas. Mon trace m'indique que le chkbox est "_level0.couches.txtscroll.checkbox18", quelle que soit la checkbox que je coche. Je ne vois pas THE solution !! Ou bien faut-il faire un listener différent pour chaque checkbox ? Mais comment ? Merci d'avance ... encore.