/************************************************************ Komponenter laget i Flash: Radioknapper: furuRb, granRb, lauvRb Har gitt value 0, 1 og 2 for furu, gran og løv. Kombobokser: fraCb, tilCb Bruker indeks 0,1,2,... som 1915, 1950, ... Text Area: okningTa *************************************************************/ /// Konstanter const ANTALL_AR: int = 6; const SKALA: int = 50; const FURU: int = 0; const GRAN: int = 1; const LAUV: int = 2; /// Variabler var treslag: int = 0; var gruppe: RadioButtonGroup = furuRb.group; /// Brukergrensesnitt /// Registrerer lyttere til radioknapper og combobokser gruppe.addEventListener(Event.CHANGE, treValgt); fraCb.addEventListener(Event.CHANGE, arValgt); tilCb.addEventListener(Event.CHANGE, arValgt); // Tabell med årstall, antall og søyler for å forenkle oppdatering // av brukergrensesnitt i for-sløyfe i visData() var vistabell:Array = [ {ar: ar0Lbl, antall: antall0Lbl, soyle: soyle0 }, {ar: ar1Lbl, antall: antall1Lbl, soyle: soyle1 }, {ar: ar2Lbl, antall: antall2Lbl, soyle: soyle2 }, {ar: ar3Lbl, antall: antall3Lbl, soyle: soyle3 }, {ar: ar4Lbl, antall: antall4Lbl, soyle: soyle4 }, {ar: ar5Lbl, antall: antall5Lbl, soyle: soyle5 } ]; /// Data var tretabell:Array = [ {ar: 1915, furu: 20, gran: 23, lauvtre: 4}, {ar: 1950, furu: 31, gran: 39, lauvtre: 6}, {ar: 1970, furu: 53, gran: 72, lauvtre: 8}, {ar: 1990, furu: 89, gran: 89, lauvtre:12}, {ar: 1992, furu:102, gran: 92, lauvtre:15}, {ar: 2000, furu:117, gran: 99, lauvtre:18} ]; /// Lytterfunksjoner: function treValgt(evt:Event){ // Får tak i treslaget 0,1 eller 2 treslag = int(gruppe.selection.value); // Oppdaterer skjerm: visData(); beregnOkning(); }//treValgt() function arValgt(evt:Event){ beregnOkning(); }//arValgt() /// Andre funksjoner: function beregnOkning(){ // Henter brukerinput: var fraindeks: int = fraCb.selectedIndex; var tilindeks: int = tilCb.selectedIndex; // Sjekk om kombobokser er valgt før beregning (selectedIndex > -1) if ( (fraindeks >= 0) && (tilindeks >= 0) ) { // Henter verdier fra tabell: var laveste: Number = hentFraTreTabell(fraindeks,treslag); var hoyeste: Number = hentFraTreTabell(tilindeks,treslag); // Et alternativ til funksjonen hentFraTreTAbell er å lage en tabell: // trenavntabell= ["furu","gran","lauvtre"] og bare gjøre: // laveste = tretabell[fraindeks][trenavntabell[treslag]]; // Utfør beregninger: var differanse: Number = hoyeste-laveste; var prosent:Number = differanse*100/laveste; // Presenterer resultat: okningTa.text = "Økning i antall trær: " +differanse.toFixed(1)+ "\n"+ "I prosent: " +prosent.toFixed(1)+" %"; }//if }// beregnOkning() // Funksjon for å hente fra riktig felt i objektene i den assosiative tabellen. function hentFraTreTabell(indeks: int, felt: int): Number { var o: Object = tretabell[indeks]; var antall: int = -1; if (felt == FURU) { antall = o.furu; // eller: antall=o["furu"]; }else if (felt == GRAN) { antall = o.gran; }else { antall = o.lauvtre; }//if (tretype) return antall; }//hentFraTreTabell() function visData(){ //går i løkke for å skalere hver søyle og angi tekst for (var i:int = 0; i < ANTALL_AR;i++){ // Henter årstall: var ar: String = tretabell[i].ar; // Henter antall: var antall:int = hentFraTreTabell(i,treslag); // Henter label og søyler fra tabellen. var arLbl: Label = vistabell[i].ar; var antallLbl: Label = vistabell[i].antall; var soyle:MovieClip = vistabell[i].soyle; // Og oppdaterer: soyle.scaleX =antall/SKALA; arLbl.text = String(ar); antallLbl.text = String(antall); }//for }//visData() // Klargjør skjermbilde for bruker første gang: visData();