Uživatelské nástroje

Nástroje pro tento web


vyuka:kosticky-prepinac

Kostičky - přepínač

první varianta naprogramování třídy "kostka" pomocí if..then..else...

class Kostka extends MovieClip {
 
	//PUBLIC
	function nastavBarvu(jakou:Number) {
		if (jakou==0) {
			this.gotoAndStop("Cervena");
		} else if (jakou == 1) {
			this.gotoAndStop("Modra");
		} else if (jakou == 2) {
			this.gotoAndStop("Zelena");
		} else if (jakou == 3) {
			this.gotoAndStop("Zluta");
		} else {
			this.gotoAndStop("Cervena");
		}
		/*	
		// přepínač	
		switch (jakou) {
		case 0 :
			this.gotoAndStop("Cervena");
			break;
		case 1 :
			this.gotoAndStop("Modra");
			break;
		case 2 :
			this.gotoAndStop("Zelena");
			break;
		case 3 :
			this.gotoAndStop("Zluta");
			break;
		default :
			this.gotoAndStop("Cervena");
		}		*/
	}
}

testujeme chování instance kostka_mc pomocí testovacích tlačítek:

mtlac_mc.onRelease = function() {
	kostka_mc.nastavBarvu(1);
};
ztlac_mc.onRelease = function() {
	kostka_mc.nastavBarvu(2);
};
ctlac_mc.onRelease = function() {
	kostka_mc.nastavBarvu(0);
};
zltlac_mc.onRelease = function() {
	kostka_mc.nastavBarvu(3);
};

zdrojový kód púříkladu

Druhá varianta - využití přepínače case místo if..then..else..

class Kostka extends MovieClip {
	//PUBLIC
	function nastavBarvu(jakou:Number) {
		/*
		//přepínač funguje stejně jako alternativní podmínky
		if (jakou==0) {
		this.gotoAndStop("Cervena");
		} else if (jakou == 1) {
		this.gotoAndStop("Modra");
		} else if (jakou == 2) {
		this.gotoAndStop("Zelena");
		} else if (jakou == 3) {
		this.gotoAndStop("Zluta");
		} else {
		this.gotoAndStop("Cervena");
		}
		*/
		// přepínač	
		switch (jakou) {
		case 0 :
			this.gotoAndStop("Cervena");
			break;
		case 1 :
			this.gotoAndStop("Modra");
			break;
		case 2 :
			this.gotoAndStop("Zelena");
			break;
		case 3 :
			this.gotoAndStop("Zluta");
			break;
		default :
			this.gotoAndStop("Cervena");
		}
	}
}

zdrojový text příkladu

Třetí varianta s využitím statických konstant třídy

class Kostka extends MovieClip {
	//veřejné proměnné
	static var CERVENA:Number = 0;
	static var MODRA:Number = 1;
	static var ZELENA:Number = 2;
	static var ZLUTA:Number = 3;
	//privátní proměnné
	private var _barva:Number = CERVENA;
	//Konstruktor
	function Kostka(){
		init();
	}
	//Vlastnosti
	function set barva(jakou) {
		nastavBarvu(jakou);
		_barva = jakou;
	}
	function get barva():Number {
		return _barva;
	}
	//Privátní metody
	function init(){
		//inicializace - zatím prázdné
	}
	//Veřejné metody
	function nastavBarvu(jakou:Number) {
		switch (jakou) {
		case CERVENA :
			this.gotoAndStop("Cervena");
			break;
		case MODRA :
			this.gotoAndStop("Modra");
			break;
		case ZELENA :
			this.gotoAndStop("Zelena");
			break;
		case ZLUTA :
			this.gotoAndStop("Zluta");
			break;
		default :
			this.gotoAndStop("Cervena");
		}
	}
}

Při programování si pak nemusíme pamatovat, že ćervená je 0, modrá je 1 apod. Zjistíme to pomocí statických proměnných třídy Kostka:

Kostka.CERVENA je číslo odpovídající nastavení červené (tedy 0),

Kostka.MODRA je číslo odpovídající modré (tedy 1) atd.

Programování testovacích tlačítek tedy vypadá takto:

modreTlacitko_mc.onRelease = function() {
	kostka_mc.barva = Kostka.MODRA;
};
zeleneTlacitko_mc.onRelease = function() {
	kostka_mc.barva = Kostka.ZELENA;
};
cerveneTlacitko_mc.onRelease = function() {
	kostka_mc.barva = Kostka.CERVENA;
};
zluteTlacitko_mc.onRelease = function() {
	kostka_mc.barva = Kostka.ZLUTA;
};

zdrojový kó třetí varianty

vyuka/kosticky-prepinac.txt · Poslední úprava: 2007/05/04 09:08 autor: kofranek