Flex procedural code is essentially single threaded. The loop will stop all other processing, the handler will never get called, and the loop will never stop.
There is NO sleep or delay or pause or anything like that in Flex. You must use events. Tracy Spratt, Lariat Services, development services available _____ From: [email protected] [mailto:[email protected]] On Behalf Of Nick Middleweek Sent: Thursday, August 27, 2009 6:43 AM To: [email protected] Subject: Re: [Spam] RE: [Spam] [flexcoders] Question on Flex Script Execution + Alert.show Why won't it work? I can't see why it wouldn't... I'm still learning Flex so perhaps I've overlooked something. I do agree, it is bad coding but I can't see why it wouldn't work. The boolAlertContinue variable is in affect acting like semaphore... Cheers, Nick 2009/8/27 Tracy Spratt <tr...@nts3rd. <mailto:[email protected]> com> No, no, no, this will not work. You must use the event mechanism. Tracy Spratt, Lariat Services, development services available _____ From: flexcod...@yahoogro <mailto:[email protected]> ups.com [mailto:flexcod...@yahoogro <mailto:[email protected]> ups.com] On Behalf Of Nick Middleweek Sent: Wednesday, August 26, 2009 7:33 PM To: flexcod...@yahoogro <mailto:[email protected]> ups.com Subject: Re: [Spam] [flexcoders] Question on Flex Script Execution + Alert.show I'm not sure if this technique is frowned upon but... You could have a new private var boolAlertContinue:Boolean = false; In your alertHandler function, you would set it to true... boolAlertContinue = true; And after the Alert.show and before the if(myAlert == 1) you need to do a do while loop... do { //Not sure if there's a 'dummy' command to prevent CPU hog so we'll just check the time... var dtmNow:Date = new Date(); } while (boolAlertContinue); or you could probably initialise your myAlert:int = null and in the do ... while loop check for (myAlert != null) Cheers, Nick 2009/8/26 Angelo Anolin <angelo_anolin@ <mailto:[email protected]> yahoo.com> Hi FlexCoders, This has puzzled me a bit.. I have the following scripts in my application: private var myAlert:int; private function testFunction(evt:Event):void { Alert.show('do you want to proceed', 'Title', Alert.YES | Alert.NO, null, alertHandler, null, Alert.YES); if(myAlert == 1) { // Do Something here } else { // Do other thing here } } Private function alertHandler(evt:CloseEvent) { if(evt.Detail == Alert.YES) { myAlert = 1; } else { myAlert = -1; } } Now, what puzzles me is that the script after the Alert.show is triggered, the scripts following it are also triggered. Is there a way to ensure that the script following the Alert.show alert box would only be executed after the Yes or No buttons has been pressed? I won't be able to move the scripts after the Alert.show script to the alertHandler event since there are some objects being set / modified prior to the alert being called. Inputs highly appreciated. Thanks.

