03.03.2016
Leveres på papir når ferdig - Ingen hjelpemidler
Gi et eksempel der det er rimelig å ha en lytterfunksjon koblet til flere komponenter.
Radioknapper, sjekkbokser, piltaster og tastatur-behandling er eksempler.
Hensikten er ofte å unngå at samme kode blir gjentatt i flere forskjellige lytterfunksjoner.
Gi t eksempel der det er rimelig å ha flere lytterfunksjoner koblet til samme komponent.
Ønsker å registrere flere typer hendelser på samme komponent, for eksempel både museklikk og tastetrykk.
(Eventuelt hvis samme knapp skal utløse flere ting, eksempelvis både lyd og gå videre,
men egentlig bedre å grene opp dette videre fra samme lytterfunksjon.)
Nevn eksempler på de vanligste muse-hendelser. (Eksempelvis MouseEvent.CLICK)
MOUSE_DOWN, MOUSE_UP, MOUSE_MOVE, CLICK, MOUSE_IN, MOUSE_OUT, ROLL_INN, ROLL_OUT,
RIGHT_CLICK, DOULBE_CLICK, SCROLL.
Hvilken egenskap i et hendelsesobjekt (Event) kan vi bruke til å finne ut hvilken komponent som utløste hendelsen?
target: Denne egenskapen inneholder komponenten som utløste hendelsen.
(currenttarget: Denne egenskapen er komponenten som kaller opp lytterfunksjonen, og trenger ikke være komponenten som utløste hendelsen.)
Når brukeren taster Enter-knappen i et tekstfelt, med navn inntastingTf, ønsker du å få utført koden i en funksjon med navn inntastingFerdig.
Skriv nødvendig kode for å koble opp en lytterfunksjon og kod lytterfunksjonen.
inntastingTf.addEventListener(KeyboardEvent.KEY_DOWN, inntastingFerdig);function inntastingFerdig(evt:KeyboardEvent):void { if(evt.keyCode == Keyboard.ENTER ) { // gjør det som skal gjøres }//if }//inntastingFerdig()
Når vil en lytterfunksjon tikk() bli utført, hvis vi har gjort denne oppkoblingen:
stage.addEventListener(Event.ENTER_FRAME, tikk);Hver gang Flash tegner et nytt bilde (keyframe), noe som skjer 24 ganger i sekundet hvis framerate er 24.
En sjekkboks med navn ekstrautstyrChk er koblet til lytterfunksjonen sjekkBoksSjekker().
Skriv kode for lytterfunksjonen slik at den boolske variabelen med navn bonus blir satt til true hvis sjekkboksen er haket ut.function sjekkBoksSjekker(evt: Event) : void { if ( ekstrautstyrChk.selected) { bonus = true; }//if }//sjekkBoksSjekker()eller rett og slett direkte:function sjekkBoksSjekker(evt:Event): void { bonus = ekstrautstyrChk.selected; // selected er true eller false! }//sjekkBoksSjekker()
Du har tre radioknapper som på skjermen er merket Alternativ 1, Alternativ 2 og Alternativ 3.
Radioknappene har navnene A1_Rb, A2_Rb og A3_Rb.Radioknappene er allerede koblet opp mot lytterfunksjonen alternativValgt().
Skriv kode for lytterfunksjonen alternativValgt() slik at funksjonen utforEn() blir utført
hvis Alternativ 1 er valgt, utforTo() blir utført hvis Alternativ 2 er valgt og utforTre()
blir utført hvis Alternativ 3 er valgt.function alternativValgt(evt: Event): void { if (evt.target == A1_Rb ) { // Eventuelt bare: if( A1_Rb.selected ) {... utforEn(); else if (evt.target == A2_Rb) { utforTo(); else if (evt.target == A3_Rb) { utforTre(); }//if }//alternativValgt()
Hvilken egenskap i Slider og NumericStepper kan brukes for å finne ut hva brukeren har valgt i disse to komponentene?
Egenskapen value.
Hvilke egenskaper i ComboBox kan du bruke for å finne ut hva brukeren har valgt i denne komponenten?
Egenskapene: .selectedItem.Label eller .selecteedItem.Data og .selectedIndex
Alle hjelpemidler.
Leveres i It's Learning-mappen "Prøve 03.03.2016 - Levering av praktisk oppgave"
Lag en applikasjon som ser omtrent slik ut:
I den numeriske stepperen skal brukeren kunne velge et tall fra og med 1 til og med 10.
I komboboksen skal brukeren kunne velge enten Mynt eller Terning.
Når knappen "Utfør eksperiment!" trykkes skal
applikasjonen simulere kast med
enten mynt eller terning så mange ganger som angitt i den
numeriske stepperen.
(Mynt og kron gies verdiene 0 og 1.)
I tekstfeltet nederst skal applikasjonen skrive ut gjennomsnittsverdien av kastene.
( Et terningkast simuleres som kjent omtrent slik: Math.floor(Math.random()*6)+1 .)
Skriver her bare bruddstykker av de viktigste kodebitene:
// knapp har navn: utfor_Btn // komboboks har navn: type_Cb // numerisk stepper har navn: antallkast_Ns// Nok med bare en lytter på knapp:const MYNT: int = 0; const TERNING: int = 1;utfor_Btn.addEventListener(MouseEvent.CLICK, knappKlikket);function knappKlikket(evt: Event): void { var type: int = type_Cb.selectedIndex; var sum: int = 0; var gs: Number = 0.0;for(var i:int = 0; i< antallkast_Ns.value; i++) { if (type == MYNT) { // eller selectedItem.label=="Mynt" sum += int(Math.random()*2); } else if (type == TERNING) { sum += int(Math.random()*6)+1; }else { // feilmelding/utvidelser }//ifgs = sum/antallkast_ns.value; resultat_Tf.text = gs.toPrecision(2); }//knappKlikket()