包 | mx.managers |
类 | public class HistoryManager |
继承 | HistoryManager Object |
通常情况下,应使用 BrowserManager 类和深层链接来维护应用程序中的状态并处理 URL 和浏览器历史记录,但 HistoryManager 类在某些情况下会很有用,如维护旧版 Flex 应用程序时。无法在同一个 Flex 应用程序中同时使用 HistoryManager 类和 BrowserManager 类,即使二者使用同一组支持文件也不例外。
默认情况下,对 Accordion 和 TabNavigator 容器启用历史记录管理功能。这意味着,如果用户选择了 Accordion 控件中的某个窗格,则可以使用浏览器的“后退”按钮或后退导航命令返回到前一个窗格。默认情况下,对 ViewStack 导航器容器禁用历史记录管理功能。
可通过将导航器容器的 historyManagementEnabled
属性设置为 false
来禁用历史记录管理。
还可以向 HistoryManager 注册应用程序中的其它对象,从而对这些对象启用历史记录管理功能。要向 HistoryManager 类注册一个组件,需要调用 HistoryManager 类的 register()
方法,同时引用实现 IHistoryManagerClient 接口的组件实例。在以下示例中,在初始化 Application 组件 (this
) 时将向 HistoryManager 类注册此组件:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" implements="mx.managers.IHistoryManagerClient" initialize="mx.managers.HistoryManager.register(this);">还必须实现 IHistoryManagerClient 接口的
saveState()
和 loadState()
方法才能完成组件的注册。扩展 UIComponent 的组件会自动继承 loadState()
方法。
HistoryManager 中的所有方法和属性都是静态的,因此不需要为其创建实例。
另请参见
方法 | 定义方 | ||
---|---|---|---|
指示对象是否已经定义了指定的属性。 | Object | ||
[静态] DEPRECATED — 初始化 HistoryManager。 | HistoryManager | ||
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
指示指定的属性是否存在、是否可枚举。 | Object | ||
[静态] 向 HistoryManager 注册对象。 | HistoryManager | ||
[静态] 保存应用程序的当前状态,以便以后还原。 | HistoryManager | ||
设置循环操作动态属性的可用性。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
[静态] 撤销向 HistoryManager 注册对象。 | HistoryManager | ||
返回指定对象的原始值。 | Object |
initialize | () | 方法 |
public static function initialize(sm:ISystemManager):void
DEPRECATED — 初始化 HistoryManager。因为每当您使用 historyManagementEnabled
添加组件时,Flex 都会调用此方法,所以通常情况下无需进行此调用。然而,如果 HistoryManager 不是从顶级应用程序进行的初始化,将无法正常运行。因此,如果应用程序中的所有组件都未启用 HistoryManager,但加载了启用 HistoryManager 的其它子应用程序,则必须在主应用程序中调用 HistoryManager.initialize()
方法(通常是从该应用程序中的 initialize
事件处理函数中进行调用)。
参数
sm:ISystemManager — 用于此应用程序的 SystemManager。 |
register | () | 方法 |
public static function register(obj:IHistoryManagerClient):void
向 HistoryManager 注册对象。此对象必须实现 IHistoryManagerClient 接口。
参数
obj:IHistoryManagerClient — 要注册的对象。 |
另请参见
save | () | 方法 |
public static function save():void
保存应用程序的当前状态,以便以后还原。当导航器容器的导航状态发生更改时,导航器容器会自动调用此方法。如果向 HistoryManager 注册了某个接口,则当应用程序状态发生更改时,您要负责调用 save()
方法。
unregister | () | 方法 |
public static function unregister(obj:IHistoryManagerClient):void
撤销向 HistoryManager 注册对象。
参数
obj:IHistoryManagerClient — 要撤销注册的对象。 |