Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309

    Errore su cliclo oltre i 256 livelli??

    Ho fatto un codice che mi deve ciclare su molti dati, in pratica in questo ciclo ci deve andare più di 256 volte, e in questo caso flash mi da questo errore:

    sono stati superati 256 livelli di ricorsione in una lista Azioni.
    Probabilmente si tratta di una ripetizione ciclica infinita.
    È stata disattivata l'ulteriore esecuzione di azioni in questo filmato

    dato questo errore non continua a funzionare l'swf, come la posso risolvere??
    Ciao By Peter_Pan...

  2. #2
    puoi incollare il codice? specificare la versione del flash e dell'AS?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    flash 8 professional, AS 2.0, il codice è un po complesso, il problema è che devo superare un ciclo di 256 elementi, dato che gli elementi che faccio cilcare, e cmq i livelli che creo so che sono più di 256..
    Ciao By Peter_Pan...

  4. #4
    non capisco.

    flash può creare e lavorare su oltre 16.000 livelli

    non puoi copiare parte del codice? o spiegare meglio cosa fa?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    hai raggione mi spiego meglio, in pratica ho una funzione che richiama se stessa per più di 256 volte, sembra che il player abbia un limite per le chiamate di questo tipo, una funzione non può chiamare se stessa più di 256 volte perchè altrimenti il player lo interpreta come un ciclo infinito e lo blocca. Proverò a creare un for invece di far richiamare la stessa funzione, anche se questa cosa mi comporta il dover modificare il tutto, ti faccio un piccolo esempio:

    Codice PHP:
    function crea() {
        
    trace("creo la funzione")
        
    indice+=1;
        if (
    indice<=400) {
            
    crea();
        }
    }

    crea(); 
    Chiaro??
    Ciao By Peter_Pan...

  6. #6
    in effetti, se le cose stanno così non capisco perchè non hai creato un FOR


    Codice PHP:
    for (i=1i<= 400i++) {
          
    trace(i);

    al massimo un WHILE

    Codice PHP:
    var myVar:Number 0
    do { 
     
    trace(myVar); 
     
    myVar++; 

    while (
    myVar 400); 



    se proprio vuoi la funzione, almeno usa un SetInterval, ma è molto più lento del for...

    Codice PHP:
    i=0;
    crea = function () {
        
    trace(i)
        
    i++;
        if (
    i>=400) {
            
    clearInterval(crea_ID)
        }
    }
    crea_ID setInterval(crea,1

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    In effetti ora dovrò modificare il tutto facendo un ciclo, ho fatto in questo modo solo per comodità, non pensavo che fosse un problema. In più mi hanno detto che con un ciclo for dovrebbe essere anche più veloce e con un apporto di risorse minori. Grazie cmq
    Ciao By Peter_Pan...

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.