buona sera!
innanzi tutto un saluto a tutti visto che questo è il mio primo post
Premetto che mi sono avvicinato da pochissimo alla programmazione action script, ma comunque sia conosco linguaggi di programmazione ad oggetti e scripting java.
cercherò di non spiegarvi tutto il mio problema ma spero risolviate il mio dubbio-problema che da più di 3 giorni mi sta facendo impazzire.
concettualmente,
tramite un ciclo for creo dinamicamente:
-n istanze di n bottoni ( preso come bottone "base" uno che ho in libreria), attraverso la funzione attachMovie();
-n istanze di n textbox sempre attraverso la funzione attachMovie();
dopodichè dovrei assegnare ad ogni bottone una funzione che venga richiamata al verificarsi di un evento ( onRollOver .. ecc)
i bottoni, dopo essere istanziati si chiamano b1, b2, b3 ...
perciò per quanto riguarda la gestione dell'evento faccio sempre in un ciclo for,
_root["b"+i].onRollOver = function() {
_root["t"+i].testo1._visible=true; }
dove testo1 è il nome istanza della textBox in libreria.. e t1,t2, "t"+i sarebbero le texBox istanziate dinamicamente.
dalle prove effettuate, sembrerebbe che tutti i bottoni assumano la stessa function() associata alla "i" con valore d'uscita dal ciclo for.
esempio,
istanzio 3 bottoni. ( b1, b2, b3)
istanzio 3 textBox. ( t1, t2, t3)
setto visible false il testo delle 3 text.
associo evento onRollOver a b1, b2 ,b3 che dovrebbe rendere visible true la textBox associata al bottone ,al passaggio del cursore ( b1.onRollOver --> t1._visible= true; )
__________________risultato ?
ogni bottone assume la stessa funzione al verificarsi dell'evento, e come indice i i il valore 4!!! quando il for va da 1 a 3 .. ( for(i=1;i<=3;i++) {...} )
in parole semplici, tutte i bottoni al verificarsi dell'evento chiamano una funzione che è fatta a grandi linee così
t4._visible = true;
Spero mi sia fatto capire, e spero che qualcuna mi possa aiutare a risolvere il problema , o almeno a chiarirmi la logica per cui succede tutto ciò!
Ci ho perso giorni tra ricerche e un piccolo manuale ma non sono riuscito a risolvere il problema!
grazie mille
mircoV