Rød-merket:
Henger lytteren tikk() på stage som reagerer på hendelsen Event.ENTERFRAME, som skjer i samme takt som Framerate. (FR)
tikk() teller opp sekunder, regner ut totalt energiforbruk (kcal) og oppdaterer søyle.
Blå-merket:
Henger lytteren på tidUte() på en timer t: TIMER, som reagerer på hendelsen TimerEvent.COMPLETE.
tidUte() skifter til neste ramme.
Rammene har kode som oppdaterer energiforbruket i de fire fasene og starter en ny timer i hver fase som bestemmer hvor lenge fasen varer.
/******************************** Oppgave 1 Skisse: Uten lyd og bilder *********************************/const MAKS_KALORIER: Number = 2500; // 2500 kcal når scale = 1var tid: int = 0; // Tid i 24-dels sekund.var kcal_per_time: Number = 0;var kcal: Number=0; // Kilokalorier totaltvar framenummer: int = 2; // 2,3,4 og 5var t: Timer=null; // Lager ny i hver ramm// Henger lytter på Flash-klokke (FrameRate=24) stage.addEventListener(Event.ENTER_FRAME,tikk);// Kjøres hvert 24-dels sekund. // (Et sekund tilsvarer to timer i simulert virkelighet.) function tikk(evt: Event):void { trace("tikk():"); tid++; kcal += 1/24*2*kcal_per_time; // Legg til soyle.scaleX = kcal/MAKS_KALORIER; trace("Tid: "+tid+" kcal: "+kcal); trace("scaleX: " + soyle.scaleX+" width: "+soyle.width); }//tikk()// Kjøres hver gang timer sender TimerEvent.COMPLETE function tidUte(evt: TimerEvent):void { trace("tidUte():"); framenummer++; if(framenummer==6){ framenummer=2; }//if siste frame gotoAndStop(framenummer); trace("Går til frame nr: " + framenummer); }//tidUte()
/*********************** Ramme nr 2: Søvn ************************/stop();// Nytt døgn, nullstiller: tid=0; kcal=0;// Justerer energiforbruk og timer: kcal_per_time=92;t=new Timer(1000,4);t.addEventListener(TimerEvent.TIMER_COMPLETE,tidUte);t.start();
kcal_per_time=110;t=new Timer(1000,3);t.addEventListener(TimerEvent.TIMER_COMPLETE,tidUte);t.start();
Tilsvarende ramme 2 og 3...
Komponenter:
Aktivitet: Komboboks: aktivitet_Cb Vekt: Tekstfelt: vekt_Tf Regn ut: Knapp: regnut_Btn Energi: Tekstfelt: energiforbruk_Tf
const STILLE: int = 0; const TUR: int = 1;regnut_Btn.addEventListener(MouseEvent.CLICK,regnUt);function regnUt(evt: MouseEvent): void {var vektStr: String = vekt_Tf.text.replace(",",".");var vekt: Number = Number(vektStr);if(isNaN(vekt)) { energiforbruk_Tf.text="Du har skrevet noe ulovlig i vekt"; } else {var PAL: Number = 0.0; if(aktivitet_Cb.selectedIndex==STILLE) { PAL = 1.2; }else if(aktivitet_Cb.selectedIndex==TUR) { PAL = 1.4; }else{ trace("Feil valg i vekt-komboboks"); }//ifvar BMR: Number = 35.27 + (0.558*vekt); var energiforbruk: Number =BMR*PAL;energiforbruk_Tf.text=energiforbruk.toFixed(0);}//if isNaN()}//regnUt()