Flere måter å gjøre dette på, men det enkleste er å endre
størrelsen på søylene med egenskapen .scaleX (eller .scaleY),
da denne egenskapen tillater negative verdier. (I motsetning til
egenskapen .width.)
Legg ogå merke til hvordan vi setter farve når objektene vi
behandler ikke har en egen egenskap for farve (color),
slik at vi må bruke klassen ColorTransform!
Denne metoden virker på alle MovieClip.
/********************************** Eksempel med søylediagrammer soyle1, soyle2, ... lagt inn som rektangler i Flash ***********************************/ const SCALE: Number = 0.1; // Skaleringsfaktor, må tilpasse var soyletabell: Array = [soyle1,soyle2]; // Soyler i tabell // Farvehåndtering: var ct_rod: ColorTransform = new ColorTransform(); // Rød farve ct_rod.color = 0xff0000; var ct_bla: ColorTransform = new ColorTransform(); // Blå farve ct_bla.color = 0x0000ff; function settSoyle(nr: int, verdi: int):void { var soyle: Soyle = soyletabell[nr]; soyle.scaleX =SCALE*verdi; if( verdi >= 0 ) { soyle.transform.colorTransform = ct_rod; }else{ soyle.transform.colorTransform = ct_bla; }//if }//setSoyle() ////////////////////////////////////////////////////////////// /// Kode for å test søylediagrammet og settSoyle() /// ////////////////////////////////////////////////////////////// btnminus.addEventListener(MouseEvent.CLICK,minusTrykket); btnpluss.addEventListener(MouseEvent.CLICK,plussTrykket); var verdi: int = -15; settSoyle(0,verdi); settSoyle(1,verdi+5); function minusTrykket(evt: MouseEvent):void { verdi--; settSoyle(0,verdi); settSoyle(1,verdi+5); }//minusTrykekt() function plussTrykket(evt: MouseEvent):void { verdi++; settSoyle(0,verdi); settSoyle(1,verdi+5); }//plussTrykekt() |