首页 > 网站 > WEB开发 > 正文

20.9.实现自定义历史记录管理器

2024-04-27 13:52:28
字体:
来源:转载
供稿:网友
20.9.1 问题
我想把自定义组件上的动作或变化注册到浏览器的历史记录中,并让它们可以对浏览器的前进后退按钮进行导航。
20.9.2 解决办法
在Flex 中通过实现mx.managers.IHistoryManagerClient 接口来实现自定义的历史记录管理器。
20.9.3 讨论
为了实现此解决办法,历史记录管理器必须对你的Flex 项目/工程是激活的。为了验证,我们进入Flex Project Properties 对话框,选择Flex Compiler 项,并验证Enable Integration with Browser 复选框处于选中状态,这即表示你的历史记录管理器对你的Flex 项目/工程是激活的。

下面的代码展示了如何为一个自定义的文本框实现IHistoryManagerClient 接口。此控件的任何一个变化,都将注册到浏览器历史记录中。用户可以通过使用浏览器的前进后退按钮在这个TextInput 控件的所有输入之间来回切换。
+展开
-XML
<mx:TextInput
xmlns:mx="http://www.adobe.com/2006/mxml"
text="Change Me!"
implements="mx.managers.IHistoryManagerClient"
creationComplete="mx.managers.HistoryManager.register(this);"
change="textChanged(event)">

<mx:Script>
<![CDATA[
import mx.managers.HistoryManager;
public function saveState():Object
{
return {text:text};
}
public function loadState(state:Object):void
{
var newState:String = state ? state.text : "";
if (newState != text)
{
text = unescape( newState );
}
}
private function textChanged(e:Event):void
{
HistoryManager.save();
}

]]>
</mx:Script>
</mx:TextInput>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表