quando sei nell'azione del clip (all'interno) devi riferirti a lui con this
quando entri nelle azioni č come se uscissi da ciclo, perciō riferendoti a path ti riferisci sempre a _root[nomi[nomi.length-1]] ossia all'ultimo clip della lista nell'array, per riferirti invece all'interno del ciclo al clip che sta eseguendo in quel momento l'azione, basta un "trucchetto" ossia quel path.n = n che dā il numero di riferimento "n" al clip stesso e puō essere richiamato dall'interno con this.ncodice:var statusOff = function(arr, n){ for(i=0; i<arr.length; i++){ path = _root[arr[i]]; if(i!=n){ path.enabled = true; path.gotoAndStop(1); } else { path.enabled = false; path.gotoAndStop(2); } } } var nomi = new Array("a", "b", "c", "d", "e"); for(n=0;n<nomi.length;n++){ path = _root[nomi[n]]; path.n = n; path.onRollOver = function(){ this.gotoAndStop(2); trace(this); } path.onRollOut = function(){ this.gotoAndStop(1); } path.onRelease = function(){ _root.statusOff(_root.nomi, this.n); } }
per quanto riguarda la possibilitā di dare comandi diversi, potresti racchiudere i comandi in funzioni separate e poi richiamarli allo stesso modo nell'onRelease del ciclo, ad esempio
ps, il codice vā solo ed esclusivamente su timelinecodice:var function_a = function(){ // azioni } var function_b = function(){ // azioni } // ecc.... var statusOff = function(arr, n){ for(i=0; i<arr.length; i++){ path = _root[arr[i]]; if(i!=n){ path.enabled = true; path.gotoAndStop(1); } else { path.enabled = false; path.gotoAndStop(2); } } } var nomi = new Array("a", "b", "c", "d", "e"); for(n=0;n<nomi.length;n++){ path = _root[nomi[n]]; path.n = n; path.onRollOver = function(){ this.gotoAndStop(2); trace(this); } path.onRollOut = function(){ this.gotoAndStop(1); } path.onRelease = function(){ _root.statusOff(_root.nomi, this.n); _root["function_"+this._name](); } }

Rispondi quotando