Prøve i kapittel 6 og 7 - 17.11.2014

Kommentarer og løsningsskisser.

Interaktivitet, Lyd og video

Del 1: Teori - uten hjelpemidler

Del 2: Praktisk - med hjelpemidler


Del 1: Teori

Leveres på papir - Ingen hjelpemidler!

Når dere har levert del 1 kan dere ta frem hjelpemidler og gjøre del 2: Praktisk del

Noen av oppgavene krever at du skriver litt kode. Jeg forlanger ikke at koden er 100% korrekt tegn for tegn.

1. Knappe-symboler har en spesiell form for tidslinje. Hvilke 4 tilstander for knappen kan angis på en slik tidslinje?

Se side 167:
Up, Over, Down, Hit.

 

2. Nevn noen eksempler på muse-hendelser. (MouseEvent)

Se side 174:
MouseEvent.CLICK, MouseEvent.DOWN, MouseEvent.UP, MouseEvent.MOUSE_MOVE, MouseEvent.MOUSE_OVER, MouseEvent.MOUSE_OUT.
(Finnes også flere som ikke er nevnt i boken; RIGHT_MOUSE_DOWN osv.)

 

3. Hvilken hendelse (Event) genereres hver gang Flash viser en ny bilderamme. (Altså 24 ganger i sekundet ved standard framerate.)

Se side 193:
Event.ENTER_FRAME.

 

4. Teksten "Gratulerer!" skal vises i et tekstfelt med variabelnavn txtMelding. Skriv nødvendig kode.

Se side 183:
txtMelding.text = "Gratulerer!"; // Tekstfelt har en egenskap text, som inneholder teksten i tekstfeltet.

 

5. Et MovieClip på skjermen med variabelnavnet hjul skal roteres 270 grader med klokken. Skriv nødvendig kode.

hjul.rotation = 270;

 

6. En knapp med navnet btnRoter skal sette igang rotasjonen i oppgave 5. Koden i oppgave 5 forutsetes lagt i en funksjon med navnet roterKlikket. Skriv kode som registrerer lytterfunksjonen på knappen.

btnRoter.addEventListener(MouseEvent.CLICK, roterKLikket);

 

7. Vi skal streame en lyd som ligger på en fil med navnet eksplosjon.mp3. Skriv kodelinjene som får dette til å skje.

Se side 213:
var lydfil = new URLRequest("eksplosjon.mp3");
var lyd = new Sound(lydfil);
var lydkontroll = lyd.play();

 

8. En musikk-CD har en samplingsrate på 44 100 hz og hver måling er lagret i 16 bits. Hvor stor filstørrelse (før komprimering) får et musikkstykke som varer i 4 minutter og er innspilt i stereo? (Sett opp regnestykke, trenger ikke regne ut.)

Se side 201:

Bitrate: 44 100*16*2 = 1 411 200 bit/sekund

Filstørrelse: 1 411 200*4*60 = (338 688 000 bit = 338 688 000/2^20 Mbit = 323 Mbit = 323/8 Mbyte = 40.4 Mbyte)

 


Del 2: Praktisk

Leveres i It's Learning - mappen "Leveringsoppgave 17.11.14" - Alle hjelpemidler

Oppgave:

Tenk deg at du skal lage et program som skal brukes i undervisningen av Pythagoras-setningen.
Brukeren skal se en rettvinklet trekant.
Når brukeren klikker på en side, skal kvadratet på denne siden tegnes i rødt og tekst med arealet av kvadratet skal vises, omtrent som i figuren under:

Når brukeren har klikket på to sider, skal også det tredje kvadratet dukke opp.

Må lage knapp av de tre sidene.

Lage tre kvadrater som passer på riktig plass, gjøre dem om til symboler og regulere synlighet med egenskapen visible.

Lag tre tekstfelt med nødvendig tekst, eksempelvis: "a2 = 9".

Skisse av kode:

/* Forutsetter at sidene er laget som knapper og har navnene:

       katet_a, katet_b og hypotenus_c.

   Kvadratene er konvert til symboler og har navnene:

       kvadrat_a, kvadrat_b og kvadrat_c.

   Tekstfeltene har navnene:

       tf_a, tf_b og tf_c.

*/
var teller: int = 0;	// For å holde orden på hvor mange som er klikket
katet_a.addEventListener(MouseEvent.CLICK, katet_aKlikket);

...		//Tilsvarende for katet_b og hypotenus_c
function katet_aKlikket(evt: MouseEvent) {

   katet_a.visible = true;

   tf_a.visible = true;

   teller = teller +1;

   if(teller == 2) {		//Vis resten

      if(katet_b.visible) {

          hypotenus.visible = true;

          tf_c.visible = true;

      }else{

          katet_a.visible = true;

          tf_a.visible = true;

      }

      // Kode for å videre til nytt skjermbilde eller gjenta...

   }

}
...            //Tilsvarende for katet_bKlikket() og hypotenus_cKlikket()

( Det er selvfølgelig mulig å utvide slik at brukeren kan justere trekanten og at tekstfeltene får informasjon
med tallverdier som er oppdatert i forhold til brukers endringer og slike ting.
)