import flash.events.MouseEvent; import flash.events.KeyboardEvent; /* BMI - kalkulator Eksempel side 65 i PiAS Formel: BMI = vekt/(hoyde*hoyde) Komponenter: txtHoyde: TextField txtVekt: TextField txtResultat: TextField btnBeregn: Button Ting å legge merke til: Konvertering av input (String) til tall (Number) med Number(tekststreng). Bruken av String.replace(",",".") for å skifte fra komma til punktum som desimalpunktum. Bruken av Number.toPrecision(3) for å runde av til 3 gjeldende siffer. (Kan eventuelt bruke toFixed(1) for å sette en desimal istedet.) Dessuten lurt å bruke TextField.restrict = "0-9.," for å begrense input i et tekstfelt til bare tall og desimalskilletegn. En siste sjekk for å takle helt umulige brukere, som for eksempel skriver 34,5.7 eller noe slikt, er å bruke systemfunksjonen isNaN(tall) til å fange opp resterende feilsituasjoner og gi en feilmelding. */ // Restriksjoner på input i tekstfelter: txtVekt.restrict = "0-9.,"; //Kan også gjøres i properties i Flash txtHoyde.restrict = "0-9.,"; // Koble opp hendelser og lytterfunksjoner: //Museklikk på btnBeregn: btnBeregn.addEventListener(MouseEvent.CLICK,musKlikket); //Enter på tastaturet i tekstfeltene: txtVekt.addEventListener(KeyboardEvent.KEY_DOWN,tastTrykket); txtHoyde.addEventListener(KeyboardEvent.KEY_DOWN,tastTrykket); // Lytterfunksjoener: function musKlikket(evt: MouseEvent):void { beregnBmi(); }//beregnBmi() function tastTrykket(evt: KeyboardEvent):void{ var tast: int = evt.keyCode; if( tast == Keyboard.ENTER) { beregnBmi(); }//if(ENTER) }//tastTrykket() function beregnBmi():void { // Ta høyde for norske desimalskilletegn // og konverter input fra String til Number: var h: Number = Number(txtHoyde.text.replace(",",".")); var v: Number = Number(txtVekt.text.replace(",",".")); var bmi: Number = v/(h*h); // Selve utregningen if(isNaN(bmi)) { // Sjekk om noe annet galt txtResultat.text = "Feil i tall-instasting!"; }else{ txtResultat.text=""+bmi.toPrecision(3); // 3 gjeldende siffer }//if }//beregnBmi() |