Actionscript 3 AS3定时器比php快
我也试图每秒加载新消息,但每次加载新消息都会加倍,我想是因为计时器在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
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所需的行。