flash actionscript - Flash AS3 Globale Variablen?




5 Answers

Wenn Sie unbedingt eine globale Variable in as3 benötigen, können Sie immer eine Datei in der obersten Ebene Ihres Quellordners erstellen:

MULTIPLIER.as

package
{
    public var MULTIPLIER:int = 3;
}

Wann immer Sie Ihren Multiplikator benötigen, können Sie überall hinweisen, wo Sie ihn benötigen:

DoSomeMultiplying.as

package multiplying
{
    public class DoSomeMultiplying
    {
        public function multiplyMe(n:int):int
        {
            var m:int = n * MULTIPLIER;
            MULTIPLIER = m;
            return m;
        }
    }
}

Ich würde Ihnen jedoch dringend empfehlen, dies nicht zu tun! Es ist schrecklich schlechtes Training, schrecklich langsam und, na ja, einfach schrecklich !

Aber da ist es, es ist möglich, eine globale Variable oder Konstante in dem Standardpaket zu erstellen, um als globale Konstante oder Variable zu fungieren.

Globale Funktionen in AS3 deklarieren

Beachten Sie, dass Sie globale Funktionen auf die gleiche Weise erstellen können und dass Sie keine Importanweisung für (ähnlich der integrierten Tracefunktion) verwenden müssen:

grüßen

package {
  public function greet():String { return "Hello World" }
}

Ähnlich wie bei der globalen Variablen ist diese globale Funktion von überall her ohne Import-Anweisung zugänglich:

package bar {
    public class foo
    {
        public function foo():void
        {
            trace("New foo says: "+greet()+", no import necessary");
            // New foo says: Hello World, no import necessary
        }
    }
}
download tutorial

HI ich habe eine Hauptklasse

//main.as

package {
    public class main {
        public var testGlobal:string = "testValue";

    }
}


//pop.as

package {
    public class pop {
        function pop():void {
            trace("testGloabl from main.as" + testGlobal);
        }
    }
}

Wie kann ich den Wert von testGlobal für pop.as width out mit einem Hauptklassenobjekt ermitteln? Gibt es eine Methode von Global Variablen ??

Verwendung von globalen Variablen in AS3




Tun Sie dies einfach von der Ebene aus, auf der Sie die Hauptzeitleiste aufrufen möchten:

//Define your global variable
var myGlobalVariable:String = "Get Up!";
//call it from anywhere
var Root:MovieClip = root as MovieClip;
trace(Root.myGlobalVar);

Das sollte jederzeit funktionieren.




Ich stimme dem zu, was die anderen gerade sagten, vermeide globale Variablen, bevorzuge Konstante (und normalerweise werden Konstanten nicht verändert)




Tun Sie dies einfach von der Ebene aus, auf der Sie die Hauptzeitleiste aufrufen möchten:

//Define your global variable
var myGlobalVariable:String = "Get Up!";
//call it from anywhere var Root:MovieClip = root as MovieClip;
trace(Root.myGlobalVar);

Das sollte jederzeit funktionieren.

var i:int = 10000000;
while(i--){
    Root.nn--;
}

23 Mal langsamer als:

var i:int = 10000000;
while(i--){
    globalVar.nn--;  // package
}



Vielleicht können Sie var testGlobal:string = "testValue"; in Bild 1




Related

flash actionscript-3 actionscript actionscript-2