0)
dialog.title = title;
dialog.closeButtonLabel = closeButtonLabel;
dialog.selfDisposing = selfDisposing;
dialog.message = message;
dialog.closeListener = closeListener;
dialog.invoker = invokerComponent;
//Dispatch the event for get clear background
Application.application.dispatchEvent(new ModalDialogEvent(ModalDialogEvent.OPEN));
PopUpManager.centerPopUp(dialog);
}
private function creationCompleteHandler() : void {
var focusTimer: Timer = new Timer(500, 1);
focusTimer.addEventListener(TimerEvent.TIMER, moveFocus);
focusTimer.start();
if (this.selfDisposing) {
var disposeTime: Timer = new Timer(800, 1);
disposeTime.addEventListener(TimerEvent.TIMER, autoDisposeDialog);
disposeTime.start();
accessibleMessage.name = this.title;
}
}
private function disposeDialog() : void {
if (closeListener != null) {
closeListener();
}
//Dispatch the event for remove clear background
Application.application.dispatchEvent(new ModalDialogEvent(ModalDialogEvent.CLOSE));
PopUpManager.removePopUp(this);
if (invoker != null) {
callLater(setInvokerComponentFocus);
}
}
private function setInvokerComponentFocus(): void
{ // EVENT_OBJECT_SELECTION == 0x8006
Accessibility.sendEvent(invoker, 0, 0x8006);
invoker.setFocus();
}
private function moveFocus(e: TimerEvent): void
{
if (AccessibilityTools.isAccessibilityActive()) {
messageBox.setFocus();
} else {
messageBox.editable = false;
closeBtn.setFocus();
}
}
private function autoDisposeDialog(e: TimerEvent): void
{
disposeDialog();
}
public function disposeOnEscape(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.ESCAPE) {
disposeDialog();
}
}
]]>