BMI - eksempel side 65 i læreboken

Ting å legge merke til:


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()