Я знаю, что синглтоны - чувствительные темы, но я действительно не хочу ничего об этом слышать или что вы думаете об этой реализации. Этот вопрос не об этом.AS3 Объект этапа доступа в singleton возвращает null
Итак, я реализовал синглтон, используя статический var с экземпляром.
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
при использовании этой реализации одноплодной, а не тогда, когда инстанцировании класс, как обычно?
Edit:
Благодаря @Marty Уоллес ответа, я изменил свою одноплодную реализацию, и теперь он работает.
Таким образом, вместо того, чтобы инстанцирование экземпляра так:
private static var instance:SomeClass = new SomeClass();
я вместо того, чтобы создать экземпляр его в первый раз getInstance()
называется как @Marty это делает.
Я не знаю точно, что происходит за шторами, но кажется, что SomeClass
не был полностью экспортирован при создании экземпляра перед запуском класса документа.
Это интересный вопрос - я проверю его сейчас. – Marty