难以复制/扩展单例管理器类

问题描述

| 我想扩展或复制PopUpManager类以添加跟踪窗口数的功能。 我只想在添加窗口时添加一个简单的windowCount ++,在删除窗口时添加windoCount。 问题是PopUpManager是Singleton类...我无法通过扩展使其正常工作。现在,我试图从PopUpManager.as文件复制代码,然后将变量添加到其功能的末尾。它似乎没有用,因为它说我的属性是未定义的,即使它们是在构造函数之上声明的。 我在想我必须制作PopUpManagerImpl.as的副本,因为这似乎使很多业务驻留(
PopUpManagerImpl extends Eventdispatcher implements IPopUpManager
)允许我访问该变量?我应该忽略管理器,而是将其放在实现类中吗?

解决方法

这是有关使用Flex Singleton寄存器的链接,当发现自己处于相同情况时,该链接对我有所帮助。 希望您也能从中得到启发。,您可能没有将自己的属性声明为静态。 PopUpManager使用所有静态方法-这就是为什么使用它的语法如下:
PopUpManager.createPopUp(...
代替
var popUpManager:PopUpManager = new PopUpManager();
popUpManager.createPopUp(...
这意味着PopUpManager中声明的所有变量也必须是静态的,以便在类级别可访问。
public static var windowCount:int