ActionScript

programovací jazyk

ActionScript (zkratka AS) je objektově orientovaný programovací jazyk pro aplikace vyvíjené pomocí Adobe Flash, případně dalších vývojářských nástrojů, využívajících stejného datového formátu. Pomocí ActionScriptu se dají vytvářet komplexní internetové aplikace nebo i animace. ActionScript vychází ze standardizované verze jazyka JavaScript, nazvané ECMAScript.

Používání Flashe k vytváření webů neznamená používání ActionScriptu. Pokud ovšem bude třeba použít více interaktivity např. různé akce a události po klepnutí na myš, tak už je použití ActionScriptu nutné. Aktuální verze ActionScriptu je verze 3 (podporovaná Flash Playerem 9) a 2 (podporovaná Flash Playerem od verze 6). Verze AS 2.0 s jeho rozšířeními pro Flash verze 8 je zdokumentována na stránkách firmy Adobe.[1]

Historie

editovat

ActionScript začal jako skriptovací jazyk pro program Macromedia Flash (nyní ve vlastnictví společnosti Adobe Systems). První tři verze programu Flash poskytovaly velmi omezené možnosti. Vývojáři Flashe pro používání brzy připojili jednoduchý příkaz, nazvaný action, který lze připojit k tlačítku nebo k rámu. Soubor akcí byl rozšířen na základní navigaci kontroly s příkazy jako play, stop, getURL, goto a hru.

S vydáním Flash 4 v roce 1999 byl tento soubor akcí rozšiřován do skriptovacího jazyka. Nové příkazy představené ve Flash 4 zahrnovaly proměnné, výrazy, operátory, podmíněné příkazy a smyčky.

Verze ActionScriptu

editovat
ActionScript 1.0
Verze 1.0 je nejjednodušší forma ActionScriptu a stále se používá v některých verzích přehrávače Flash Lite Player. ActionScript 1.0 a 2.0 mohou existovat dohromady v jednom souboru FLA.
ActionScript 2.0
Verze 2.0 je na učení jednodušší než ActionScript 3.0.[2] Přestože Flash Player provádí zkompilovaný kód ActionScript 2.0 pomaleji než zkompilovaný kód ActionScript 3.0, je ActionScript 2.0 stále dobrý pro mnoho druhů projektů, které nejsou výpočetně náročné, například pro vzhledově orientovaný obsah. ActionScript 2.0 je také odvozen od specifikace ECMAScript, které však plně nevyhovuje.
ActionScript 3.0
Verze 3.0 se provádí několikrát rychleji, než předchozí verze.[3] Tato verze vyžaduje větší znalosti objektově orientovaného programování, než jiné verze ActionScriptu.[4] ActionScript 3.0 plně vyhovuje specifikaci ECMAScript, nabízí lepší zpracování XML, vylepšený model událostí a vylepšenou architekturu pro práci s obrazovkovými elementy. Nově také disponuje třídou ByteArray, která pracuje s daty na bytové úrovni. Díky této skutečnosti, lze nyní používat ActionScript 3.0 k vytváření obrázků a jejich následnému ukládání v různých formátech pomocí několika tříd.[5] Pomocí třídy ByteArray lze vytvořit známé hashovací algoritmy, jako MD5 nebo SHA1. Ve vývoji jsou také projekty vytvářející PDF nebo ZIP soubory.[6][7]

Verze přehrávače

