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

时间:2011-04-20 06:13:43

标签: flex actionscript-3 singleton implementation extend

我想扩展或复制PopUpManager类,以添加跟踪窗口数量的功能。 我只想在添加窗口时添加一个简单的windowCount ++,并在删除它时添加windoCount。

问题是PopUpManager是一个Singleton类...我无法通过扩展它使它正常工作。现在我尝试从PopUpManager.as文件中复制代码,并将我的变量添加到其函数的末尾。它似乎没有工作,因为它说我的属性是未定义的,即使它们被声明在构造函数之上。

我想我必须复制一下PopUpManagerImpl.as,因为我们似乎有很多业务存在(PopUpManagerImpl extends EventDispatcher implements IPopUpManager)会让我有权访问变量吗?我应该忽略经理并将其放在实现类中吗?

2 个答案:

答案 0 :(得分:4)

这是一个关于Using the Flex Singleton register的链接,当我发现自己处于相同的情况时帮助了我。

我希望你也能从中受到启发。

答案 1 :(得分:1)

您可能没有将属性声明为静态。 PopUpManager使用所有静态方法 - 这就是使用它的原因,你使用如下语法:

PopUpManager.createPopUp(...

而不是

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

这意味着在PopUpManager中声明的任何变量也需要是静态的,以便可以在类级别访问。

public static var windowCount:int