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

    Problema di programmazione

    Ciao a tutti, allora il mio problema è questo, al click di un pulsante un clip deve ingrandirsi a tot grandezza,

    this.ingrandisci = function() {
    ingrandimento = 300;
    this.onEnterFrame = function() {
    if (this._xscale != 300) {
    this._xscale += Math.ceil((ingrandimento-this._xscale)/3);
    this._yscale += Math.ceil((ingrandimento-this._yscale)/3);
    trace(this._yscale);
    }
    this.cartina_pls._visible = false;
    delete this.onEnterFrame();
    };
    };

    Però quando premo sul pulsante mi viene 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.
    Ho notato che se tolgo la striscia di chiusura del enterFrame (delete this.onEnterFrame();
    ) questo nn avviene.
    bah ditemi voi....
    grazie anticipatamente.

  2. #2
    Utente di HTML.it L'avatar di gobbo89
    Registrato dal
    Jun 2006
    Messaggi
    816
    Ciao,
    prima di tutto delete this.onEnterFrame(); scritto così è sbagliato...
    Così è giusto: delete this.onEnterFrame;

    Poi per far funzionare il tutto io scriverei così:
    codice:
    MovieClip.prototype.ingrandisci = function() {
    	ingrandimento = 300;
    	this.onEnterFrame = function() {
    		if (this._xscale < ingrandimento || this._yscale < ingrandimento) {
    			this._xscale += Math.ceil((ingrandimento-this._xscale)/3);
    			this._yscale += Math.ceil((ingrandimento-this._yscale)/3);
    			trace(this._yscale);
    		} else {
    			this.cartina_pls._visible = false;
    			delete this.onEnterFrame;
    		}
    	};
    };
    pulsante.onRelease = function() {
    	movieClip.ingrandisci();
    };
    Dove pulsante è il pulsante da cliccare e movieClip è il movieClip da ingrandire...


  3. #3
    Si lo so che come l'avevo copiato nn funzionava, lo script del pulsante l'avevo lasciato perdere....
    volevo sapere perchè mi da un errore del genere?!?!?!
    cmq ora provo come dici te e vediamo un pò....
    è sicuramente per quelle parentesi visto che quando chiamo la funzione per riportare l'mc a dimensione iniziale questo mi torna subito come se la funzione fosse sempre attiva....
    cmq grazie per l'aiuto

  4. #4
    Utente di HTML.it L'avatar di gobbo89
    Registrato dal
    Jun 2006
    Messaggi
    816
    Originariamente inviato da baulo
    volevo sapere perchè mi da un errore del genere?!?!?!**
    E' giusto che dia tale erroe! Non chiudevi/stoppavi l'enterFrame...

    Gli errori in sostanza erano due, ma uno camuffava l'altro e si mangiavano la coda:
    scrivevi l'azione per chiudere l'enterFrame in un "posto" sbagliato......
    ......ma avevi scritto l'azione per chiuderlo in maniera errata

    Dunque il risultato era che:
    - non ti accorgevi di quelle due parentesi () di troppo
    - non capivi che messo in quella posizione lo stop dell'enterFrame non aveva senso: se scritto corretto avrebbe subito fermato l'ingrandimento
    **- l'enterFrame non si fermava --> il player si accorgeva che era rimasto aperto e lo interrompeva dando quel messaggio


  5. #5
    risolto... grazie mille ora funziona alla grande.....
    sapevo che era una cavolata ma nn riuscivo a venirne fuori...
    ancora grazie

  6. #6
    Originariamente inviato da baulo
    è sicuramente per quelle parentesi
    codice:
    function abc() {
    }
    
    delete abc();
    
    // hai appena eliminato il void (o undefined) restituito dalla
    // funzione abc perchè l'hai semplicemente richiamata
    
    
    delete abc; // elimini la funzione, non la richiami
    
    
    
    // riproduzione del tuo problema
    
    
    function ricorsioneInutile() {
    	delete ricorsioneInutile();
    }
    
    
    // per eliminare se stessa devi applicare delete al nome della funzione
    // e non al presunto risultato restituito al suo richiamo
    
    function ricorsioneInutile() {
    	delete ricorsioneInutile;
    }
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    Utente di HTML.it L'avatar di gobbo89
    Registrato dal
    Jun 2006
    Messaggi
    816

  8. #8
    Grazie gente, ora funziona infatti, siete fortissimi

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.