Посмотрите на шаблон команды для этого.
Когда кнопка нажата, передайте ссылку на кнопку, которая была нажата, в команду.
Если вы используете Spring AS, что-то вроде этого ...
<mx:Button id="myButton1" click="EventBus.dispatchEvent(new CommandEvent('testButton', myButton1))" />
В команде выведите диалоговое окно, обработайте ответ и установите стиль для ссылки на кнопку, которую вы передали.
Это отделяет логику того, что вы делаете, от самого компонента пользовательского интерфейса (даже не нужно быть кнопкой, команда может принимать UIComponent).
Это также не оставляет состояние, лежащее вокруг вашего приложения, например, наличие последней кнопки, нажатой на кнопку, и т. Д., Поскольку все состояние выполняемой вами части логики заключено в команде.
Краткий псевдокод команды
public class TestUICommand implements Command, RequiresContext {
private var _context : UIComponent;
private var _dialog : MyDialog;
// Your command controller would set the reference to the button here.
public function set context( cxt : UIComponent ) : void {
_context = cxt;
}
public function execute() : * {
_dialog = new MyDialog();
_dialog.popup();
_dialog.addEventListener( "yes", doYes );
_dialog.addEventListener( "no", closeDialog);
}
private function doYes( event : Event = null ) : void {
_context.setStyle("color", 0xFF0000);
closeDialog();
}
private function closeDialog( event : Event = null ) : void {
_dialog.close();
}
}