Model obsługi zdarzeń języka ActionScript 3.0

Język ActionScript 3.0 wprowadza pojedynczy model obsługi zdarzeń, który zastępuje różne modele obsługi, jakie istniały w poprzednich wersjach języka ActionScript. Nowy model zdarzeń jest oparty na specyfikacji Document Object Model (DOM) Level 3 Events Specification.

Dla programistów, którzy mają doświadczenie w używaniu metody addListener() języka ActionScript 2.0, pomocne może być określenie różnic między modelem obsługi zdarzeń w języku ActionScript 2.0 a modelem w języku ActionScript 3.0. W poniższej liście przedstawiono kilka z najważniejszych różnic między tymi dwoma modelami:

  • W celu dodania programów nasłuchiwania zdarzeń w języku ActionScript 2.0 w niektórych przypadkach należy użyć metody addListener() , a w innych metody addEventListener() — natomiast w języku ActionScript 3.0 we wszystkich przypadkach należy korzystać z metody addEventListener() .

  • W języku ActionScript 2.0 nie ma przepływu zdarzeń, co oznacza, że metoda addListener() może być wywoływana tylko dla obiektu, który rozgłasza zdarzenie, natomiast w języku ActionScript 3.0 metoda addEventListener() może być wywoływana dla dowolnych obiektów, które są częścią przepływu zdarzeń.

  • W języku ActionScript 2.0 detektory zdarzeń mogą być funkcjami, metodami lub obiektami, a w języku ActionScript 3.0 tylko funkcje i metody mogą nasłuchiwać zdarzeń.

  • Składnia on( event ) nie jest obsługiwana w języku ActionScript 3.0, dlatego nie można dołączyć kodu zdarzenia ActionScript do klipu filmowego. W celu dodania programu nasłuchiwania zdarzeń można użyć tylko metody addEventListener() .

    Poniższy przykład, który nasłuchuje zdarzenia MouseEvent.CLICK dla komponentu Button o nazwie aButton , przedstawia prosty model obsługi zdarzeń języka ActionScript 3.0:

    aButton.addEventListener(MouseEvent.CLICK, clickHandler); 
    function clickHandler(event:MouseEvent):void { 
    trace("clickHandler detected an event of type: " + event.type);  
    trace("the event occurred on: " + event.target.name);  
    }

    Więcej informacji na temat obsługi zdarzeń w języku ActionScript 3.0 zawiera sekcja Programowanie w języku ActionScript 3.0 . Więcej informacji na temat obsługi zdarzeń w języku ActionScript 3.0 dla składników zawiera sekcja Obsługa zdarzeń .