我已经搜索和搜索,但找不到答案。实际上,我一直在阅读的所有内容似乎都表明我做得正确,但它只是不起作用。
我正在开发一个网络地图应用程序。我想创建一个可供我的所有 mxml 文件(小部件)使用的 SelectionManager 类。关键是我有多个小部件,它们将从地图中选择东西,而不是在小部件之间来回发送事件,我宁愿有一个包含所有信息的类。
现在,我尝试过这样的事情:
package SomePackage.utils
{
public class SelectionManager
{
public static var _selectionSets:ArrayCollection = new ArrayCollection();
public static var _currentSelectionSet:Object;
(Many static functions... ex: AddToCurrentSelectionSet, removeFromCurrentSelectionSet, CreateNewSelectionSet, etc.)
}
}
_selectionSets 是对象的arrayCollection。_currentSelectionSet 保存 _selectionSets arrayCollection 中的对象之一。例如,我将有一个 BufferSelectionSet 和一个 QuerySelectionSet。当我打开 Buffer Widget 时,我希望 _currentSelectionSet 保存 _selectionSets 数组集合中的适当 selectionSet。这样,每当我在打开 Bufferwidget 时单击某物,它就会被添加到适当的选择集中。
现在,我的两个小部件都导入了 SelectionManager 类,但没有实例化它。发生的情况是,我的两个小部件似乎拥有不同的 SelectionManager,而我期望它们具有相同的 SelectionManager,具有相同的静态变量。
例如,如果我从缓冲区小部件中设置 currentSelectionSet,我会看到它设置为 ArrayCollection 中的对象。但是,如果我从查询小部件中查看 currentSelectionSet,它将为空。
我不确定我是否足够清楚,如有必要,我可以提供更多详细信息。就像我说的,我看了又看,没有成功。此外,我不是 Flex 和 AS 3.0 的初学者,并且在其他编程语言方面有相当多的经验。我完全被这件事难住了,也许这只是漫长的一天。
谢谢你的帮助。
补充资料:
我的小部件位于与 utils 包平行的包中,即: SomePackage.Widgets