Search code examples
apache-flexparametersalertsend

Flex: Sending parameters to Alert closeHandler


Is it possible to send parameters to a closeHandler Alert function? The fisrt parameter the function gets is the CloseEvent, but how to send another one?

<s:Button id="btnLoadLocalData" label="Load data"
          click="Alert.show('Populate list with local data?', '', Alert.YES | Alert.CANCEL, this, loadLocalData(???parameters???), null, Alert.OK);"/>

Thank you!


Solution

  • This should be possible using Flex's dynamic function construction. A similar question was asked here.

    Here's an example:

    The parameters and handler:

    var parameters:String = "Some parameter I want to pass";
    
    private function loadLocalData(e:Event, parameter:String):void
    {
      // voila, here's your parameter
    }
    
    private function addArguments(method:Function, additionalArguments:Array):Function 
    {
      return function(event:Event):void {method.apply(null, [event].concat(additionalArguments));}
    }
    

    Your component:

    <s:Button id="btnLoadLocalData" label="Load data"
              click="Alert.show('Populate list with local data?', '', Alert.YES | Alert.CANCEL, this, addArguments(loadLocalData, [parameters])), null, Alert.OK);"/>