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 — відкритий мова програмування, його специфікація знаходиться у відкритому доступі на сайті Adobe[]. Компілятор (як частина Apache Flex) і відкрита віртуальна машина (Tamarin) є відкритим програмним забезпеченням.
ActionScript як мову з'явився з виходом 5-й версії Macromedia Flash, яка стала першої програмованої на ActionScript середовищем. Перший реліз мови називався ActionScript 1.0. 6-я версія Flash (MX) також використовувала ActionScript 1.0. У 2004 році компанія Macromedia представила нову версію ActionScript 2.0 разом з виходом Flash 7 (MX 2004), в якій було введено чітке визначення типів, а також програмування, засноване на класах. Тобто з'явилися нові ключові слова: class (клас), interface (інтерфейс), 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 (що забезпечує значний приріст продуктивності: до 10000 разів). ActionScript 3.0 по швидкості наблизився до таких мов програмування, як Java і C#. Збільшення продуктивності ґрунтується на динамічній трансляції коду (JIT). Таке збільшення продуктивності можливе лише для деяких типів даних і вимагає особливої організації коду[]. Обсяг коду, як правило збільшується в кілька разів[] (порівняно з AS1)
ActionScript 2.0
Цей код створює нове текстове поле, на глибині(depth) 0, в точці (0, 0) і розміром 100 на 100 пікселів. Параметр text дорівнює рядку «Hello, world». Код повинен бути записаний у вікні action —
Приклад класу, написаного на AS2. Код повинен зберігатися в окремому .as файлі і розташовуватися в одній папці .fla попередником проекту.
class com.example.Greeter extends MovieClip { public function Greeter() { } public function onLoad() :Void { var txtHello:TextField = this.createTextField("txtHello", 0, 0, 0, 100, 100); txtHello.text = "Hello world!"; } }
ActionScript 3.0
У вихідному коді компилируемом Adobe Flex SDK (AS 3.0):
public class HelloWorld extends Sprite { public function HelloWorld() { var txtHello:TextField = new TextField(); txtHello.text = "Hello world!"; addChild(txtHello); } } }
<МХ:скрипт> <![Тип CDATA[ державну функцію initApp():void у { // Друкує наша "Здрастуй, світ!" повідомлення "mainTxt". mainTxt.текст = Закликальником.sayhello (); } ]]> </МХ:скрипт>
<МХ:мітка ідентифікатор="назва" властивість fontsize="24" властивість fontstyle="напівжирний" текст="Привіт, світ!" Приклад'/> <МХ:текстове поле з ID="mainTxt" Ширина="250"/>
</МХ:додатки>
Приклад роботи відладчика. Виводить на екран вихідного будь-які дані, які можливо перетворити на рядок (АС2 і далі): трасування("Привіт світ!");
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.* пакети для середовища Fla
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. CodeDrive — Середовище розробки і редактор, з досить швидким компілятором, заснована на Microsoft Visual Studio. SWFTools — Вільний пакет для роботи з swf-файли, пакет включає компілятор ActionScript 3.0 (as3compile) .