Flex事件监听器和绑定Utils.bindSetter的可靠性如何

时间:2013-11-14 13:32:49

标签: actionscript-3 flex

我正在使用Flex应用程序测试一个拥有大量客户端的系统。我看到一些意外的行为,看起来像eventListeners或bindSetters“停止监听”。

我似乎无法找到有关这些系统可靠性的在线文档。你们中有没有人有过这方面的经验吗?

让我举一个我能解决的例子:

要求:客户端需要每隔十秒向服务器发送一次命令

实施1 :计时器和eventListener

keepAliveTimer = new Timer(10000, 0);   
keepAliveTimer.addEventListener(TimerEvent.TIMER, registerClient);
keepAliveTimer.start();

发现问题:有时一个或多个客户端在随机时间后停止发送该命令

实施2 :用enterFrame替换计时器

 enterFrame="registerClient();"

问题似乎已经解决了......

这样的事情让我怀疑eventListener模型......

有关此事的任何经验吗?有用的信息?

非常感谢, 弗兰克

1 个答案:

答案 0 :(得分:2)

您可以尝试注册并删除侦听器

public var keepAliveTimer:Timer;

private function initVerifyClient():void
{
    keepAliveTimer = new Timer(10000, 0);   
    keepAliveTimer.addEventListener(TimerEvent.TIMER, registerClient);
    keepAliveTimer.start();     
}

private function registerClient(e:TimerEvent):void
{
    keepAliveTimer.removeEventListener(TimerEvent.TIMER, registerClient);

    //YOUR SERVER VALIDATION CLIENT HERE

    keepAliveTimer.addEventListener(TimerEvent.TIMER, registerClient);
}