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

    varibile attachmovie ciclo for

    ciao a tutti..
    questo é il mio problema:
    ho un ciclo for per creare tanti mc..
    ad ogni mc associo un'azione per cui cliccando setto un variabile e carico un altro mc esterno..
    questo mc esterno deve caricare un'immagine diversa a seconda della variabile che ho settato..
    ma il problema è qui:
    se io setto la variabile come "pagina1" o "pagina2" etc nessun problema..
    ma se setto la variabile come "pagina"+i, anziché settarla con un valore differente a seconda del mc cliccato, me la setta come "pagina59" ossia esattamente un numero in più di quando dovrebbe esaurirsi il ciclo..

    dove sbaglio?
    spero di essermi spiegato in modo decente


    codice:
    for (i=1; i<59; i++) {
    	this.createEmptyMovieClip("mini"+i, this.getNextHighestDepth());
    	this["mini"+i].createEmptyMovieClip("immagine", 1);
    	this["mini"+i].immagine.loadMovie("haute_paginePDF/miniature/pagina_"+[i]+".jpg");
    	this["mini"+i]._x=-90+(105*i);
    	this["mini"+i]._y=-30;
    	this["mini"+i].onRelease = function(){
    	_root.attachMovie("big","big",_root.getNextHighestDepth());
    	_root.variabile = "pagina"+i; 
    }
    fe..feu!!!

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    sbagli nel concetto, l'indice "i" durante il ciclo verrà sovrascritto di volta in volta assumendo tutti i valori fino ad esaurimento del ciclo stesso e l'ultimo valore assunto sarà proprio il limite del ciclo

    al termine del ciclo tutti gli onRelease saranno attivi, ma la i all'interno degli onRelease ormai sarà pari al limite del ciclo e, essendo gli onRelease degli eventi "asincroni" rispetto all'esecuzione del ciclo, non faranno assumere a _root.variabile il valore sperato

    per risolvere il problema si può ovviare, assegnando durante il ciclo, una variabile numerica diretta al movieclip che esegue l'onRelease, e poi dentro all'onRelease è possibile chiamarla semplicemente utilizzando this

    Codice PHP:
    for (i=1i<59i++) {
        
    this.createEmptyMovieClip("mini"+ithis.getNextHighestDepth());
        
    this["mini"+i].createEmptyMovieClip("immagine"1);
        
    this["mini"+i].immagine.loadMovie("haute_paginePDF/miniature/pagina_"+[i]+".jpg");
        
    this["mini"+i]._x=-90+(105*i);
        
    this["mini"+i]._y=-30;
        
    this["mini"+i].i;
        
    this["mini"+i].onRelease = function(){
            
    _root.attachMovie("big","big",_root.getNextHighestDepth());
            
    _root.variabile "pagina"+this.i
        }


  3. #3
    grazie!
    fe..feu!!!

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.