解决方法主要是使用Flex提供的定时器以及监听界面,当界面没有任何操作的时候,调用定时器计时进行处理。
实现机制:利用FlexEvent.IDLE空闲事件,然后用mx_internal::idleCounter来获取空闲时间。
具体代码如下:
需要导入
import mx.managers.SystemManager;
import mx.events.FlexEvent;
import mx.core.mx_internal;需要用到mx_internal命名空间里面的东西
use namespace mx_internal;在页面载入时添加
this.systemManager.addEventListener(FlexEvent.IDLE, userIdle);将空闲事件FlexEvent.IDLE交给自定义的处理函数userIdle.
最后定义userIdle函数:
private function userIdle(e:FlexEvent):void {
if(e.currentTarget.mx_internal::idleCounter == 3000){
//进行登录超时处理
}
}
这里idleCounter的数值有点特别。只需要记住1分钟是600就可以了。
所以如果要30分钟过期的话,就设成18000;如果只是测试的话,可以设成30之类的。