Ovviamente.. questo è il procedimento base che si utilizza con la programmazione ad oggetti.Come avrete capito questo stratagemma che nn riesco a far funzionare mi farebbe risparmiare parecchio tempo e byte xhe creo solo un oggetto PIPPO e lo metto tutte le volte che mi serve : morale se avessi 50 variabili da leggere dovrei fare 50 PIPPO mentre così ne faccio uno solo e addirittura se voglio cambiare sfondo o colore, modificando 1 solo PIPPO mi si modificano tutti 50 !
Come ha scritto crescenzo puoi istanziare il clip via action script.. oppure, come hai fatto tu, lo puoi posizionare sullo stage e istanziarlo a mano quante volte vuoi. A quel punto puoi richiamare ogni istanza (tramite il relativo nome istanza) e passare variabili, manipolare le relative timeline, applicare funzioni e via dicendo...
Io però non capisco cos'è che ti viene difficile fare di tutto questo..
Prendendo l'ultimo tuo esempio.
Hai posto un campo di testo dentro PIPPO (che è un clip filmato nella libreria).
Per scrivere dinamicamente (cioè via script), nel campo di testo, devi fare alcune cosette:
- assicurarti che il campo di testo sia dinamico (o eventualmente di input)
- includere eventualmente i caratteri se c'è bisogno (ad esempio se utilizzi caratteri non standard o se applichi delle maschere al campo di testo o in altre occasioni in cui è richiesto includere i caratteri)
- dare un nome istanza al campo di testo (più consigliato) oppure assegnargli una variabile (meno consigliato)
Supponendo ad esempio di aver dato un nome istanza al campo di testo (che è più consigliato rispetto all'associare una variabile) ad esempio lo chiami "campo", e supponendo che un'istanza del clip PIPPO si chiami "LED1", a quel punto puoi scrivere, via script, sul campo di testo in questo modo:
text è la proprietà che permette di accedere al valore del campo di testo.codice:LED1.campo.text = "io sono LED1";
Nel caso tu abbia associato una variabile al campo di testo (ad esempio FRANCO), dovrai scrivere una cosa del genere:
Ora .. cos'è che non ti è chiaro di tutto questo procedimento?codice:LED1.FRANCO = "quello che vuoi";
Tornando al tuo ultimo esempio, se devi passare il valore della variabile _level0.led1, dovrai scrivere semplicemente:
Questo, sia chiaro, che lo dovrai scrivere fuori dal clip PIPPO, ad esempio in un frame della stessa timeline dove risiede l'istanza LED1codice:LED1.FRANCO = _level0.led1;
Avendo più istanze e volendo passare in modo dinamico e automatico i valori delle relative variabili, puoi utilizzare un cliclo for, come ha accennato crescenzo.
Ad esempio:
Tu però, da quanto mi è sembrato di capire, stavi valutando un'altra soluzione. Cioè leggere le variabili _level0.led_N da dentro le relative istanze LED_Ncodice:for (var i=1; i<=50; i++){ this["LED"+i].FRANCO = _level0["led"+i]; }
In questo caso, all'interno di PIPPO, puoi scrivere una cosa del genere:
NOTA: ActionScript2 è caseSensitive perciò ho utilizzato la funzione toLowerCase per rendere minuscola la stringa ottenuta passando il nome dell'istanza.codice:FRANCO = _level0[this.toLowerCase(this._name)];
Era questo ciò che cercavi di fare, giusto?
![]()


Rispondi quotando