2. Rychlý úvod - Flash a OOP - teorie
V tomto článku se seznámíme se základy objektově orientovaného programování v AS3. Předpokládám, že již znáte základní koncepty OOP (OOP na Wikipedii).
Ve flashi je zvykem definici každé třídy psát do zvláštního souboru. Každá třída je uvnitř nějakého package (balíček), které také definuje jmenný prostor, ve kterém je třída umístěna.
Základním typem je Object, ze kterého dědí všechny třídy. Pokud předka nespecifikujeme, předpokládá se, že je to právě Object.
Každá metoda je virtuální, můžeme ji tedy v potomcích přepsat.
Teorie
AS3 je objektově orientovaný jazyk a každá proměnná je nějakého typu / třídy a má s ní spojené vlastnosti a metody.Ve flashi je zvykem definici každé třídy psát do zvláštního souboru. Každá třída je uvnitř nějakého package (balíček), které také definuje jmenný prostor, ve kterém je třída umístěna.
Základním typem je Object, ze kterého dědí všechny třídy. Pokud předka nespecifikujeme, předpokládá se, že je to právě Object.
Každá metoda je virtuální, můžeme ji tedy v potomcích přepsat.
Parametry třídy a její položek
- public - veřejná položka, dostupná všem
- private - soukromá, dostupná pouze z dané třídy
- protected - private + přístupná pro podtřídy
- internal - dostupná v rámci daného jmenného prostoru
- static - statická položka, patří třídě, nezávislá na instancích
- override - nahrazuje danou metodu předka
Ukázka OOP v AS3
První třída
package fauna // jmenný prostor "fauna" { //import flash.display.MovieClip; // -import dalších tříd public class Zvíře // definice třídy { public var hmotnost:int = 10; // proměnná a poč. hodnota public var jmeno:String; public function Zvíře(/*parametry*/) :void // konstruktor třídy { } public function OzviSe() :String // veřejná metoda { return("Ahoj, jsem " + jmeno + " a vážím " + hmotnost + "kg!"); } } }
Rozšíříme třídu
package fauna { import fauna.Zvíře; public class Pes extends Zvíře { public var kouše:Boolean; public var plemeno:String; public function Pes() :void { } public override function OzviSe() :String { var hláška:String = "Ahoj, jsem pes " + jméno + " a "; hláška += kouše?"koušu!":"nekoušu!"; return(hláška); } } }
Použití tříd
var prase:Zvíře = new Zvíře(); prase.jméno = "Čuník"; prase.hmotnost = 100; var alík:Pes = new Pes(); alík.jméno = "Alík"; alík.hmotnost = 15; alík.kouše = true; trace(alík.OzviSe()); // vypíše "Ahoj, jsem pes Alík a koušu!"
Ahoj,
hodilo by sa niečo o sprave pamati, poliach a vektoroch a nejake vychytavky, Tweeber, GTween...
Inak super clanky.
Karmil