Programmering i ActionScript

Kapittel 11 - Hendelser


Figuren side 213 er litt enkel, denne er bedre:

Denne figuren forutsetter at du har hengt på lytter med instruksjonen:

knapp.addEventListener(MouseEvent.CLICK,lytterfunksjon);

Mer om musens egenskaper og muse-hendelser:

Side 216.

Hvis vi henger lytteren på et objekt lengre opp i displayliste-hierarkiet, må vi bruke event-egenskapene

Eksempel:

Hvis vi henger en lytterfunksjon lytter på et movieclip mc, som inneholder tre knapper k1, k2 og k3,
kan vi sjekke hvilken knapp som er trykket med:

function lytter(evt: Event):void {

   if(evt.target==k1) {

      ...

   }else if(evt.target==k2) {

      ...

   }else if(evt.target==k3) {

      ...

   }//if

}//lytter()

evt.currenttarget inneholder derimot objektet mc, altså objektet som lytterfunksjonen er koblet til.

(Med instruksjonen:  mc.addEventListener(MouseEvent.CLICK,lytter); )

Mer om tastaturhendelser:

Side 223.

Tidsstyring ( Viktig! ):

stage.addEventListener(Event.ENTER_FRAME,tikk);

Denne instruksjonen setter opp en lytterfunksjon, "tikk", som vil bli kalt hver gang Flash skifter bilde eller oppdaterer.
Dette betyr at hvis frame-rate er 24, så vil tikk bli kalt 24 ganger hvert sekund.

Hvis man ønsker å styre tiden hvor ting blir utført selv, uavhengig av framerate, bruker man en timer:

var timer: Timer = new Timer(2000);	// Intervall: 2000 millisekuner = 2 sekunder
timer.addEventListener(TimerEvent.TIMER, tikk);
function tikk(evt: TimerEvent): void {

   ...

   evt.updateAfterEvent();		// updateAfterEvent(): Umiddelbar oppdatering

                                        // av skjerm istedenfor å vente på framerate-oppdatering!

}//tikk()

Mer om Timer på side 226.

Lage egne hendelser:

Side 230.

Øvelse/eksempel: Lage en klokke.

Denne øvelsen bør gjøres. Eksperimenter med varianter og varierende tidsstyring. Bruk både Timer og ENTER_FRAME til tidsstyringen.

Side 228.