Gebeurtenisafhandelingsmodel van ActionScript 3.0

ActionScript 3.0 introduceert een enkel gebeurtenisafhandelingsmodel ter vervanging van de verschillende gebeurtenisafhandelingsmechanismen die in vorige versies van ActionScript bestonden. Het nieuwe gebeurtenismodel is gebaseerd op de Document Object Model (DOM) Level 3 Events Specification.

Voor ervaren ontwikkelaars die de methode addListener() in ActionScript 2.0 gebruiken, kan het handig zijn de verschillen aan te geven tussen het gebeurtenislistenermodel van ActionScript 2.0 en het gebeurtenismodel van ActionScript 3.0. In de volgende lijst worden enkele belangrijke verschillen tussen de twee gebeurtenismodellen beschreven:

  • U kunt gebeurtenislisteners in ActionScript 2.0 in sommige gevallen met addListener() en in andere gevallen met addEventListener() toevoegen, terwijl u in ActionScript 3.0 in alle gevallen addEventListener() gebruikt.

  • ActionScript 2.0 kent geen gebeurtenisstroom, dus de methode addListener() kan alleen worden aangeroepen op het object dat de gebeurtenis uitzendt, terwijl in ActionScript 3.0 de methode addEventListener() op elk object dat deel uitmaakt van de gebeurtenisstroom kan worden aangeroepen.

  • In ActionScript 2.0 kunnen gebeurtenislisteners functies, methoden of objecten zijn, terwijl in ActionScript 3.0 alleen functies of methoden gebeurtenislisteners kunnen zijn.

  • De syntaxis on( gebeurtenis ) wordt niet meer ondersteund in ActionScript 3.0. Het is dus niet mogelijk een ActionScript-gebeurteniscode aan een filmclip te koppelen. U kunt addEventListener() alleen gebruiken om een gebeurtenislistener toe te voegen.

    In het volgende voorbeeld, waarin naar een gebeurtenis MouseEvent.CLICK op een component Button met de naam aButton wordt geluisterd, wordt het basismodel voor gebeurtenisafhandeling van ActionScript 3.0 getoond:

    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);  
    }

    Raadpleeg ActionScript 3.0 programmeren voor meer informatie over gebeurtenisafhandeling van ActionScript 3.0. Zie Gebeurtenissen afhandelen voor meer informatie over gebeurtenisafhandeling van ActionScript 3.0 voor componenten.