1. Rychlý úvod do Adobe Flash / AS3
V tomto článku se vás pokusím rychle uvést do Adobe Flash a jazyku AS3 a ukážu základy potřebné pro praktickou práci. Předpokládám, že jste programátoři. Zbylé věci z prostředí Adobe Flash se lze doučit praxí.
AS3
Komentáře
// toto je jednořádkový komentář /* toto je komentář na více řádků */Funkce pro vypsání textu (při debuggingu)
trace("ahoj" + nejakyString + ".");
Proměnné
Základní:// var název:Typ = hodnota; var n:int = 5; var a:Number = 4.3419; var s:String = "Ahoj Ahoj"; var b:Boolean = true; // nebo falsePole:
var a:Array = []; a = [4, 3, "ahoj", b, true]; a[2] = "čau"; var n:Number = a[0];Instance tříd:
// var název:Typ = new KonstruktorTřídy(parametry ...); var mc:MovieClip = new MovieClip(); var tf:TextField = new TextField();
Podmínky
// if(podmínka) proveď jednu věc // if(podmínka) {proveď víc věcí} // else {proveď něco jiného} if(x == 5) trace("x je pět"); else trace("x není pět");Další operátory pro porovnávání naleznete ZDE
Cykly
// for (počáteční hodnota; podmínka; operace při cyklu) dělej něco for(var i:int = 0; i < 10; i++) { trace(i); } // while (podmínka) dělej něco var j:int = 0; while(j < 10) { trace(j); j++; }
Funkce
// function názevFunkce(parametry ...) // :Typ návratové hodnoty nebo "void" {něco ...; return něco;} function dvaKrat(a:int):int { //nějaký kód .. return a*2; }
Události
Veškeré asynchronní akce v Adobe Flash jsou prováděny přes systém událostí (Event) a tím, že jim nasloucháme a případně provedeme obslužnou rutinu. Většina tříd pochází z EventDispatcher a mají metody dispatchEvent(event) a addEventListener(typEventu, obslužnáFunkce). Některé DisplayObjecty (např. MovieClip) standardně vyvolávají události myši, klávesnice atd., stačí jim jen naslouchat.// function názevFunkce(parametry):Typ návratové hodnoty //nebo "void" {dělej něco ...; return něco;} var mc:MovieClip = new MovieClip(); mc.addEventListener("mojeUdalost", mojeFunkce); var e:Event = new Event("mojeUdalost"); mc.dispatchEvent(e); function mojeFunkce(ev:Event):void { trace("zavolána událost"); }Standardní události jsou typů Event, MouseEvent nebo KeyboardEvent.
MovieClip
Nejznámější třídou ve flashi je MovieClip. Je to zobrazovatelný objekt (DisplayObject), může obsahovat další objekty (je to i DisplayObjectContainer). Má časovou osu a vyvolává událost "enterFrame" podle FPS. Má metodu addChild(p) pro přidání objektu. Více o MC. Má vlastnosti jako "x", "y", "alpha", "width", "height" ...Matematické funkce
Ty jsou ve statické, uloženy ve třídě Math. Jsou to např. sin, cos, abs, log, tan, min, max. Math.random() vrací náhodné číslo mezi 0 a 1. Obsahuje konstanty Math.PI nebo Math.E. Více o třídě Math.Přklady AS3
Načítání obrázků
var obr:Array = ["obr1.jpg", "obr2.jpg", "novyobrazek.jpg"]; for(var i:int = 0; i<obr.length; i = i+1) nactiObrazek( obr[i] ); function nactiObrazek (c:String) : void { // dopíšeme načítání obrázku trace("Načítáme obrázek: " + c); }Teď si vytvoříme čtverec asi 30px x 30px, převedeme ho na MovieClip a nastavíme export pod třídou "Ctverec"
Umístění čtverců po diagonále
var ctverce : MovieClip = new MovieClip () addChild (ctverce); for (var i:int = 0; i < 10; i++) { var c:Ctverec = new Ctverec(); c.x = i*50; c.y = i*50; ctverce.addChild(c); }
Jednoduchá hra - počítá se počet najíždění na čtverce
var tf:TextField = new TextField(); addChild(tf); tf.x = 200; var n:int = 0; for (var i:int = 0; i < 4; i++) { for (var j:int = 0; j < 5; j++) { var c:Ctverec = new Ctverec(); c.x = j*100; c.y = i*100; addChild(c); c.addEventListener(MouseEvent.MOUSE_OVER, mojeFunkce); } } function mojeFunkce(e:MouseEvent):void { e.target.x = Math.random()*500; e.target.y = Math.random()*400; n++; tf.text = "Chytil jsi " + n + " čtverců"; }
Bude nejake pokracovanie?
Ano, plánuji udělat stručný úvod do objektově orientovaného programování v AS3. Snad to budu mít během dvou týdnů.
Su tieto postery Flash/Flex nejak uzitocne?
http://arunbluebrain.wordpress.com/2010/05/06/flex-4-and-flash-as3-hi-res-posters-download/
Zacinam s Flash Develop + Flex SDK 4.1 zda sa mi to pre ciste AS3 projekty super. Bude nieco aj o tom?
Na těch plakátech je jen popis jmenných prostorů a tříd v nich obsažených. To vše a mnohem víc najdete na stránkách Adobe. Navíc, na plakátech chybí metody tříd, vlastnosti a hierarchická posloupnost. Avšak na to, že je to plakát, je tam toho celkem dost.
Zde popisuji AS3, se kterým můžete programovat i ve Flash Developu. V něm však všechen kód patří nějaké třídě / její metodě. Více v příštím článku o OOP.
Vdaka, tesime sa.