Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23

Discussione: scope di variabile

  1. #1

    scope di variabile

    ho questo codice
    codice:
    carica.onLoad = function(success) {
      		if(success) {
        		var risultato = new String();
    			risultato = this["tot"];
    			this.pippo = "1";
      		}
    	}
    trace(this.pippo);
    trace (risultato);
    ma le due variabili sono non definite...
    come devo fare?
    Trinity
    http://www.vocabolariodidio.it
    http://www.giulianodelena.com
    trova la tua casa per le vacanze
    http://www.salento.lecce.it

  2. #2
    prova:

    codice:
    carica.onLoad = function(success) {
      		if(success) {
                        risultato = this["tot"];
    		    pippo = "1";
      		}
    	}
    trace(pippo);
    trace(risultato);
    1) Infatti per quanto riguarda la variabile risultato questa è indefinita al di fuori della funzione onLoad poichè l'hai dichiarata esplicita dentro con il tag "var" se ometti il tag var dalle funzioni queste variabili non rimangono "chiuse" dentro la funzione. Ma vengono scritte nella timeline del clip locale.

    Quindi per risultato basta cancellare la dichiarazione.

    2) pippo invece viene dichiarato come estensione di THIS, this in questo caso è l'handler di loadVars quindi l'oggetto che tu hai chiamato "carica", se vuoi che sia leggibile con la tua forma puoi leggerlo semplicemente facendo

    trace(carica.pippo); al posto che trace(this.pippo);

    Infatti quando effettui il trace tu sei fuori dalla funzione e quindi THIS è diventato il movieclip locale che non contiene "pippo" che come sopradetto è contenuto dall'oggetto "carica".

  3. #3
    non continua a funzionare... forse perche' mi trovo all'interno di funzioni annidate:

    codice:
    function init() {
    	
    	var percorso = new String("http://arwen/salentolecce.it/phpflash/");
    	// ora preparo il caricamento del file php
        carica = new LoadVars();
    	carica.load(percorso+"catalogo.php");
    	carica.onLoad = function(success) {
      		if(success) {
    			risultato = this["tot"];
    			pippo = "1";
      		}
    	}
    trace (pippo);
    trace (risultato);
    Trinity
    http://www.vocabolariodidio.it
    http://www.giulianodelena.com
    trova la tua casa per le vacanze
    http://www.salento.lecce.it

  4. #4
    Sei sicuro della link????? Hai scritto:

    arwen/salentolecce.it/phpflash/

    Prova a scrivere questo intanto (ma non ti assicuro niente):
    codice:
    function init() {
        var percorso = "http://arwen/salentolecce.it/phpflash/";
        // ora preparo il caricamento del file php
        carica = new LoadVars();
        carica.onLoad = function(success) {
      	if(success) {
    		risultato = this["tot"];
    		pippo = 1;
      	} else {
                    trace("IMPOSSIBILE CARICARE IL FILE");
            }
        }
    
        carica.load(percorso+"catalogo.php");
        trace (pippo);
        trace (risultato);
    }
    Non vorrei scrivere una scemenza ma la funzione onLoad la devi scrivere prima di fare il load, prova così, sempre se esiste il file che cerchi di caricare.

    PS: non usare i costruttori di oggetti per dichiarare le stringhe e numeri, è inutile e appesantisce il codice.

  5. #5
    Originariamente inviato da platone
    Sei sicuro della link????? Hai scritto:

    arwen/salentolecce.it/phpflash/

    Prova a scrivere questo intanto (ma non ti assicuro niente):
    codice:
    function init() {
        var percorso = "http://arwen/salentolecce.it/phpflash/";
        // ora preparo il caricamento del file php
        carica = new LoadVars();
        carica.onLoad = function(success) {
      	if(success) {
    		risultato = this["tot"];
    		pippo = 1;
      	} else {
                    trace("IMPOSSIBILE CARICARE IL FILE");
            }
        }
    
        carica.load(percorso+"catalogo.php");
        trace (pippo);
        trace (risultato);
    }
    il percorso e' locale e va bene.
    carica.load
    deve stare sopra perche' this["tot"] prende una variabile dal file catalogo.php

    pero'continua a non funzionare...
    Trinity
    http://www.vocabolariodidio.it
    http://www.giulianodelena.com
    trova la tua casa per le vacanze
    http://www.salento.lecce.it

  6. #6
    Originariamente inviato da Ndr
    il percorso e' locale e va bene.
    carica.load
    deve stare sopra perche' this["tot"] prende una variabile dal file catalogo.php

    pero'continua a non funzionare...

    Hai invertito la disposizione della funzione e del load... se ancora non l'hai fatto prova a farlo e dimmi se funziona.


    platone

  7. #7
    ho cercato di semplificare il problema facendo in questo modo (ma non funziona)


    ho isolato le due funzioni
    codice:
    funzione init(){
    trace(pippo);
    }
    In un altro keyframe, altro livello

    codice:
     var percorso = "http://arwen/salentolecce.it/phpflash/";
        // ora preparo il caricamento del file php
        carica = new LoadVars();
        carica.onLoad = function(success) {
            if(success) {
                    risultato = this["tot"];
                    pippo = 1;
            } else {
                    trace("IMPOSSIBILE CARICARE IL FILE");
            }
    Trinity
    http://www.vocabolariodidio.it
    http://www.giulianodelena.com
    trova la tua casa per le vacanze
    http://www.salento.lecce.it

  8. #8
    Originariamente inviato da Ndr
    ho cercato di semplificare il problema facendo in questo modo (ma non funziona)


    ho isolato le due funzioni
    codice:
    funzione init(){
    trace(pippo);
    }
    In un altro keyframe, altro livello

    codice:
     var percorso = "http://arwen/salentolecce.it/phpflash/";
        // ora preparo il caricamento del file php
        carica = new LoadVars();
        carica.onLoad = function(success) {
            if(success) {
                    risultato = this["tot"];
                    pippo = 1;
            } else {
                    trace("IMPOSSIBILE CARICARE IL FILE");
            }
    Non ho capito che hai fatto... mancano delle graffe non riesco a raccapezzarmi. Ma apparte questo.. se dal codice precedente invertivi la funzione con il comando funzionava (salvo errori di scrittura variabili).
    :quipy:

  9. #9
    non capisco cosa vuoi dire con cambi la funzione con il comando.

    Comunque ti spiego cosa volevo fare:

    keyframe 1 livello1 della timeline:
    pannello actionscript:
    codice:
    funzione init(){
    trace(pippo);
    }
    keyframe 1 livello2 della timeline:
    pannello actionscript:
    codice:
    var percorso = new String("http://arwen/salentolecce.it/phpflash/");
    	// ora preparo il caricamento del file php
        carica = new LoadVars();
    	carica.load(percorso+"catalogo.php");
    	carica.onLoad = function(success) {
      		if(success) {
    			risultato = this["tot"];
    			pippo = "1";
      		}
    	}
    spero si apiu' chiaro
    Trinity
    http://www.vocabolariodidio.it
    http://www.giulianodelena.com
    trova la tua casa per le vacanze
    http://www.salento.lecce.it

  10. #10
    codice:
    // prima dichiari
    carica = new LoadVars();
    // poi controlli
    carica.onLoad = function(success) {
    	if(success) {
              risultato = this["tot"];
    	  pippo = "1";
      	}
    }
    // in ultimo Carichi
    carica.load(percorso+"catalogo.php");
    Ciao

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.