ma perchè prima hai scritto var clip? il comando var non serve a creare una variabile/istanza? sta creando un'istanza di cosa?
Ciao
var è l'istruzione che serve a dichiarare una variabile locale.
Come saprai esistono diversi tipi di variabile.
In questo caso and80 ha utilizzato la variabile "clip" per identificare un semplice riferimento alle istanze che sono create di volta in volta nel ciclo for.
Quindi la variabile "clip" sarà di tipo MovieClip.
Non farti confondere dal nome "clip" che and80 ha utilizzato sia come variabile sia come nome identificativo dell'oggetto in libreria e sia come nome di istanza (seguito dall'indice i) per le istanze create dal metodo attachMovie.
Se può esserti d'aiuto per capire meglio, utilizzo l'esempio di and80 sostituendo il nome clip con differenti nomi, in questo modo:
codice:
for(var i = 1; i <= 5; i++) {
var riferimento = this.attachMovie("nomeOggetto", "nomeIstanza"+i, i);
//
riferimento.onPress = function(){
trace(this._name);
}
}
Nell'esempio viene eseguito un ciclo che ripeterà il blocco di codice per 5 volte.
Ogni volta che si ripete il ciclo, "riferimento" assume il valore dell'istanza creata dal metodo attachMovie, la quale avrà comunque il suo proprio nome istanza (identificato dalla costruzione di "nomeIstanza"+i)
Questo sistema serve essenzialmente per facilitare il "richiamo" dell'istanza nel resto dello script.
Infatti tale variabile è stata poi utilizzata per attribuire una funzione dell'evento onPress ad ogni istanza a cui fa riferimento nel corso del ciclo.
Volendo si sarebbe potuto scrivere in questo modo:
codice:
for(var i = 1; i <= 5; i++) {
this.attachMovie("nomeOggetto", "nomeIstanza"+i, i);
//
this["nomeIstanza"+i].onPress = function(){
trace(this._name);
}
}
ovvero andando a "ricostruire" il nome dell'istanza appena creata.
In questo caso l'esempio di and80 è semplice per cui si potrebbe anche fare a meno di utilizzare una variabile come riferimento.
Immagina però di dover richiamare l'istanza appena creata per attribuire diverse proprietà e/o funzioni.. nota come è utile avere un semplice riferimento che ti risparmia di "ricostruire" ogni volta il nome dell'istanza appena creata.
Ad esempio potrebbe esserci una situazione del genere:
Codice PHP:
for(var i = 1; i <= 5; i++) {
var clip = this.attachMovie("clip", "clip"+i, i);
//... inserisco la parte dell'assegnazione delle coordinate
clip._x = (clip._width+5)*i;
clip._y = 80;
// .... assegno una variabile interna all'istanza
clip.idIstanza = i
//
// assegno ai clip un onPress che avrà un'azione uguale per tutti
clip.onPress = function(){
trace(this._name+", numero istanza: "+this.idIstanza);
}
// ... assegno altri eventi
clip.onRollOver = function(){
trace("sei sull'istanza: "+this._name);
}
}
Il riferimento "clip" richiama l'istanza appena creata evitando quindi di ricostruire più volte il suo proprio nome istanza all'interno del ciclo.
Spero ti sia più chiaro...