Visualizzazione dei risultati da 1 a 8 su 8

Discussione: problemi con ciclo for

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    47

    problemi con ciclo for

    Ciao
    qualcuno sa dirmi perchè il trace dentro l'evento onPress mi da sempre 10,
    vorrei che mi restituisse il valore corrispondente al MC pressato.
    Il codice incriminato è il seguente.

    for (i=0; i<10; i++) {

    this.createEmptyMovieClip("mc"+i, i);

    this["mc"+i].createEmptyMovieClip("imageHolder", getNextHighestDepth());

    this["mc"+i].onPress = function() {
    trace(i);
    };

    }
    Grazie

    Giuseppe

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    l'evento associato all'mc verrà eseguito in un momento successivo alla fine del ciclo, perciò il valore ottenuto risulterà sempre il limite del ciclo stesso, in questo caso i=10, per ovviare a questo inconveniente basta assegnare una variabile direttamente ad ogni clip e richiamarla all'interno del ciclo con this

    codice:
    for (i=0; i<10; i++) {
    	this.createEmptyMovieClip("mc"+i, i);
    	this["mc"+i].i = i;
    	this["mc"+i].createEmptyMovieClip("imageHolder", getNextHighestDepth());
    	this["mc"+i].onPress = function() {
    		trace(this.i);
    	};
    }

  3. #3
    perchè tu nel ciclo for crei una assegnazione dell'evento on Press al clip

    non lo mandi in esecuzione

    mentre quanto premi il pulsante lui fa riferimento all'ultimo valore di I che appunto è 10

    quindi
    Codice PHP:
     this["mc"+i].onPress = function() {
        
    trace(substring(this._name,3,1)); 
        
    // prendi la parte numerica del nome del clip a partire da 3 per 1 carattere
      
    }; 

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    47
    Grazie a entrambi!
    Ho utilizzato la versione di and80 e ovviamente funziona.

    Ciao

    Giuseppe

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da rempox
    perchè tu nel ciclo for crei una assegnazione dell'evento on Press al clip

    non lo mandi in esecuzione

    mentre quanto premi il pulsante lui fa riferimento all'ultimo valore di I che appunto è 10

    quindi
    Codice PHP:
     this["mc"+i].onPress = function() {
        
    trace(substring(this._name,3,1)); 
        
    // prendi la parte numerica del nome del clip a partire da 3 per 1 carattere
      
    }; 
    troppo complicato se uno ha un numero superiore ad una cifra rimane fregato

  7. #7
    Ayhoo....era solo un esempio. Ciao And

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da rempox
    Ayhoo....era solo un esempio. Ciao And

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.