Here's what I've got...  I have an 'if' statement that calls a boolean function 
-- problem is, that function pops up a Yes/No Alert window.  In order to know 
what button the user clicked, the handler-function must be called from the 
Alert pop-up, thereby preventing the boolean function from returning a proper 
value based on the outcome of the Alert window...

Lemme 'splain a bit better with an example:

private myMainFunction():void {
   //many things going on here before we get to the 'if' statement below.
   if (myBooleanFunction()) {
      //set a local-to-this-function variable here.
   } else {
      //set a local-to-this-function variable to something else.
   }
   //More things going on here that need the above-referenced 
local-to-this-function variable to be set before they can run.
}

private function myBooleanFunction():Boolean {
   Alert.show("Do you want to do this?","Alert...",(Alert.YES | Alert.NO, this, 
alertHandler, null, Alert.NO);
   //Flex is expecting a true/false return HERE, but I can't give one because I 
don't know the result until the alertHandler has run.
}

private function alertHandler(event:CloseEvent):void{
   if (event.detail == Alert.YES) {
      return true;  //of course alertHandler isn't a boolean, so this doesn't 
work.
   } else {
      return false;  //of course alertHandler isn't a boolean, so this doesn't 
work.
   }


Of course the above example does NOT work, because the alertHandler function is 
of type void, and the myBooleanFunction doesn't return anything.  So, how do I 
get the myBooleanFunction to return true/false based on the outcome of the 
alertHandler function?  Is there any way to do this?  If not, what's my 
alternative?  Is there a way to stop the program's running until alertHandler 
sets a public variable, perhaps?  What's the proper way to handle this?

Thanks,
Laurence MacNeill
Mableton, Georgia, USA


Reply via email to