Actionscript 3 AS3定时器比php快

Actionscript 3 AS3定时器比php快,actionscript-3,flash,timer,Actionscript 3,Flash,Timer,我也试图每秒加载新消息,但每次加载新消息都会加倍,我想是因为计时器在php执行之前就完成了? 所以我试着加上 if (checker != "" + idstored + "done") { checker = "" + idstored + "done"; 因此,一旦计时器完成,它会更改检查器,以便当计时器重新启动并再次完成时,它不会再次执行。。。但它停止检查所有新消息。。。有什么建议吗 var count:Timer = new Timer(1000, 1); count.addEv

我也试图每秒加载新消息,但每次加载新消息都会加倍,我想是因为计时器在php执行之前就完成了? 所以我试着加上

  if (checker != "" + idstored + "done") {
checker =  "" + idstored + "done";
因此,一旦计时器完成,它会更改检查器,以便当计时器重新启动并再次完成时,它不会再次执行。。。但它停止检查所有新消息。。。有什么建议吗

var count:Timer = new Timer(1000, 1);
count.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete); 
count.start();

var checker;
function onTimerComplete(event:TimerEvent):void{
    if (checker != "" + idstored + "done") {
    checker =  "" + idstored + "done";

    var variables_cc:URLVariables = new URLVariables();
    var varSend_cc:URLRequest = new URLRequest("chat.php");
    varSend_cc.method = URLRequestMethod.POST;
    varSend_cc.data = variables_cc;
    var varLoader_cc:URLLoader = new URLLoader;
    varLoader_cc.dataFormat = URLLoaderDataFormat.VARIABLES;
    varLoader_cc.addEventListener(Event.COMPLETE, completeHandler_cc);

    function completeHandler_cc(event:Event):void{
        if (event.target.data.statusline == "is_new") {
              stored_id_txt.text = "" + event.target.data.stored_id;
              status_txt.text = "" + event.target.data.statusline;
              returnline.text = "" + event.target.data.returnBody;
              checker.text = checker;
              splitByDelimiter(event.target.data.returnBody);
              idstored = event.target.data.stored_id;
              checker = "refresh";
        } 
    }}
    // ready the last_refresh_time variable for sending to PHP
    variables_cc.requester = "chat_check";
    variables_cc.stored_id = idstored;
    varLoader_cc.load(varSend_cc);
    count.reset();
    count.start();
}

您可能会出现错误,因为您有时会在上一次下载未完成时尝试开始新的下载。每1秒实时执行一次延迟相关的操作是不明智的。你需要开始做一些事情,等待它完成,然后再重新开始


在计时器启动后(在onTimerComplete函数内)移除计时器的EventListener,并停止计时器并将其重置。qddEventListener连接到计时器,并在下载数据后启动它(在completeHangler_cc函数中)。

您应该将计时器重置代码放置在事件完成处理程序中,否则可能会在URL请求完成之前重置计时器。尝试了。。。不起作用:(尝试了很多次,但都有一些变化……最终归结到php文件……我在php中有if和else语句,else语句没有正确地响应flash所需的行。