Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179

    variabili locali e globali

    Come faccio a dichiarare un variabile globale con piena visibilitā su tutti, e una locale(in una funzione) o in un'oggetto e come faccio poi a usarle se sta una visibilitā diversa?

    Un'altro domanda per dichiarare variabile globale di tipo static come devo fare?

    grazie

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    E' un discorso un po' complesso, dovresti spiegarmi il caso particolare. Ti do intanto delle informazioni:

    1. Una variabile globale la crei nello scope di _global, ed č accessibile a qualunque oggetto con il prefisso _global:
    codice:
    _global.variabile = valore;
    trace(_global.variabile); // puō farlo qualunque oggetto
    2. Per recuperare una variabile in _global, laddove non ce ne sia una locale con lo stesso nome, puoi omettere il _global

    codice:
    // nel primo frame di un filmato vuoto
    _global.variabile = 10;
    trace(variabile); // traccia 10
    3. Se vuoi utilizzare una variabile creata in _global all'interno di una Classe, devi per forza usare il prefisso _global (altrimenti il compilatore genere un errore).

    4. Nel caso di variabili omonime, e comunque nel caso di qualunque variabile, si passa dallo scope pių locale a quello pių generico. Ad esempio:

    codice:
    _global.variabile = "ciao";
    trace(variabile); // qui si tratta di quella globale
    variabile = 10; // qui scrivo una variabile locale
    trace(variabile); // traccia 10, si tratta di quella locale
    trace(_global.variabile); // traccia "ciao", č quella globale
    codice:
    _global.variabile = "ciao";
    function esegui()
    {
    	var variabile = 10;
    	trace(variabile); // č quella locale
    }
    esegui();
    trace(variabile); // č quella globale

  3. #3
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    >per dichiarare variabile globale di tipo static

    Mi sa che fai confusione. Quando usi la parola chiave "static" non ti riferisci ad una variabile, ma ad una proprietā di una Classe, anche se vengono definite con la parola chiave var in entrambi i casi. Una proprietā statica č una proprietā di una Classe, quindi accessibile direttamente tramite il nome della Classe:
    codice:
    NomeClasse.proprietāStatica
    ed č accessibile in base all'indicazione dell'attributo private o public..

    In questo senso, una proprietā statica *non* č globale, anche se č accessibile a tutte le istanze della Classe.

  4. #4
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    Penso che la tua risposta č giā completa cosi!!!...
    Quindi per dichiarare una variabile static basta che metto
    static.variabile giusto?
    grazie 6 stato molto chiaro,ti dico il caso particolare se mi viene mentre lavoro, per ora sto cercardo di dichiarare una variabile globale e far incrementare di uno questa all'interno di un movie clip

    grazie 1000 per le tue informazioni

  5. #5
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Attento. Considera questa Classe:
    codice:
    class MiaClasse
    {
    }
    In questo caso, fuori dalla classe (ad esempio nel primo frame di un filmato), non puoi nč recuperare ne creare una proprietā statica:
    codice:
    MiaClasse.variabile = 10; // errore
    perchč nella definizione della Classe non č esplicitata l'esistenza di detta proprietā.

    In questa Classe:
    codice:
    dynamic class MiaClasse
    {
    }
    invece, puoi crearla e recuperarla senza problemi, in quanto le Classi dinamiche possono avere proprietā create dinamicamente:
    codice:
    MiaClasse.variabile = 10; // nessun errore
    trace(MiaClasse.variabile); // traccia "10"
    In questa Classe:
    codice:
    class MiaClasse
    {
    	static var variabile:Number = 10;
    }
    puoi modificare e recuperare la proprietā:
    codice:
    trace(MiaClasse.variabile); // traccia "10"
    MiaClasse.variabile = 20; // nessun errore
    trace(MiaClasse.variabile); // traccia "20"
    In questa Classe:
    codice:
    class MiaClasse
    {
    	private static var variabile:Number = 10;
    }
    non puoi nč modificare nč recuperare la proprietā:
    codice:
    trace(MiaClasse.variabile); // errore
    MiaClasse.variabile = 20; // errore

  6. #6
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    la variabile static:
    ho un pō di esperienza con altri linguaggi che non c'entrano nulla con actionscript, di conseguenza pensavo che la variabile static era lo stesso concetto studiato ma non č cosi, infatti se per esempio nella funzione:
    function pippo() {
    static variabile=10; // variabile locale
    x++;
    }
    Ogni volta che viene chiamata questa funzione, variabile incrementa di uno, ma la variabile x viene inzializzata a 0 solo la prima volta che lo incontra e non tutte le volte...
    Pensavo che questo discorso era valido anche per acionscript e mi avrebbe fatto comodo utilizzare questa variabile...
    in ogni caso ho toppato alla grande, cancello tutto!!!

    Ciao e grazie di tutto....

  7. #7
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Di niente, 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.