シングルトンがデリケートな話題であることは知っていますが、それについて、またはこの実装についてどう思うかについては、本当に聞きたくありません。この質問はそれについてではありません。
そのため、インスタンスで静的変数を使用してシングルトンを実装しました。
private static var instance:SomeClass = new SomeClass();
public static function getInstance():SomeClass {
return instance;
}
SomeClass
はライブラリ内のクラスであり、その中に と呼ばれるインスタンスがありますsomeSymbol
。
なぜか、シングルトンとして使っていると、アクセスしようSomeClass
とすると毎回. しかし、通常のインスタンス化で実装すると、エラーは消えます。someSymbol
Cannot access a property or method of a null object reference
SomeClass
さまざまな方法でアクセスしようとしましsomeSymbol
たが、常にエラーが発生します。
someSymbol.rotation = 0;
そしてまた
var aSymbol = getChildByName("someSymbol");
aSymbol.rotation = 0;
そしてまた
trace(someSymbol); // null
trace(this['someSymbol']); // null
trace(SomeClass.instance.someSymbol); // throws error
null
では、通常のようにクラスをインスタンス化するときではなく、このシングルトン実装を使用するときに取得するのはなぜですか?
編集:
@Marty Wallace の回答のおかげで、シングルトンの実装を変更したところ、動作するようになりました。
したがって、この方法でインスタンスをインスタンス化する代わりに:
private static var instance:SomeClass = new SomeClass();
代わりにgetInstance()
、@Marty が行うように、最初に呼び出されたときにインスタンス化します。
カーテンの後ろで何が起こっているのか正確にはわかりませんがSomeClass
、ドキュメント クラスが実行される前にインスタンス化するときに、完全にエクスポートされていないようです。