Hoffnung schlagen Ich bin nicht hier ansehen tote Pferde :)
(edit: ahh, ich wiederhole nur phils Link)
Gregors Singletons Implementierung schützt nicht vor den Konstruktor mit einem Nullwert aufrufen, wie in:
var b:Blah = new Blah(null);
Sie sti Ich habe nur 1 Instanz, aber das Aufrufen des Konstruktors ist immer noch möglich mit den folgenden Konsequenzen.
Wenn Sie den Singleton unbedingt erzwingen müssen, sollte der Konstruktor sicherstellen, dass der Enforcer-Parameter nicht null ist.
public function Blah(enforcer : SingletonEnforcer) {
if(!enforcer){
throw new Error("whoops!");
}
}
Sie sollten auch beim Laden von SWF-Dateien über ApplicationDomain besorgt sein.Externe SWF-Dateien, die die gleichen Definitionen verwenden, können mehrere Singleton-Instanzen haben (1 in jeder separaten Anwendungsdomäne), wenn Sie nicht angeben, dass die SWF-Datei in die vorhandene Anwendungsdomäne geladen werden muss.
Dies bedeutet, dass Blah.getInstance() in AAA.swf nicht dieselbe Instanz wie Blah.getinstance() in BBB.swf ist, wenn AAA.swf BBB.swf ohne eine LoaderContext-Instanz lädt, die das Plugin anweist, zu laden BBB.swf in die gleiche ApplicationDomain wie AAA.swf
Kann ich so etwas wie dies nennen .. \t <[CDATA [ \t \t Import com.invoicetracking.includes.MyValues!; \t]]> \t –
Kevin
Wobei MyValues eine Singleton-Klasse und addUser eine Variable ist. – Kevin
sicher kann. stellen Sie einfach sicher, dass Sie den [Bindable] Metatag hinzufügen – Shua