editovat
Flash Player 2
První verze s podporou skriptů. Přidány příkazy gotoAndPlay, gotoAndStop, nextFrame a nextScene pro kontrolu časové osy.
Flash Player 3
Rozšířená podpora skriptů a schopnost načítat externí SWF (loadMovie).
Flash Player 4
První verze přehrávače s plnou podporou skriptů (Actions). Kódování založené na Flash syntaxi s podporou smyček, podmínek, proměnných a dalších základních jazykových konstruktů.
Flash Player 5
Obsahuje první verzi Actionscriptu. Využívá programování založené na prototypech ECMAScript a umožňuje plné procedurální programování a objektově orientované programování.
Flash Player 6
Přidán model zpracování událostí, ovládací prvky dostupnosti, a podpora pro switch. První verze s podporou pro AMF a RTMP protokoly, které povolují přehrávání zvuku/videa na vyžádání.
Flash Player 7
Doplňky obsahující CSS stylování pro text a podporu pro ActionScript 2.0, programovací jazyk založený na ECMAScript 4 Netscape Propsal s dědičností tříd (class-based). ActionScript 2.0 lze rekompilovat na bajt-kód ActionScript 1.0 pro použití ve Flash Player 6.
Flash Player 8
Ještě více rozšiřuje Actionscript 1.0/ActionScript 2.0 přidáním knihoven tříd s API pro manipulaci s bitmapami za běhu programu, načítání souborů a live filtry jako rozostření a vrhání stínů.
Flash Player 9 (8.5)
Přidán ActionScript 3.0 s příchodem nové VM (Virtual Machine) zvané AVM2 (ActionScript Virtual Machine 2), které spolupracuje s předchozí verzí AVM1 nutnou pro podporu dřívějšího obsahu. Přehrávač obsahuje nový JIT kompilátor a hlavním cílem celkový nárůst výkonu. Je zde implementována podpora pro binary sockets, EAX XML analýzu, full-screen mód a Regular Expressions. První vydání přehrávače pod názvem Adobe Flash Player.
Flash Player 10 (Astro)
Přidány základní 3D funkce jako rotace v X, Y a Z a 3D kreslící rozhraní API. Schopnost vytvářet vlastní filtry s využitím Adobe Pixel Bender. Mnohé vizuální procesy jsou nyní přeneseny na GPU s následným znatelným snížením renderovacích časů pro jednotlivé snímky. Výsledkem je rychlejší přehrávání a to speciálně s H.264 videem. Nově přidané zvukové API umožňuje poprvé tvorbu vlastních zvuků ve flashi.

Datové typy

editovat

ActionScript se primárně skládá z elementárních a základních datových typů, které jsou následně použity k vytváření dalších datových typů. Datové typy se velmi podobají typům v jazyce Java. ActionScript 3.0 byl kompletně přebudován, a proto jsou datové typy a jejich dědičnost jiné.

ActionScript 2.0 top level datové typy

editovat
  • String – seznam znaků jako například „Hello World“
  • Number – jakákoli numerická hodnota
  • Boolean – jednoduchý datový typ nabývající hodnotu True a False
  • Object – z tohoto datového typu dědí všechny komplexní datové typy; umožňuje seskupování metod, funkcí, parametrů a ostatních objektů

ActionScript 2.0 komplexní datové typy

editovat

Komplexní datové typy jsou složitější a skládají se z mnoha základních datových typů. Jsou náročnější na procesor a paměť. V AS 2.0 jsou následující:

  • MovieClip – datový typ pro reprezentaci vizuálních objektů
  • TextField – jednoduché dynamické nebo vstupní textové pole. Dědí vlastnosti MovieClipu
  • Button – jednoduché tlačítko se 4 snímky: Up, Over, Down a Hit; dědí vlastnosti MovieClipu
  • Date – umožňuje získat informaci o konkrétním bodě v čase
  • Array – pole pro skladování dat
  • XML – objekt jazyka XML
  • XMLNode – uzel XML
  • LoadVars – objekt pro uskladnění a posílání proměnných metodou HTTP POST a HTTP GET
  • Sound – zvukový objekt
  • NetStream
  • NetConnection
  • MovieClipLoader – objekt pro načítání videoklipů
  • EventListener – objekt zpracovávající události jiných objektů jako například myši

ActionScript 3.0 top level datové typy

editovat
  • Boolean – jednoduchý datový typ nabývající hodnotu True a False
  • Int – 32bitová číselná hodnota v rozmezí -2.147.483.648 až 2.147.483.648
  • Null – datový typ obsahující pouze hodnotu null, což je implicitní hodnota pro datový typ String a všechny další, které definují komplexní datové typy včetně třídy Object
  • Number – může reprezentovat integer (viz int), unsigned integer (kladný int) a čísla s plovoucí čárkou; používá 64bitový formát
  • String – reprezentuje sekvenci 16bitových znaků; interně je uložen jako Unicode znaky využívající kódování UTF–16; předchozí verze Flash používají UTF-8
  • Uint – 32bitový číselný datový typ v rozmezí od 0 do 4.294.967.295
  • Void – obsahuje pouze jednu hodnotu undefined; v předchozích verzích je undefined výchozí hodnotou u některých datových typů

ActionScript 3.0 komplexní datové typy

editovat
  • Object – je definován třídou Object, která slouží jako základní třída pro definici všech tříd v ActionScriptu; Object je v podstatě použit jako asociativní pole, které obsahuje dvojice klíč-hodnota, kde klíč je string a hodnota může být jakéhokoli typu
  • Array – obsahuje seznam dat; data mohou být uložena jako jakýkoli typ a poté přepsáno jako původní datový typ
  • Vector – varianta pole použitelná pouze Flash Playerem 10 nebo vyšším; Vectory jsou typově bezpečné jako pole, ale zpracovávají se rychleji
  • Dictionary – varianta objektu, která může obsahovat klíče kterýchkoli dat (klíče jsou definované jako String)
  • MovieClip – datový typ pro reprezentaci vizuálních objektů
  • Bitmap – neanimovatelný vizuální objekt
  • Shape – neanimovatelný vektorový vizuální objekt
  • ByteArray – obsahuje pole binárních bajtových dat
  • TextField – jednoduché dynamické nebo vstupní textové pole; dědí vlastnosti třídy InteractiveObject
  • SimpleButton – jednoduché tlačítko se čtyřmi akcemi: Up, Over, Down a Hit
  • Date – datový typ zpřístupňující aktuální systémový čas
  • Error – generovaný chybový objekt, který umožňuje nahlášení chyb za běhu programu (exceptions)
  • Function – základní třída pro všechny definice metod
  • RegExp – regulární vyjádření objektu pro řetězec (String)
  • Video – objekt pro přehrávání videa podporující přímý nebo přenášený transport; od verze Flash Playeru 9.0.115.0 je podporováno i H.264 (MP4 high-definition video formát) společně s původní FLV videem
  • XML – revidovaný XML objekt založený na standardu E4C; uzly a atributy jsou zpřístupněny jinak než v ActionScripti 2.0
  • XMLList – objekt typu pole pro uložení různého obsahu z třídy XML

Externí skripty

editovat

Flash umožňuje ukládat skripty i do externích souborů mimo .fla. Externí skripty se připojují automaticky. Když se animace exportuje, zkopírují se skripty do souboru .swf.

Reference

editovat

V tomto článku byl použit překlad textu z článku ActionScript na anglické Wikipedii.

  1. Dokumentace AS 2.0 s rozšířeními pro Flash verze 8. help.adobe.com [online]. [cit. 2017-04-15]. Dostupné v archivu pořízeném dne 2017-06-18. 
  2. Learning ActionScript 2.0 in Adobe Flash. help.adobe.com [online]. [cit. 2017-04-15]. Dostupné v archivu pořízeném dne 2017-06-18. 
  3. http://www.greensock.com/tweening-speed-test/ Archivováno 16. 6. 2011 na Wayback Machine. Tweening Engine Comparison Tool
  4. Learning ActionScript 3
  5. https://github.com/mikechambers/as3corelib/ ActionScript 3 Library
  6. http://alivepdf.bytearray.org/ Archivováno 9. 5. 2011 na Wayback Machine. AlivePDF library
  7. https://github.com/claus/fzip/ FZIP library

Externí odkazy

editovat