Gibt es eine Möglichkeit, die Hauptklasse - die auf dem Hauptteil .fla - statische zu machen? also könnten wir es wie in Java verwenden, da wir es von anderen Klassen aus referenzieren können, weil ich die Instanz des main selbst als Parameter an eine Klasse übergeben muss, sonst verliere ich die Referenz. Ich habe versucht, ein statisches Präfix hinzuzufügen, scheint aber as3 erlaubt es nicht.Statische Hauptklasse - AS3
Antwort
Es gibt kein Konzept der statischen Klasse in AS3.
können Sie die Singleton-Muster verwenden, um die einzigartige Instanz der Hauptklasse aussetzen:
public class Main extends Sprite {
public static var instance:Main;
public function Main() {
instance = this;
}
... oder markieren Sie einfach andere Eigenschaften/Methoden wie static
aussetzen, obwohl es schwieriger zu verwalten wird.
Ich muß erwähnen, obwohl das mit static
manchmal zu schlechtem Code-Design führt (stattdessen können Sie die Instanz von Main
Klassen übergeben, die sie durch ihren Konstruktor zum Beispiel benötigen)
Dies wird nicht die populär sein Antwort, ich weiß ... Die Verwendung von statischen Eigenschaften zum Aussetzen von Instanzen ist eine wirklich schlechte Idee. Das Singleton Anti-Pattern ist sehr beliebt, sollte es aber nicht sein, es führt zu schlechten Praktiken und bindet die Klassen unnötigerweise aneinander.
Sie müssen sich fragen, ob Sie wirklich auf die Hauptklasse in anderen Klassen verweisen müssen? AS3 verfügt über ein Event-System, das Ihnen alle losen Verbindungen zur Verfügung stellt, die Sie benötigen. Wenn ein Anzeigeobjekt mit der Hauptklasseninstanz kommunizieren muss, kann dies durch Senden von Ereignissen durch die Anzeigeliste erreicht werden.
Das Problem der Abhängigkeitsverwaltung wird am besten durch ein Framework zur Abhängigkeitsinjektion behandelt (von denen viele ein zentralisiertes Nachrichtensystem haben, das die Ereignisse über die Displaylist bei weitem übertrifft). Wenn Sie das Gefühl haben, dass eines der beliebtesten (PureMVC, RobotLegs, etc.) zu viel ist, können Sie es einfach (einfach und begrenzt) selbst erstellen.
Es gibt viele Tools und Patterns, die sich niemals auf Singletons oder statische Accessoren verlassen müssen, weil sie Ihr Leben miserabel machen und Ihr Code spröde, unflexibel, unbeständig, unzuverlässig und fehlerhaft ist.
Sinn macht. Ich werde versuchen, sowohl Statik als auch Singleton zu vermeiden und die Kontrolle über Main zu behalten. Ich muss jedoch suchen, wie es geht. Du hättest ein Beispiel geben können, aber trotzdem danke für die Anweisungen. : S –
- 1. Kompilieren einer Haxe-Bibliothek ohne eine Hauptklasse
- 2. Gradle Test läuft die Hauptklasse
- 3. AS3 Klasse Funktion Bereich
- 4. ausführbare jar Konnte Hauptklasse
- 5. Gradle - konnte nicht Hauptklasse
- 6. JAR-Datei: Konnte Hauptklasse
- 7. Javapackager: Kann Hauptklasse
- 8. Statische Actionscript-Code-Analyse?
- 9. Fehler: kann keine Hauptklasse finden
- 10. Hauptklasse [org.apache.oozie.action.hadoop.SqoopMain], Ausgang Code [1]
- 11. Run Hauptklasse von Maven-Projekt
- 12. Mallet - SimpleTagger Hauptklasse nicht gefunden
- 13. Geben Hauptklasse Frühling-Boot-Befehlszeile
- 14. Geben Hauptklasse für sbt-Resolver
- 15. Nein Hauptklasse in NetBeans gefunden
- 16. Hauptklasse Block in '{}' führt nie
- 17. Wie neu Hauptklasse in Java?
- 18. AS3 - graphics.clear()
- 19. Farbbibliothek AS3
- 20. AS3 Argumente
- 21. AS3: Sichtlinie
- 22. As3-Verschlüsselungsbibliothek
- 23. AS3 - Space Shooter Feindbilder
- 24. Einzeln verwendete Klasse vs. "statische Klasse"
- 25. wie diese Klasse nennen von Hauptklasse oder ContactInfromation Klasse
- 26. Schreib ich AS3 richtig?
- 27. AS3: ist nicht Keyword?
- 28. AS3 Object Filtering
- 29. AS3 - Scale BitmapData-
- 30. AS3 validieren Formularfelder?
Erstellen Sie eine Schnittstelle für die Hauptklasse und übergeben Sie diese als Referenz an die untergeordneten Hauptklassen. Aber das Schöne an Instanzen ist, dass sie keine Referenzen benötigen und auf jeder Ebene im Code verfügbar sind, aber wie Antoine sagte, kann dies eine Falle für schlechtes Design sein. – Gone3d