Her må dere sjekke ut at dere klarer:
- Å lage animasjonen.
- Bruke enten Flash eller Audacity til å redigere lydfilen.
- Lage knapp som som starter og stopper lydavspilling.
Best å gjøre dette med SoundChannel, slik det går frem av side 254-255 i læreboken.
(Andre måter er vist på side 250 og 251, men fungerer ikke så bra.)
I oppgave 2 og 3 brukes ordet "rutine". Uklart om de mener vi bare skal lage funksjoner eller om vi skal lage fullverdige applikasjoner med brukergrensesnitt.
Jeg har her valgt å lage applikasjoner.
Bildene av instrumentene er på no.wikipedia.org/wiki/Flyinstrumenter.
Lagres og importeres i Flash. I Flash konverter vi bildene til symboler og passer på å angi at de skal være Button og ikke MovieClip!Lytterfunksjonene kan da gå videre til de forskjellige applikasjonene som vi kan legge i forskjellige nøkkelrammer med gotoAndPlay()-funksjonen.
De to applikasjonene i a) og b) er enkle å lage.
Selve beregningene kan gjøres omtrent slik:
// 2a)/******************************* Omtrent slik, hvis komponentene Input: txtFart, txtAvstand, btnBeregn Output: txtTid er laget i Flash. *********************************/ // Sett her eller i Flash: txtFart.restrict = "0123456789."; const KNOP: Number = 1.852; //km/hbtnBeregn.addEventListener(MouseEvent.CLICK, beregnTid);/* Henter brukerinput fra txtFart og txtAvstand, beregner tid og skriver ut i txtTid */ function beregnTid(evt: MouseEvent):void { var fart: Number = Number(txtFart.text); var avstand: Number = Number(txtAvstand.text); var tid: Number = 0.0; var timer: int = 0; var minutter: int = 0; if (isNaN(fart) || isNaN(avstand)) { txtTid.text = "NaN"; trace("Feilmelding: Fart eller avstand ikke forstått!"); } else { //t = s/v: tid = avstand/(fart*KNOP); // I timer timer = Math.floor(tid); // Stryker desimaler minutter = Math.floor((tid - timer)*60); txtTid.text = String(timer) + " h "+minutter + " min"; }//if }//beregnTid()// 2b) /******************************* Tilsvarende 2a): const FOT2METER: Number = 0.3048; var hoydeIFot: Number = Number(txtHoyde.text); ... var hoyde: Number = hoydeIFot*FOT2METER; ... txtResultat.text = String(hoyde);
Oppslaget av avstandene gjøres som side 110-111 i læreboken.
Dette kan gjøres som i oppgave 6 på prøven 04.04.13, men koden der kan forenkles noe, ved å legge indeksene til byene direkte i komboboksene i data-delen,
eksempelvis vil den første komboboksen (fra-by) ha label: Gardermoen og data: 0 .Da slipper vi å slå opp indeksene i en egen tabell med indexOf, slik det er vist i eksemplet i boken og på prøven 04.04.13, indeksene ligger ferdig i komboboksene
vi lager for fra-byer og til-byer.Da kan koden bli seende omtrent slik ut:
// 3) /***************************************** Forutsetter komboboks cbFraBy og cbTilBy, der label er satt til bynavn og data til riktig indeks for tabelloppslag. *****************************************/var avstander: Array = [ [ 0,40,60,100,150,200], [40, 0,50, 80,130,180] ];...
var indeksfraby: int = cbFraBy.selectedItem.data; var indekstilby: int = cbTilBy.selectedItem.data;
var avstand: int = avstander[indeksfraby][indekstilby];
var tid: Number = avstand/(fart*KNOP);
...
Vår mal, for applikasjoner, har vært:
Men, her foreslår oppgaven hovedpunkter, for nettsider, så
vi følger den:
(Dette er bare i overskrifts- og stikkordsform, må skrive litt
mer enn det som står her, men det er en grei disposisjon
for det planleggingsdokumentet som må skrives.)