ANIMOVANY GRAF                                                                        as3


    Tento tutoriál vám ukáže ako vytvoriť jednoduchý animovaný graf za použitia iba actionscript 3.0. Tento príklad pracuje s piatimi grafmi ale môžete pridávať alebo odoberať ďalšie ako uznáte za vhodné. Na konci by ste mali dostať niečo podobné tomuto:
     Všetko čo potrebujeme je actionscript 3.0 dokument. Všetko ostatné je vytvorené len za pomoci actionscriptu. Označte prvý frame a otvorte actions okno ( zmačknite F9 ). Teraz vložte nasledujúci actionscript kód:


var startX:Number=10;
var startY:Number=220;
var sirka:Number=25;	   
var vyska:Number=0;		   
var n:Number=0;

var grafData:Array=[{val:120,col:0xFF0000},{val:200,col:0x00FF00},
					{val:55,col:0x0000FF},{val:171,col:0xFFFF00},
					{val:23,col:0x9900FF},{val:91,col:0xF0F0F0}];

stage.addEventListener(Event.ENTER_FRAME,KRESLI);
var mojGraf:Shape = new Shape();

function KRESLI(e:Event) {

mojGraf.graphics.beginFill(grafData[0].col);
mojGraf.graphics.drawRect(startX+(0*35),startY,sirka,(vyska/100)*grafData[0].val);
mojGraf.graphics.endFill();
mojGraf.graphics;
addChild(mojGraf);
	
mojGraf.graphics.beginFill(grafData[1].col);
mojGraf.graphics.drawRect(startX+(1*35),startY,sirka,(vyska/100)*grafData[1].val);
mojGraf.graphics.endFill();
mojGraf.graphics;
addChild(mojGraf);
	
mojGraf.graphics.beginFill(grafData[2].col);
mojGraf.graphics.drawRect(startX+(2*35),startY,sirka,(vyska/100)*grafData[2].val);
mojGraf.graphics.endFill();
mojGraf.graphics;
addChild(mojGraf);
	
mojGraf.graphics.beginFill(grafData[3].col);
mojGraf.graphics.drawRect(startX+(3*35),startY,sirka,(vyska/100)*grafData[3].val);
mojGraf.graphics.endFill();
mojGraf.graphics;
addChild(mojGraf);
	
mojGraf.graphics.beginFill(grafData[4].col);
mojGraf.graphics.drawRect(startX+(4*35),startY,sirka,(vyska/100)*grafData[4].val);
mojGraf.graphics.endFill();
mojGraf.graphics;
addChild(mojGraf);
	
	vyska-=2;

	if (vyska<-100) {
		stage.removeEventListener(Event.ENTER_FRAME,KRESLI);
	}
}
	var grafHodnota0:TextField = new TextField();
	var grafHodnota1:TextField = new TextField();
	var grafHodnota2:TextField = new TextField();
	var grafHodnota3:TextField = new TextField();
	var grafHodnota4:TextField = new TextField();

while(n<5){
	this["grafHodnota"+n].width=25;
	this["grafHodnota"+n].textColor=0x000000;
	this["grafHodnota"+n].y=startY;	
	this["grafHodnota"+n].text=grafData[n].val;
	this["grafHodnota"+n].x=startX+(n*35);
	addChild(this["grafHodnota"+n]);
	n++;
}
	


    Prvých päť riadkov sú premenné použité v scripte ako začiatočná poloha prvého grafu (X,Y), šírka jednotlivých grafov a vzdialenosť medzi nimi. Riadok 7 je pole ktoré obsahuje všetky vstupné informácie. V tomto prípade je to hodnota a farba každého z grafov. Môžete tieto hodnoty vkladať manuálne, alebo ich načítať z externého zdroja, to je len na vás. Riadok 11 vytvorí event listener ktorý spúšťa KRESLI funkciu vždy keď sa načíta frame. Riadok 12 je definícia nového shape objektu, v tomto prípade sú to obdľžniky ktoré budeme vykresľovať v nasledujúcej funkcii. Riadky 16-20 vytvoria jeden obdĺžnik (z piatich v tomto prípade). BeginFill nastaví farbu tohto grafu, drawRect nakreslí obdĺžnik s týmito parametrami (pozícia X, pozícia Y, šírka, výška). EndFill ukončí vyplňovanie obdĺžnika a posledné dva riadky tejto sekcie potom vložia tento obdĺžnik na scénu. Duplikovaním tejto sekcie päť krát vytvoríme päť grafov. Zmenou hodnôt v grafData[x] bude mať každý graf hodnotu a farbu zodpovedajúcu dátam v grafData poli. Táto funkcia beží až kým výška nedosiahne 100 (záporné hodnoty zabezpečia to že graf bude narastať zdola nahor a nie naopak) Riadky 58-66 vytvoria popisky k jednotlivým grafom s ich hodnotami.


ALTERNATIVNE RIESENIE


STIAHNUT ZDROJOVY SUBOR