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.

 

 



Reply via email to