0

在我的 flex 应用程序中,我在空闲状态下使用事件侦听器进行会话。它不适合我。

这是我的代码:

我在方法中放置了下面的代码

this.systemManager.addEventListener(FlexEvent.IDLE,onUserIDLE);

和调用函数 onUserIDLE

private function onUserIDLE(e:FlexEvent):void
{           
    if(e.currentTarget.mx_internal::idleCounter == 60000)
    {
        this.systemManager.removeEventListener(FlexEvent.IDLE,onUserIDLE);
        Alert.show("Session time Out");
        menuRO.logoutUser();
        signOutBtn_clickHandler();          
    }
}

上面的代码不适用于我的应用程序,它没有进入 if(e.currentTarget.mx_internal::idleCounter == 60000)语句。请给我建议。

提前致谢!

4

2 回答 2

2

根据这篇文章,idleCounter 似乎发生了变化(mx_internal 组件总是会发生这种情况),所以我想你必须滚动你自己的计时器。

于 2012-05-25T09:54:44.243 回答
0

由于 Flex SDK 是开源的,您始终可以深入了解 SystemManager(以及 WindowedSystemManager)类源,以查看空闲逻辑仍然存在(我检查了 SDK v.4.6.0)并且工作正常。根据您的条件语句,您真的等待 100 分钟以查看它是否进入 IF 块?无论如何,您始终可以使用跟踪来跟踪 idleCounter 值。但是,如果您确定在您的代码中,那么了解您使用的是哪个版本的 flex SDK 以及哪个版本的 FlashPlayer 会很有帮助。

于 2012-05-25T11:59:24.057 回答