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