Flash AS3-Globale Variablen?
HALLO ich habe eine main Klasse
//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 bekomme ich die testGlobal Wert auf pop.als Breite sich mit einer main-Klasse ein Objekt.
Gibt es irgendeine Methode, Globale Variablen??
Anleitung zur Verwendung globaler Variablen in AS3 .
Hey, hat keiner von unseren Antworten zufrieden? Amarghosh s Antwort und meine eigenen decken so ziemlich alles, was Sie eventuell benötigen können. Einer von Ihnen zumindest sollte erwogen werden, eine Antwort.
Ja, Sie sollten akzeptieren, @alecmce Antwort - es ist die technisch richtige Antwort auf die Frage "gibt es irgendeine Methode, Globale Variablen?"
Ja, Sie sollten akzeptieren, @alecmce Antwort - es ist die technisch richtige Antwort auf die Frage "gibt es irgendeine Methode, Globale Variablen?"
InformationsquelleAutor coderex | 2009-12-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie absolut positiv haben Sie eine Globale variable in as3, können Sie immer erstellen Sie eine Datei in der obersten Ebene des Quell-Ordner wie diesem:
MULTIPLIKATOR.als
Dann, wenn Sie benötigen Ihre Multiplikator könnte man verweisen, wo Sie es so:
DoSomeMultiplying.als
Allerdings würde ich empfehlen dringend, dass Sie dies nicht tun! es ist schrecklich schlechte Praxis ist, schrecklich langsam und gut, nur schrecklich!
Aber es ist, es ist möglich, erstellen Sie eine Globale variable oder Konstante in der Standard-Paket, das als Globale Konstante oder variable.
Deklaration Globale Funktionen in AS3
Beachten Sie, dass Sie können auch Globale Funktionen in der gleichen Weise, und Sie müssen nicht verwenden einer import-Anweisung für die (ähnlich wie die integrierte trace-Funktion):
GRÜßEN.als
Ähnlich wie die globalen Variablen, diese Globale Funktion ist von überall zugänglich, ohne eine import-Anweisung:
Ich glaube, Sie brauchen ein paar mehr Ausrufezeichen.
Falls sich jemand wundert, der Grund, dies ist EINE SCHRECKLICHE PRAXIS, weil eine andere variable irgendwo anders möglicherweise den gleichen Namen haben. Dann würden Sie nicht in der Lage sein, um den Zugriff auf die Globale variable aus (der Bereich, wo die andere variable ist), denn es würde überschreiben die globalen.
Vielen Dank für diese. Ich wollte eine Globale debug-Funktion, die ich verwenden könnte, schnell, und Sie müssen nicht fügen Sie eine import-Anweisung (im Grunde wie
trace
), und das ist ja die Lösung (obwohl in meinem Fall, es istpublic function()
im Gegensatz zupublic var
) natürlich wollen Sie nicht, um code zu erstellen, aber es ist schön zu wissen, für bestimmte Umstände. Um sicherzustellen, dass diese Funktionen nicht enthalten sind in ein production-build, könnte man diese in einem separaten-source-path
und aktualisieren Sie Ihre build-Skripte entsprechend an.InformationsquelleAutor alecmce
testGlobal ist keine Globale variable, es ist eine öffentliche Instanz-Variablen des
Main
Klasse. Sie können nicht darauf zugreifen, ohne einenMain
class-Objekt, denn ohne ein Objekt, es gibt keine Existenz für eine Eigenschaft. Instanz-Variablen sind an Gegenstände gebunden.Wenn Sie zugreifen möchten, erstellen Sie eine Eigenschaft, die ist nicht gebunden an ein bestimmtes Objekt die Instanz, erklären Sie als
static
.Sie können get - /set-öffentliche statische variable
Main.testGlobal
von jeder Klasse.dann, wie kann ich eine Globale variable in as3
Wenn durch
set
du meinst, um den Wert zu ändern, dies ist, wie Sie es tunMain.testGlobal = "some other value"
- Wenn Sie auf der Suche für Globale Variablen im Allgemeinen wieder, so dass eine variablepublic static
ist der Weg zu gehen.wie kann ich eine Globale variable in AS3, AS3 Unterstützung von Globalen Variablen wie in AS2 ??
InformationsquelleAutor Amarghosh
Nur diese von jeder Ebene, die Sie wollen, rufen Sie die Haupt-timeline aus:
Funktionieren sollte, jederzeit.
InformationsquelleAutor DRJ
Verwenden Sie die statischen, wie es vorher gesagt wurde, oder man kann das Singleton-Muster. Es gibt keine privaten Konstruktoren in WIE, also was Sie tun können, ist:
a) seien Sie sehr vorsichtig, nicht, um den Konstruktor aufrufen
b) senden Sie eine Ausnahme jedesmal, wenn jemand ruft die Konstruktor-und die Instanz wurde bereits gesetzt.
Ich glaube nicht, dass es tatsächliche Globale Variablen - aber ich sehe nicht ein, warum würden Sie brauchen. Wenn Sie möchten, eine variable in class zu werden modifizierbare von außen einfach deklarieren von statischen dann tun className.variableName = .
Nun, ich sagte, ich glaube nicht, dass es gibt... das ist, weil ich bin mir nicht sicher... Alles, was ich tun wollte, ist zu verweisen auf das Singleton-Muster ist ein Muster, das manchmal verwendet werden, um die Umgehung der Probleme der Verwendung von globalen Variablen... ich erinnere mich nicht den bestimmten Tag das war (vor 10 Tagen!) obwohl, ich erinnere mich an Ihre Antwort. Ich wahrscheinlich erst bemerkt nachdem ich es mir geschrieben.
InformationsquelleAutor webdreamer
Ich Stimme mit dem, was die anderen gerade gesagt haben, vermeiden Sie Globale Variablen, lieber Konstante (und in der Regel Konstanten sind nicht dazu gedacht, geändert zu werden)
InformationsquelleAutor just_a_dude
InformationsquelleAutor jaredy
Nur diese von jeder Ebene, die Sie wollen, rufen Sie die Haupt-timeline aus:
Funktionieren sollte, jederzeit.
23 mal langsamer als:
InformationsquelleAutor xxx
Benutzen, können Sie das Schlüsselwort _global...
ex : eine Datei mit dem Namen "_global."mit diesem code:
Dann können Sie testen, _global als hierunter eine Klasse zB "Main2.als" (Spaß haben):
InformationsquelleAutor tatactic
Vielleicht können Sie Platz
var testGlobal:string = "testValue";
im Bild 1InformationsquelleAutor KengoTokukawa