Ciclo for, tracciare la variabile i

  • Creatore Discussione Creatore Discussione darpec
  • Data di inizio Data di inizio

darpec

Nuovo Utente
18 Lug 2006
19
0
0
Buonasera a tutti,
ho un problema nel conservare i valori assunti dalla variabile i da un passaggio all'altro. Cerco di essere più chiaro.

Sfruttando il ciclo for
duplico una movie clip 7 volte

in ciascuna di queste clip vorrei ci fosse un campo di testo textfield.
Questi campi di testo voglio sfruttarli per inserire un titolo che varia da un clip all'altra, quindi avrò 7 clip, ognuna dei quali si intitolerà "clip1", "clip2", "clip3", ecc.

Per fare questo ho impostato il mio codice così:

// indicare il numero di bottoni
num_bt = 7;

//posiziono i vari bottoni
for (i=1; i<num_bt+1; i++) {
duplicateMovieClip("_root.bt", "bt"+i, i);

//button 1
_root["bt"+1]._x=25;
_root["bt"+1]._y=245;

//button 2
_root["bt"+2]._x=110;
_root["bt"+2]._y=310;

//button 3
_root["bt"+3]._x=195;
_root["bt"+3]._y=250;

//button 4
_root["bt"+4]._x=285;
_root["bt"+4]._y=190;

//button 5
_root["bt"+5]._x=370;
_root["bt"+5]._y=135;

//button 6
_root["bt"+6]._x=470;
_root["bt"+6]._y=190;

//button 7
_root["bt"+7]._x=370;
_root["bt"+7]._y=250;

//creo l'oggetto TextFormat per formattare il testo
_root["bt"+i].pulsante.myformat = new TextFormat();
with(_root["bt"+i].pulsante.myformat){
font = "Myriad Roman";
size = 12;
Color=0xFFF27F
align = "center"
}

_root["bt"+i].pulsante.istanza = "titolo";
_root["bt"+i].pulsante.profondita = 2;
_root["bt"+i].pulsante.x = 25;
_root["bt"+i].pulsante.y = 9;
_root["bt"+i].pulsante.larghezza = 60;
_root["bt"+i].pulsante.altezza = 20;

// creo campo di testo
_root["bt"+i].pulsante.createTextField(_root["bt"+i].pulsante.istanza,_root["bt"+i].pulsante.profondita,_root["bt"+i].pulsante.x,_root["bt"+i].pulsante.y,_root["bt"+i].pulsante.larghezza,_root["bt"+i].pulsante.altezza);

_root["bt"+i].pulsante.titolo.html = false;
_root.bt1.pulsante.titolo.text = "bottone 1";
_root.bt2.pulsante.titolo.text = "bottone 2";
_root.bt3.pulsante.titolo.text = "bottone 3";
_root.bt4.pulsante.titolo.text = "bottone 4";
_root.bt5.pulsante.titolo.text = "bottone 5";
_root.bt6.pulsante.titolo.text = "bottone 6";
_root.bt7.pulsante.titolo.text = "bottone 7";
_root["bt"+i].pulsante.titolo.multiline = false;
_root["bt"+i].pulsante.titolo.autoSize = true;
_root["bt"+i].pulsante.titolo.restrict = null;
_root["bt"+i].pulsante.titolo.selectable = false;
_root["bt"+i].pulsante.titolo.wordWrap = false;
_root["bt"+i].pulsante.titolo.embedFonts = true;

//per ultimo associare la formattazione al campo di testo
_root["bt"+i].pulsante.titolo.setTextFormat(_root["bt"+i].pulsante.myformat);
}

Cosa succede?
I bottoni si generano, ma solo l'ultimo bottone assume il valore "bottone 7", mentre gli altri rimangono vuoti. È come se non ci fosse memoria dei passaggi precedenti al 7.
Come posso risolvere?
 
Sinceramente NON capisco come mai utilizzi tutto quel codice ridondante dentro il ciclo "for"...
Così rendi inutile l'utilizzo del ciclo...

Io proverei così:
Codice:
// indicare il numero di bottoni
num_bt = 7;
//posiziono i vari bottoni
for (i=1; i<num_bt+1; i++) {
	pulsa = bt.duplicateMovieClip("bt"+i, i); 
	pulsa._x += (pulsa._width+5)*i;
	pulsa._y += pulsa._height;
	//	definisco il formato del campo di testo
	myformat = new TextFormat(); 
	myformat.font = "Arial";
	myformat.bold = true;
	myformat.size = 12;
	myformat.color = 0x000000;
	myformat.align = "left";
	// creo campo di testo
	tit = pulsa.createTextField("titolo", this.getNextHighestDepth(), 10, pulsa._y, 200, 100);
	//per ultimo associare la formattazione al campo di testo
	tit.setNewTextFormat(myformat);
	tit.html = false;
	tit.text = "bottone "+i;
	tit.multiline = false;
	tit.autoSize = true;
	tit.restrict = null;
	//tit.selectable = false;
	tit.wordWrap = true; 
	tit.embedFonts = true;
	//
}
 
Infatti cercavo una soluzione migliore...il mio problema è che la "i" alla fine del ciclo assume un unico valore finale (ovvero la somma di tutti gli incrementi). A me serve che i vari incrementi rimangano memorizzati da qualche parte proprio per evitare di scrivere inutilmente tutto quel codice...al termine del ciclo, l'oggetto duplicato devo customizzarlo a seconda di come viene istanziato...non so se ho spiegato bene il mio problema...
 

Discussioni simili