Poddany przykład poniżej przenosi obsługę zdarzenia na funkcję zewnętrzna np. z poziomu głównej aplikacji.
Oto główna paczka z komponentem rozszerzonym Alert;
package myComponent
{
import mx.controls.Alert;
import mx.core.Application;
import mx.events.CloseEvent;
public class alert extends Alert
{
yesLabel = "Tak";
noLabel = "Nie";
cancelLabel = "Anuluj";
[Bindable]
[Embed(source="icons/dialog-information.png")]
private static var IconInfo:Class;
[Bindable]
[Embed(source="icons/dialog-question.png")]
private static var IconQuestion:Class;
[Bindable]
[Embed(source="icons/dialog-error.png")]
private static var IconError:Class;
[Bindable]
[Embed(source="icons/dialog-warning.png")]
private static var IconWarning:Class;
private static var ParentApp:* = Application.application;
private static var idFun: uint = 0;
private static var bQuestion: Boolean = false;
public function alert()
{
super();
}
public static function warning(Msg : String) : void {
show(Msg,"Ostrzeżenie",mx.controls.Alert.OK,null,closeHandle,IconWarning);
}
public static function error(Msg : String) : void {
show(Msg,"Błąd",mx.controls.Alert.OK,null,closeHandle,IconError);
}
private static function closeHandle(event:CloseEvent):void{
switch (event.detail) {
case Alert.OK: break;
case Alert.YES: if (bQuestion) ParentApp.AlertQuestionFun(idFun); break;
}
}
public static function info(Msg : String) : void {
show(Msg,"Informacja",mx.controls.Alert.OK, null , closeHandle, IconInfo);
}
public static function question(Msg : String, funId : uint) : void {
idFun = funId;
bQuestion = true;
show(Msg,"Pytanie",mx.controls.Alert.YES | mx.controls.Alert.NO, null, closeHandle, IconQuestion);
}
}
}
Do głównej aplikacji importujesz rozszerzoną i dodajesz funkcję obsługi
<mx:Script>
<![CDATA[
import myComponent.alert;
public function AlertQuestionFun(fun : int) : void {
switch (fun) {
case 1: {Alert.show("Test - wykonanie funkcji obsługi nr 1");} break;
case 2: {Alert.show("Test - wykonanie funkcji obsługi nr 2");} break;
}
}
]]>
</mx:Script> I używasz rozszerzonej klasy w ten sposób:
alert.info("Ważne informacje dotyczące wykonywanych operacji");- dla wyświetlenia informacjialert.warning("Uwaga! Nie można wykonać tej czynności");- dla wyświetlenia ostrzeżenia
alert.error("Kopiowanie danych nie powiodło się!");- dla wyświetlenia błędu wykonania
alert.question("Czy napewno chcesz to zrobic?", 1);- dla wyświetlenia pytania o wykonanie czynności.
Zwróć uwagę, że w ostatnim przykładzie przekazujesz nr funkcji do wykonania (1) w przypadku akceptowanie czynności



