Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Assegnare dinamicamente azioni a pulsanti generati dinamicamente.

    Ciao, ho un problema con i pulsanti generati dinamicamente con duplicateMovieclip:
    Questo è il mio codice:

    codice:
    function visualizza() {
    	for (i=1; i<=q_img; i++) {
    		// visualizzo le foto
    		url_foto[i] = "img/"+cartella+"/icone/"+tipo+"/"+i+".JPG";
    		loadMovie(url_foto[i], "_root.d"+i);
    		// Creo i campi e assegno il testo
    		_root.createTextField("campo_txt"+i, i, pos_x[i], pos_y[i], dim_x, dim_y);
    		_root["campo_txt"+i].text = i+estensione;
    		// Creo i pulsanti e i link
    		duplicateMovieClip("btn", "btn"+i, i+12);
    		_root["btn"+i]._x = pos_x[i];
    		_root["btn"+i]._y = pos_y[i]-110;
    		//
    		_root["btn"+i].onRelease = function() {
    			url_imm[i] = "img/"+cartella+"/"+tipo+"/"+i+estensione;
    			getURL(url_imm[i], _blank);
    		};
    	}
    }
    Prima di queto codice ho dichiarato i due array: url_imm e url_foto.
    lo script con un ciclo for, carica delle immagini nei movieclip, pi crea dinamicamente dei campi di testo e ci assegna un testo, che è il nome della foto.
    Infine creo i pulsanti che ricevono la posizione da altri due array precedentemente dichiarati e fin qui tutto funziona.
    Il problema è qui:
    codice:
    		_root["btn"+i].onRelease = function() {
    			url_imm[i] = "img/"+cartella+"/"+tipo+"/"+i+estensione;
    			getURL(url_imm[i], _blank);
    		};
    	}
    }
    Ai pulsanti non viene assegnata un'azione propria, ma a tutti viene assegnata la stessa, la variabile del ciclo "i" che determina il numero di foto dovrebbe essere assegnata in progressivo ad ogni pulsante.
    Quando provo il filmato però ad ogni pulsante corrisponde l'ultima immagine, il numero di fine ciclo.

    Se invece di usare gli array scrivo il codice a mano, tutto funziona.

    Esempio se scrivo
    _root.btn1.onRelease= function (){
    getURL(url_imm1, _blank);
    }

    Funziona perfettamente, penso sia un problema legato a questa sintassi:
    _root["btn"+i].onRelease unito alla funzione che il tasto deve svolgere.

    Qualcuno ci è già passato? ho perso mezza giornata ma niente.
    Ciao

  2. #2
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    la i a cui fai riferimento sarà sempre l'ultimo valore raggiunto
    nel ciclo for.

    devi associare il link della foto ad una variabile nel clip che duplichi.

  3. #3
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    // Creo i pulsanti e i link
    duplicateMovieClip("btn", "btn"+i, i+12);
    _root["btn"+i].linkfoto = url_foto[i];


    this.onRelease = function() {
    getURL(linkfoto, _blank);
    };


    qualcosa del genere.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.