Taking en nærmere titt på Actionscript 3.0 Hendelseswork
Del
Del
Del
Del
Dette Cyber mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.
I denne opplæringen vil jeg forklare om Actionscript 3.0 Hendelseswork. Etter denne opplæringen bør du ha en klar forståelse av hvordan hendelser, event dispatchers og event lyttere fungere.
Hva har du tenkt å lære?
Fordi AS3 hendelsen rammeverket er stort, vil vi se på alle de forskjellige tingene som utgjør hendelsen rammeverket. Vi skal lære om følgende:
Arrangementer
Hendelses dispatchers
Hendelses lyttere
Hendelses flyt
Ofte brukt hendelser
Og noen tips & triks
Trinn 1: The Event Work forenklet
Jeg tror du ville ha en tøff tid å forstå hendelsen rammen hvis vi hopper rett inn i teknisk sjargong, så jeg skal først beskrive en virkelig situasjon. Hele situasjonen er en metafor for hendelsen rammeverk. Ok, så here we go:
Jeg er en ivrig leser av Computer Arts Ok, vi har flere ting skjer: En hendelse er et objekt som beskriver en hendelse, i Trinn 1 De fleste ganger vil du se en hendelse som er skrevet i en struktur som ligner på dette: Denne kodebit består av to ting: Arrangementet typen er faktisk en statisk konstant streng. Det høres kanskje rart ut, men en hendelse er ikke noe annet enn en streng. Prøv å kjøre dette tekstutdraget Du får som output mousemove En hendelse skjer alltid et eller annet sted. Hvor hendelsen skjer er der det blir avfyrt (sendes). Røttene til utsending hendelser er i klassen EventDispatcher. Innser at der hendelsen er avsendt er der det skjer. Så hvis filmklipp A For å gjøre ting enkelt, har alle visningsobjekter den innebygde funksjonen dispatchEvent (hendelse: Hendelse) Men de fleste gangene du ikke vil ekspedere hendelser manuelt, de fleste ganger hendelser sendes automatisk. For eksempel, hvis jeg klikker filmklipp A, det vil automatisk sende hendelsen MouseEvent.CLICK Når en bestemt hendelse skjer, vi, som Flash-utviklere, ønsker å gjøre noe for å svare på denne hendelsen. Hendelsen lyttere er hva du trenger. Hendelsen lyttere ikke har sin egen klasse, nei de er litt annerledes. Hendelsen lyttere er lagt til et objekt. Hendelsen lyttere er objekter som "lytter" til en bestemt hendelse. Når denne hendelsen skjer, deretter funksjon vil bli kalt, en handler (funksjon) Se på bildet nedenfor, som viser syntaksen bak funksjon addEventListener () Egentlig de er ikke alle parametere i addEventListener metoden aksepterer, er det fortsatt tre som jeg ikke har nevnt. Du vil nesten aldri bruker dem, spesielt når du nettopp har begynt å bruke hendelsen lyttere. La oss igjen se på strukturen i addEventListener metoden Så la oss diskutere de siste 3 parametre: Ta en hendelse lytteren er like enkelt som å legge en. Når arrangementet oppstår som en hendelse lytteren lytter etter, kaller det en funksjon. Denne funksjonen kalles handler Legg merke til argumentet i behandleren, er dette argumentet obligatorisk. Lytteren funksjonen har bare ett argument, og er ikke lov å ha mer. Denne hendelsen inneholder informasjon om hendelsen, vi skal snakke om dette i trinn 9 Nå ønsker vi myMC til svare på utsendt hendelsen, så vil vi legge til en hendelse og etterpå behandleren funksjonen. Vår koden vil se ut slik: Etterpå teste filmen (Windows: Ctrl + Enter, Mac: Cmd + Enter) Har du fått noen utgang.? Nei? Vel, heller ikke I. Vi skal se på hva som går galt i neste trinn Så hva som går galt? Vel, det kan ikke være en syntaksfeil, minst Jeg Jeg håper du har innsett hva som er gått galt: arrangementet blir sendt før en hendelse lytteren er lagt til myMC. Så når arrangementet lytteren er lagt, det er for sent, hendelsen har skjedd. Heldigvis er det lett å løse, bare endre rekkefølgen, og først legge til hendelsen lytteren, så etterpå sende hendelsen: Så hvorfor gjorde vi alt dette? Vel, vil du sannsynligvis oppleve dette problemet, og det kan ta en stund å innse hva som skjer. Det er bedre å vise deg problemet og lære deg hvordan å løse det Hver handler funksjon har ett argument;. hendelsen argument. Dette argumentet inneholder data om hendelsen og hendelses sentralen. Parameteren inneholder egenskaper som vi ønsker å lese. Her er en liste over noen av de mest brukte dem: Med dette kan vi bruke den samme behandleren for ulike typer arrangementer. Hvordan? Vel, vi skal diskutere dette i neste trinn Ok, først la oss se på dette kodebit: Vi bruker to hendelsene, nemlig MouseEvent.MOUSE_DOWN Hotell og MouseEvent.MOUSE_UP Nå kan vi bruke i stedet for to handlere (nemlig downHandler Hotell og upHandler Ok, vi har satt opp vår handler og det fungerer, men vi ønsker at våre handler om å gjøre noe konkret, avhengig av hvilken hendelse sendes til behandleren. Heldigvis, kan vi bruke event.type La oss nå si at et klikk skjer på en MovieClip, la oss kalle det MCA Arrangementet starter på øverste nivå, på scenen Ok, kult, men hva kan jeg bruke dette til? Fordi vi nå vet at en hendelse reiser gjennom alle foreldrene til sentralen, kan vi bruke bare en Ok, så la oss lage noen flere filmklipp inni hverandre. Du kan gjøre dette selv, eller bare bruke den trinn 11.fla fil gitt. Vi vil opprette 3 filmklipp, og vi vil gi dem forekomstnavn redMC La oss nå begynne å skrive kode. Jeg har allerede opprettet et lag som heter Handlinger Vi ønsker å vite hvilken knapp som blir klikket, så hvorfor vi legge til en hendelse lytteren til container? Vel, se på bildet under: Som du ser, arrangementet blir sendt på redMC, men det vil boble Nå skal vi bruke event.target, fordi event.target er hendelsen sentralen, og arrangementet sentralen er redMC. Så hvordan vi kan bruke event.target? Vi kan se etter event.target.name, som returnerer forekomsten navn som en streng. Så vi kan bare bruke normal hvis Nå har du en god forståelse av hendelsen rammeverk, men for å oppnå noe, er det viktigste å vite hvilke arrangement som skal brukes. Et flott sted å sjekke hvilke hendelser eksisterer, er Actionscript 3.0 Språk og komponenter Reference. Bare klikk en hendelse som inneholder klasse, som MouseEvent, og se på hva hver hendelse er Denne hendelsen oppstår når brukeren beveger musen. Hvis du legger til en hendelse lytteren å lytte til denne hendelsen, igjen, la oss si, en MovieClip heter myMC, så du vil vite når musen beveger seg over myMC oppstår Denne hendelsen når brukeren beveger seg over (svever). Denne hendelsen oppstår bare når brukeren flytter markøren fra et annet sted over objektet. Bevege musen over objektet er da ikke lenger tilfelle MouseEvent.MOUSE_OVER, men hendelsen MouseEvent.MOUSE_MOVE Denne hendelsen er nettopp det motsatte av MouseEvent.MOUSE_OVER. . Dette er når brukerens markøren flyttes bort fra objektet, eller som de (gutta som skapte AS3) kaller det, av objektet Denne hendelsen oppstår når brukeren trykker på muse ned, mens det blir holdt nede Denne hendelsen er nettopp det motsatte av MouseEvent.MOUSE_DOWN. . Når brukeren slipper museknappen, så hendelsen MouseEvent.MOUSE_UP oppstår Vel navnet gjør allerede det ganske klart når dette skjer. Denne hendelsen oppstår når brukeren klikker (med venstre museknapp) Vel denne hendelsen oppstår når brukeren klikker to ganger (med venstre museknapp). Gjør oppmerksom på at når MouseEvent.DOUBLE_CLICK skjer, at MouseEvent.CLICK skjer for andre gang Hvis du nå teste filmen og dobbeltklikk, ingenting vil skje. Hvorfor? Vel som standard filmklipp (og nesten alle skjerm objekter) har den egenskapen doubleClickEnabled satt til false. Så MouseEvent.DOUBLE_CLICK vil ikke bli sendt ut. Bare sette den til sann, og alt vil fungere fint Denne hendelsen oppstår hver gang objektet går inn i en ny ramme (ja, det høres litt rart). Vel i utgangspunktet skjer dette arrangementet på frekvensen av bildefrekvensen. Det betyr at hvis filmen har en bildefrekvens på 30 bilder i sekundet, da arrangementet vil bli kalt 30 ganger i sekundet. Hva vil du bruke denne hendelsen for? Du kan bruke denne hendelsen til å få ting til å skje gradvis. For eksempel kan du øke objektets x koordinere med 5, på frekvensen av bildefrekvensen oppstår Denne hendelsen når objektet er ferdig hva det gjorde. De fleste ganger du vil bruke det til ting som trenger å laste noe, eller for ting som spiller en form for media. En URLLoader laster en URLRequest, etter URLLoader fullført lasting, så får vi laste disse dataene til en annen loader og etterpå legge lasteren til scenen Denne hendelsen oppstår når flash player eller siden der blitsen inne er endret. Du kan bruke denne hendelsen til å reposisjonere gjenstander etter resizing har skjedd Denne hendelsen oppstår når alle Denne hendelsen er nettopp det motsatte av KeyboardEvent.KEY_DOWN, oppstår denne hendelsen når alle Selvfølgelig, det er ganske nytteløst å svare på vilkårlig tast plakater (med unntak av en skjerm saver), så vi trenger å hente informasjon om hvilken tast er trykket. Heldigvis er noen av nøklene bygget inn i klassen KeyboardEvent, disse er booleans og er satt til true når det blir presset ned. Dette bygget i booleans er: Så nå kan vi bruke dette til å være mer konkret hvilken tast må trykkes før vi gjør noe Du kan lure på, ok, hva med alle de andre tastene? Vel det er noe som heter nøkkelkode Nå er det enklere å lagre nøkkelkodene i en variabel (eller hvis du er hardcore, i en klasse) og bare bruke den variabelen, i stedet for nøkkel koden Med nøkkelkoder du kan få ganske mye gjort, men det noen ganger er ikke det du trenger. For eksempel er den samme tasten brukes for tegnene en Anmeldelser og En Ok, dette fungerer Men trenger da må vi huske disse tegnkoder? Nei. Heldigvis kan vi bruke funksjonen charCodeAt (), som returnerer tegnet koden til en karakter (i en String). charCodeAt () tar som standard det første tegnet ut av strengen. charCodeAt (0) er det første tegnet, charCodeAt (1) den andre, etcetera Nå kan du prøve å skrive følgende: Prøv å teste dette, vil det ikke fungere! Hvorfor? Hvis myMC er et filmklipp, vil den ikke akseptere keyboard input, og dermed tastatur hendelser vil ikke bli sendt ut på filmklipp. Hvis du ønsker myMC å svare, legge til hendelsen lytteren til scenen og deretter gjøre myMC gjøre noe. Prøv å endre myMC fra et filmklipp til et dynamisk tekstfelt, så vil det fungere. Hva om to dynamiske tekstfelt? Hvis brukeren taster, gjør både tekstfelt sende en hendelse? Nei, bare den ene du skriver i. Dette kalles fokusere Denne hendelsen er spesielt bygget for tidtakere. Det blir sendt på et tidsur, som bare nådde forsinkelsen. Dette betyr at du kan bruke denne hendelsen til å gjøre noe veldig presist, på sett tidsintervaller Alle tidtakere har en valgfri andre parameter. Denne parameteren er sett antall gjentakelser av timeren. Dette betyr at når nedtellingen når forsinkelsestiden, vil den starte på nytt. Hvis timeren har gjentatt så ofte som antall gjentakelser, vil det sende hendelsen TimerEvent.TIMER_COMPLETE Det var det! Jeg håper at du nå har en grundig forståelse av Actionscript 3.0 arrangement rammeverk. Innser at hendelsene som omtales er ikke alle hendelsene som finnes, jeg bare diskuterte de jeg bruker ofte. Ikke glem å alltid sjekke språket og komponenter referanse, kan det hjelpe deg mye! Det var en glede å skrive for dere! Anmeldelser
og jeg venter hver eneste dag for den nye utgaven. Når jeg får spørsmålet, skal jeg begynne å lese den
Trinn 2:. Analysere hendelsesWork metafor
I motta den nye utgaven. Dette mottak av en sak er en Hendelses
.
.
for hendelsen skal skje. Jeg er et objekt med en hendelse lytteren
lagt til meg. Denne hendelsen lytteren er å lytte til en bestemt hendelse (nemlig mottatt en ny utgave).
Trinn 3:. Teknisk sjargong - Arrangements
< p> Jeg har nevnt flere ting:
Hendelses
EventDispatcher
Hendelses lytteren
behandleren /lytteren funksjon
arrangementet er ankomsten av en ny sak.
MouseEvent.CLICK
MouseEvent
dette er den klassen som inneholder en eller flere hendelser. Dette er alltid skrevet i Camelcase.
dette er hendelsestypen. Dette er alltid skrevet med store bokstaver.
spore (MouseEvent.MOUSE_MOVE);.
. Vi har nettopp spores konstant MOUSE_MOVE, som er inne i MouseEvent klassen. En hendelse er en streng! Men denne strengen representerer forekomsten av (i dette eksempelet) bevegelse av musen
Trinn 4:. Teknisk sjargong - EventDispatcher
sender en hendelse, da en hendelse lytteren (event lyttere vil bli forklart i trinn 5) lagt til filmklipp B
ikke ville motta denne hendelsen. Anmeldelser
, akkurat som mange andre klasser
Var myMC:. MovieClip = new MovieClip (); myMC .dispatchEvent (ny hendelse (MouseEvent.CLICK));
Trinn 5:. Teknisk sjargong - Arrangementslist
.
, som brukes til å legge til en hendelse lytteren:
addEventListener. (Type: String, lytteren: Funksjon, useCapture: Boolean = false, prioritet: int = 0, useWeakReference: Boolean = false): void
useCapture Bilde: Når denne parameteren er satt til sann, vil vi lytte til hendelsen i registreringsfasen. Som standard er dette parameter er satt til false, og dermed vi lytte til hendelsen i målet og boble fase. Vi vil diskutere hendelsen flyt i Trinn 10
prioritet Bilde:. Selv om det kan virke som om alle hendelses lyttere arbeide samtidig, de faktisk ikke. Noen ganger kan de komme i konflikt med hverandre. Dette er for å sørge for at en bestemt hendelse lytteren har en høyere prioritet enn en annen hendelse lytteren
useWeakReference Bilde:. Når denne paramater er satt til true vil det skape en svak kobling mellom objektet og event lytteren. Vel, hva betyr dette? Normalt objekter komme søppel samles hvis det ikke er noen referanser til dem. Når objektet er fjernet der en hendelse lytteren er lagt, vil det fortsatt eksistere hvis det blir referert et annet sted. Dette skjer med sterke minne referanser
. Med svake minne referanser
tilfelle lytteren blir fjernet når objektet det er lagt til blir fjernet. Jeg personlig setter denne parameteren til true (så jeg bruker svake minne referanser).
//Dette legger en hendelse lytteren til stagestage .addEventListener (MouseEvent.CLICK, clickHandler); //dette fjerner hendelsen lytteren lagt til stagestage.removeEventListener (MouseEvent.CLICK, clickHandler);
Trinn 6: Handler /List Funksjon
eller lytteren funksjon
. Se på bildet nedenfor, som viser syntaksen til behandleren:
Trinn 7:. Legge til en hendelse lytteren og Handler
//skaper vår myMC film clipvar myMC: MovieClip = new MovieClip (); //la myMC sende hendelsen MouseEvent.CLICKmyMC.dispatchEvent (ny hendelse (MouseEvent.CLICK)); //legge til en hendelse lytteren til myMC, som lytter til hendelsen MouseEvent.CLICK, og vil ringe clickHandlermyMC.addEventListener (MouseEvent.CLICK, clickHandler); //definere handler functionfunction clickHandler (hendelse: hendelse) {trace ("Jeg hørte hendelsen MouseEvent.CLICK ");}
Trinn 8:. Kode Bestill
ikke får noe. Nei, dette er teknisk sett ikke engang en feil. Se på koden igjen, men denne gangen huske at koden vil bli henrettet linje for linje:
//skaper vår myMC film clipvar myMC: MovieClip = new MovieClip (); //la myMC sende hendelsen MouseEvent.CLICKmyMC. dispatchEvent (ny hendelse (MouseEvent.CLICK)); //legge til en hendelse lytteren til myMC, som lytter til hendelsen MouseEvent.CLICK, og vil ringe clickHandlermyMC.addEventListener (MouseEvent.CLICK, clickHandler); //definere handler functionfunction clickHandler (hendelse: hendelse) {trace ("Jeg hørte hendelsen MouseEvent.CLICK");}
//skaper vår myMC film clipvar myMC: MovieClip = new MovieClip (); //legge til en hendelse lytteren til myMC , som lytter til hendelsen MouseEvent.CLICK, og vil ringe clickHandlermyMC.addEventListener (MouseEvent.CLICK, clickHandler); //la myMC sende hendelsen MouseEvent.CLICKmyMC.dispatchEvent (ny hendelse (MouseEvent.CLICK)); //definere handler functionfunction clickHandler (hendelse: hendelse) {trace ("Jeg hørte hendelsen MouseEvent.CLICK");}
Trinn 9: The Event Argument
target Bilde:. Dette returnerer målobjektet og dermed arrangementet sentralen om hendelsen
< b> currentTarget Bilde:. Dette returnerer tiden målrettet objekt i tilfelle flyt, vil vi snakke om hendelsen flyt i Trinn 10
skriv Bilde: Dette vil returnere arrangementet strengen. Verdien blir alltid skrevet i Camelcase. Så MOUSE_DOWN har verdien mousedown.
Trinn 10:. Flere Events, One List Funksjon
stage.addEventListener ( MouseEvent.MOUSE_DOWN, downHandler); stage.addEventListener (MouseEvent.MOUSE_UP, upHandler), funksjon downHandler (event: MouseEvent) {trace ("Down");} funksjon upHandler (event: MouseEvent) {trace ("Up");}
. Den første hendelsen er den hendelsen når musen trykker på museknappen og holder den ned
. Når personen utgivelser denne knappen, skjer da hendelsen MouseEvent.MOUSE_UP. Museknappen går opp
etter slippe den.
) bare ett handler . Fjern koden vi har skrevet og skriver følgende:
stage.addEventListener (MouseEvent.MOUSE_DOWN, handler); stage.addEventListener (MouseEvent.MOUSE_UP, handler), funksjon behandleren (event: MouseEvent) {trace ("Noe har skjedd ... ");}
. La oss bruke det
stage.addEventListener (MouseEvent.MOUSE_DOWN, handler); stage.addEventListener (MouseEvent.MOUSE_UP, handler), funksjon behandleren (event: MouseEvent)! {If (event.type == "mousedown") {trace ("Ned"); } else {trace ("Up"); }}
Trinn 11: Hendelses Flow
. Arrangementet betyr ikke bare bli sendt på MCA, nei, reiser tilfelle gjennom hele spilleren. Dette reiser kalles hendelsen flyt
, bare tenk hvordan arrangementet strømmer gjennom spilleren.
, etterpå det vil gå gjennom foreldre
av MCA
, inntil hendelsen når mfl. Etterpå arrangementet vil "boble" tilbake fra MCA, tilbake til scenen.
hendelse lytteren, for å spore hendelser av mer enn ett objekt
Trinn 12:. Multiple objekter, en hendelse List
, blueMC Hotell og greenMC
. Etterpå plassere alle disse inne en større MovieClip, heter container
.
, så skrive koden på det laget. Først la oss legge til en hendelse lytteren til container
, lytte til hendelsen MouseEvent.CLICK
, med behandleren heter clickHandler
.
Container.addEventListener (MouseEvent. KLIKK, clickHandler), funksjon clickHandler (event: MouseEvent) {//funksjon kroppen}
tilbake til beholderen. Da arrangementet lytteren lagt til container vil høre arrangementet og vil ringe lytteren funksjon clickHandler. Det samme skjer med blueMC og greenMC.
uttalelser:
container.addEventListener (MouseEvent.CLICK, clickHandler), funksjon clickHandler (event: MouseEvent) {if (event.target.name == "redMC") {spore ("Red"); } If (event.target.name == "blueMC") {trace ("Blue"); } If (event.target.name == "greenMC") {trace ("Green"); }}
Trinn 13: Ofte brukt Hendelser
Trinn 14:. MouseEvent.MOUSE_MOVE
myMC.addEventListener (MouseEvent.MOUSE_MOVE, mouseMoveHandler);. Funksjon mouseMoveHandler (event: MouseEvent) {trace ("Musen beveger seg i over myMC");}
Trinn 15: MouseEvent.MOUSE_OVER
myMC.addEventListener (MouseEvent.MOUSE_OVER, overHandler), funksjon overHandler (event: MouseEvent). {Trace ("Du bare flyttet musen på myMC ");}
Trinn 16: MouseEvent.MOUSE_OUT
myMC.addEventListener (MouseEvent.MOUSE_OUT, outHandler), funksjon outHandler (event: MouseEvent) {trace ("Du har nettopp flyttet musa ut myMC");}
Trinn 17:. MouseEvent.MOUSE_DOWN
myMC.addEventListener (MouseEvent.MOUSE_DOWN, downHandler), funksjon downHandler (event: MouseEvent) {trace ("Den primære museknappen er trykket ned på myMC");}
Trinn 18: MouseEvent.MOUSE_UP
myMC.addEventListener (MouseEvent.MOUSE_UP, upHandler), funksjon upHandler (event: MouseEvent) {trace ("Den primære museknapp har blitt utgitt, mens det var svever over myMC ");}
Trinn 19: MouseEvent.CLICK
myMC.addEventListener (MouseEvent.CLICK, clickHandler), funksjon clickHandler (event: MouseEvent). {Trace ("Du bare klikket myMC");}
Trinn 20: MouseEvent.DOUBLE_CLICK
myMC.addEventListener (MouseEvent.DOUBLE_CLICK, doubleClickHandler), funksjon doubleClickHandler (event: MouseEvent). {Trace ("Du bare dobbeltklikket myMC ");}
myMC.addEventListener (MouseEvent.DOUBLE_CLICK, doubleClickHandler), funksjon doubleClickHandler (event: MouseEvent). {Trace ("Du bare dobbeltklikket myMC");} myMC.doubleClickEnabled = true;
Trinn 21: Event.ENTER_FRAME
myMC.addEventListener (Event.ENTER_FRAME, enterFrameHandler), funksjon enterFrameHandler (hendelse: Hendelse). {MyMC.x + = 5;}
Trinn 22: Event.COMPLETE
Var myURLRequest: URLRequest = new URLRequest ("http: //farm3.. static.flickr.com/2382/1616598266_bafebf0086_o.jpg");var myURLLoader: URLLoader = new URLLoader (myURLRequest); myURLLoader.dataFormat = URLLoaderDataFormat.BINARY; myURLLoader.addEventListener (Event.COMPLETE, completeHandler), funksjon completeHandler (event: Hendelses ) {var loader: Loader = new Loader (); loader.loadBytes (myURLLoader.data); addChild (loader);}
Trinn 23: Event.RESIZE
stage.addEventListener (Event.RESIZE, resizeHandler), funksjon resizeHandler (hendelse: Hendelse). {Trace ("Dimensjonene på scenen er" + stage.stageWidth + "x" + stage.stageHeight);}
Trinn 24: KeyboardEvent.KEY_DOWN
tast trykkes på tasten bord
stage.addEventListener. (KeyboardEvent.KEY_DOWN, keyDownHandler), funksjon keyDownHandler (event: KeyboardEvent) {trace ("Du bare trykket på en tast");}
Trinn 25: KeyboardEvent.KEY_UP
tasten slippes (nøkkelen går opp)
stage.addEventListener (KeyboardEvent.KEY_UP, keyUpHandler), funksjon keyUpHandler (event: KeyboardEvent). {trace ( "Du bare gitt ut en nøkkel");}
Trinn 26: Bruke den innebygde nøkkel booleans
KeyboardEvent.altKey er dette satt til true når alt tasten trykkes ned
KeyboardEvent.commandKey, denne er satt til true når kommandoen. tast trykkes ned (AIR only).
KeyboardEvent.controlKey, denne er satt til true når kontroll (ctrl) tasten trykkes ned (AIR only).
KeyboardEvent.ctrlKey, dette er satt til true når kontroll (ctrl) tasten trykkes ned på Windows. Men på Mac ctrl-tasten er sant når cmd-tasten trykkes.
stage.addEventListener (KeyboardEvent.KEY_DOWN, keyDownHandler), funksjon keyDownHandler (event: KeyboardEvent). {if (event.shiftKey) {trace ("Du bare trykket Shift-tasten "); }}
Trinn 27: Bruke nøkkelkoder
. Hver tast har et visst antall; en nøkkelkode. Vi kan kontrollere nøkkelkoden på nøkkelen som utløste hendelsen. Dette gjøres med event.keyCode, som returnerer et heltall. Klikk her for en liste over viktige koder. Selv om det er for javascript, nøkkelkodene er de samme
stage.addEventListener (KeyboardEvent.KEY_DOWN, keyDownHandler), funksjon keyDownHandler (event: KeyboardEvent). {If (event.keyCode == 65) {trace ("Du bare trykket på en tast "); }}
Div A:. uint = 65; stage.addEventListener (KeyboardEvent.KEY_DOWN, keyDownHandler), funksjon keyDownHandler (event: KeyboardEvent) {if (event.keyCode == A) {trace ("Du bare trykker på en tast"); }}
Trinn 28: Bruke tegnkoder
. Men vi vil fortsatt ønsker å skille mellom de to. Vel, bærer hendelsen tegnkoden for hendelsen sentralen
stage.addEventListener (KeyboardEvent.KEY_DOWN, keyDownHandler), funksjon keyDownHandler (event: KeyboardEvent). {Trace (event.charCode);}
stage.addEventListener (KeyboardEvent.KEY_DOWN, keyDownHandler), funksjon keyDownHandler (event: KeyboardEvent). {if (event.charCode == String (" a ".) charCodeAt ()) {trace (" Du bare trykket på små bokstaver en nøkkel "); }}
Trinn 29: Fokus
myMC.addEventListener (KeyboardEvent.KEY_DOWN, keyDownHandler), funksjon keyDownHandler (event: KeyboardEvent) {trace ("Du bare trykket en tasten, mens du blir fokusert på myMC ");}
. Tastaturet hendelser sendes av objektet som har fokus. Scenen er den eneste gjenstanden som fortsatt har fokus, mens et annet objekt også har fokus
Trinn 30:. TimerEvent.TIMER
Var myTimer: Timer = new Timer (1000, 5); myTimer.start (); myTimer.addEventListener (TimerEvent.TIMER, timerHandler. ), funksjon timerHandler (event: Timerevent) {trace ("ett sekund senere ...");}
Trinn 31: TimerEvent.TIMER_COMPLETE
Var myTimer: Timer = new Timer (1000, 5); myTimer.start (); myTimer.addEventListener (TimerEvent.TIMER_COMPLETE. , timerHandler), funksjon timerHandler (event: Timerevent) {trace ("Timeren har gjentatt 5 ganger");}
Konklusjon