Hello,
I have an AS3 app which continuously send HTTP requests to a server.
If there is a HTTP request in progress already and it's not important
(kind of "I am alive" event) I would like to cancel it.
But if the ongoing request is important, I'd like to wait its completion
before I send another one. I wonder how to implement this waiting
properly, since AS3 doesn't seem to provide wait() and notify()
Here is my code
private var request:URLRequest;
private var loader:URLLoader;
private var vars:URLVariables;
private var notImportant:Boolean;
....
loader.addEventListener(Event.COMPLETE, handleComplete);
.....
private function fetch(event:Number, arg:String=null):void {
// fix the caching problems in MSIE
vars.mod = (new Date()).getTime();
vars.event = event;
if (arg != null)
vars.arg = arg;
else
delete vars.arg;
if (notImportant) {
try {
loader.close();
} catch (error:StreamError) {
trace(error);
}
} else {
// XXX call wait() here? XXX
}
loader.load(request);
}
private function handleComplete(event:Event):void {
........
// XXX call notify() at the end
}
How could I solve this? I can't keep looping and checking
some variable (like requestCompleted) because there is
no sleep() function either and CPU usage would be high:
private function fetch(event:Number, arg:String=null):void {
.....
while (! requestCompleted) {
// XXX call sleep(10) here XXX
}
Thank you for any suggestions
Alex
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders