ActionScript — аб’ектна-арыентаваная мова праграмавання, адзін з дыялектаў ECMAScript, які дадае інтэрактыўнасць, апрацоўку дадзеных і многае іншае ў змесціва Flash-прыкладанняў. ActionScript спаўняецца віртуальнай машынай (ActionScript Virtual Machine), якая з’яўляецца складовай часткай Flash Player. ActionScript кампілюецца ў байт-код, які ўключаецца ў SWF-файл.
SWF-файлы выконваюцца Flash Player-ам. Flash Player існуе ў выглядзе плагіна да вэб-браўзэра, а таксама як самастойны дадатак (standalone). У другім выпадку магчыма стварэнне выконваемых exe-файлаў (projector), калі дадатак Flash Player аб’ядноўваецца з swf файлам па аналогіі з SFX.
З дапамогай ActionScript можна ствараць інтэрактыўныя мультымедыя-прыкладанні, гульні, вэб-сайты і многае іншае.
ActionScript як мова з’явілася з выхадам 5-й версіі Macromedia Flash, якая стала першым праграмуемым на ActionScript асяроддзем. Першая версія мовы, што выйшла, называлася ActionScript 1.0. Шостая версія Flash (MX) таксама выкарыстала ActionScript 1.0. У 2004 годзе кампанія Macromedia прадставіла новую версію ActionScript 2.0 разам з выхадам Flash 7 (MX 2004), у якой было ўведзена строгае вызначэнне тыпаў, а таксама праграмаванне, заснаванае на класах. Гэта значыць з’явіліся новыя ключавыя словы:
class (клас),
інтэрфейс (інтэрфейс),
extends (устаноўка спадчыннасці)
мадыфікатары доступу: private, public;
і іншыя.
Таксама Macromedia была выпушчаная мадыфікацыя мовы Flash Lite для праграмавання пад мабільныя тэлефоны.
ActionScript 1.0 з’яўляецца прататыпнай мовай праграмавання. Гэта значыць яна цалкам рэалізуе ўсе тры прынцыпа аб’ектна-арыентаванага праграмавання.
ActionScript 2.0 з’яўляецца надбудовай над ActionScript 1.0. Праверка тыпаў і праца з іерархіяй класаў ажыццяўляецца падчас кампіляцыі, якая заканчваецца генерацыяй байткода, аналагічнага ActionScript 1.0.
У 2006 годзе выйшаў ActionScript 3.0 у асяроддзі праграмавання Adobe Flex, а пазней у Adobe Flash 9.
ActionScript 3.0 ўяўляе, па параўнанні з ActionScript 2.0, якаснае змяненне, ён выкарыстоўвае новую віртуальную машыну AVM 2.0 і дае ўзамен ранейшага фармальнага сінтаксісу класаў сённяшняе класавае (class-based) Аб'ектна-арыентаванае праграмаванне. ActionScript 3.0 забяспечвае павелічэнне прадукцыйнасці, ў параўнанні з ActionScript 1.0/2.0, да 700 разоў (гэта толькі апрацоўка інструкцый, не закранаючы графіку). ActionScript 3.0 дазваляе працаваць з бінарнымі дадзенымі, з BitMap (што забяспечвае значны прырост прадукцыйнасці: да 10 тысяч раз). ActionScript 3.0 па хуткасці наблізіўся да такіх мовах праграмавання, як Java і C#.
Павелічэнне прадукцыйнасці заснавана на дынамічнай трансляцыі кода (JIT). Такое павелічэнне прадукцыйнасці магчыма толькі для некаторых тыпаў дадзеных і патрабуе асаблівай арганізацыі кода[2]. Аб'ём кода, як правіла, павялічваецца ў некалькі разоў[3] (па параўнанні з AS1)
Версіі плэера
Новаўвядзенні
2
З’явіліся «дзеянні», ў далейшым вядомыя як:
gotoAndStop();
gotoAndPlay();
nextFrame();
prevFrame();
getURL();
3
З’яўленне loadMovie();
4
Першая версія з поўнай падтрымкай скрыптовай імплементацыі.
5
З’яўленне першай версіі ActionScript. Выкарыстоўвалася прататыпнае праграмаванне на базе ECMAScript і прадастаўлена поўная падтрымка працэдурнага і аб’ектна-арыентаванага праграмавання.
З’яўленне нізкаузроўневага API для працы з графікай, USB-прыладамі
3D-Акселерацыя
Падтрымка версій ActionScript:
Не падтрымліваецца
AS1
AS1, AS2
AS1, AS2, AS3
Сінтаксіс
Сінтаксіс ActionScript заснаваны на спецыфікацыі ECMAScript.
ActionScript 2.0
Гэты код стварае новае тэкставае поле, на глыбіні (depth) 0, у пункце (0, 0) і памерам 100 на 100 пікселяў. Параметр text роўны радку «Hello, world». Код павінен быць запісаны ў акне action — frame
Аб’ект. Ключавой клас ААП. З’яўляецца асновай усіх класаў AS3.
Array
Масіў дадзеных нестрогой тыпізацыі. Можа прымаць любыя значэння, напрыклад: ['a', 5, new TextField()]
Vector
Масіў дадзеных строгай тыпізацыі. Напрыклад масіў Vector.<String> можа ўтрымліваць толькі радковыя дадзеныя ['a','b',' ']
Date
Клас, які змяшчае звесткі аб даце/часу.
Error
Клас, які змяшчае памылкі.
Function
Асноўны клас. Прыкладам з’яўляецца любы метад AS3.
RegExp
Рэгулярныя выразы
XML
XML-аб’ект, які базуецца на E4X (стандарт ECMA-357)
XMLList
Array-базаваны аб’ект для пошуку кантэнту ў XML-класе.
Пакеты
ActionScript 3.0 (а дакладней Flash Player 9 API — можна сказаць, стандартная бібліятэка, напісаная на C++) складаецца з больш чым 700 класаў, арганізаваных у наступныя пакеты (аналагі прастор імёнаў у C++):
Пакет
Апісанне
flash.accessibility
класы для падтрымкі доступу ў Flash кантэнту і прыкладанняў.
flash.display
асноўныя класы, якія Flash Player выкарыстоўвае для высновы выявы на экран.
flash.errors
класы, што часта выкарыстоўваюцца для апрацоўкі памылак.
flash.external
змяшчае клас ExternalInterface, які выкарыстоўваецца для сувязі з кантэйнерам Flash player'а.
flash.filters
класы для працы з фільтрамі растравых выяваў.
flash.geom
класы для працы з геаметрычнымі класамі, такімі як кропкі, прастакутнікі і матрыцы трансфармацыі — для падтрымкі класа BitmapData і магчымасці кэшавання выяваў.
flash.media
класы для працы з мультымедыя — напрыклад, гукамі і відэа.
flash.net
класы для адпраўкі і атрымання дадзеных па сетцы. Напрыклад, запыты URL і Flash Remoting.
flash.printing
класы для вываду на друк змесціва Flash-фільма.
flash.profiler
функцыі, якія выкарыстоўваюцца для адладкі і прафілявання кода.
flash.system
класы для доступу да сістэмы на ўзроўні функцыянальнасці, такія як бяспека, шматмоўнага зместу і г.д.
flash.text
класы для працы з тэкстам, яго фарматаваннем, памерам, стылем і размяшчэннем.
flash.ui
класы карыстацкага інтэрфейсу, такія як класы для працы з мышшу і клавіятурай.
flash.utils
дадатковыя класы, такія як ByteArray для працы з бінарнымі дадзенымі, Timer для адліку інтэрвалаў часу і інш.
flash.xml
забяспечвае падтрымку XML і ўсе функцыі для працы з XML. (Неабходны для падтрымкі папярэдніх версій AS)
Таксама існуюць mx.* пакеты, якія складаюцца з класаў, прызначаных для стварэння інтэрфейсу прыкладання ў асяроддзі Flex і fl.* пакеты, для асяроддзя Flash
Папулярныя асяроддзя
Adobe Flash — гістарычна першае асяроддзе, якое падтрымлівае AS. Пачынаючы з Flash 5 з’явілася панэль «ACTIONS», з магчымасцю рэдагавання кода (AS1). Для Flash 6 быў створаны AS2. Пачынаючы з Flash 9 з’явілася падтрымка AS3.
Adobe Flash Builder — асяроддзе распрацоўкі для стварэння RIA дадаткаў для настольнага камп'ютара і мабільных прылад.
Powerflasher FDT — асяроддзе, прызнанае вопытнымі флэш-праграмістамі, грунтуецца на eclipse — вольным інтэграваным асяроддзі распрацоўкі модульных кросплатформавых прыкладанняў.
FlashDevelop — свабоднае асяроддзе распрацоўкі і рэдактар, напісаны на C #, які дазваляе ствараць Flash-дадаткы пры дапамозе Flash IDE, Flex SDK, MTASC або haxe.