Сложность копирования / расширения класса менеджера синглтона - PullRequest
1 голос
/ 20 апреля 2011

Я хочу расширить или скопировать класс PopUpManager, чтобы добавить возможность отслеживать количество окон.Я просто хочу добавить простой windowCount ++ при добавлении окна и windoCount-- при его удалении.

проблема в том, что PopUpManager - это класс Singleton ... Я не смог заставить его работать должным образом, расширяяЭто.И теперь я попытался скопировать код из файла PopUpManager.as и просто добавить свою переменную в конец его функций.Похоже, что он не работает, поскольку он говорит, что мои свойства не определены, даже если они объявлены над конструктором.

Я думаю, мне нужно будет сделать копию PopUpManagerImpl.as, так как это всекажется, что большая часть бизнеса проживает (PopUpManagerImpl extends EventDispatcher implements IPopUpManager), что позволило бы мне иметь доступ к переменной?и должен ли я игнорировать менеджера и просто поместить его в класс реализации?

Ответы [ 2 ]

4 голосов
/ 20 апреля 2011

вот ссылка о Использование регистра Flex Singleton , который помог мне, оказавшись в такой же ситуации.

Надеюсь, вы тоже можете от этого вдохновиться.

1 голос
/ 20 апреля 2011

Вы, вероятно, не объявили свои свойства как статические.PopUpManager использует все статические методы - поэтому, работая с ним, вы используете синтаксис вроде:

PopUpManager.createPopUp(...

вместо

var popUpManager:PopUpManager = new PopUpManager();
popUpManager.createPopUp(...

Это означает, что любые переменные, объявленные в PopUpManager, такжебыть статичным, чтобы быть доступным на уровне класса.

public static var windowCount:int
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...