| Класс языка | Объектно-ориентированный, прототипный, императивный, скриптовый |
|---|---|
| Появился в | 1998 |
| Автор | Гарри Гроссман |
| Разработчик | Macromedia |
| Выпуск | 3.0 |
| Система типов | сильная, статическая |
| Основные реализации | Adobe Flash Player, Adobe AIR, Apache Flex |
| Испытал влияние | JavaScript, Java |
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[1]. Компилятор (как часть Apache Flex) и открытая виртуальная машина (Tamarin) являются открытым программным обеспечением. В 2020 Adobe передало обновление ActionScript компании HARMAN[2]. В 2022 HARMAN предоставили приветствие вклада[3][4].
История#edit
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). Такое увеличение производительности возможно лишь для некоторых типов данных и требует особой организации кода[5]. Объём кода, как правило увеличивается в несколько раз[6] (по сравнению с AS1).
Синтаксис#edit
Синтаксис ActionScript основан на спецификации ECMAScript.
ActionScript 2.0#edit
Данный код создаёт новое текстовое поле на глубине (depth) 0, в точке (0, 0) и размером 100 на 100 пикселей. Параметр text равен строчке «Hello, world». Код должен быть записан в окне action — frame
createTextField("greet", 0, 0, 0, 100, 100);
greet.text = "Hello world!";
Пример класса, написанного на 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 Ako!";
}
}
ActionScript 3.0#edit
В исходном коде, компилируемом Adobe Flex SDK (AS 3.0):
package {
import flash.display.Sprite;
import flash.text.TextField;
public class HelloWorld extends Sprite {
public function HelloWorld() {
var txtHello:TextField = new TextField();
txtHello.text = "Hello world!";
this.addChild(txtHello);
}
}
MXML#edit
Код, написанный на MXML (расширение XML):
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" layout="vertical"
creationComplete="initApp()">
<mx:Script>
<![CDATA[
public function initApp():void
{
// Prints our "Hello, world!" message into "mainTxt".
mainTxt.text = Greeter.sayHello();
}
]]>
</mx:Script>
<mx:Label id="title" fontSize="24" fontStyle="bold" text='"Hello, world!" Example'/>
<mx:TextArea id="mainTxt" width="250"/>
</mx:Application>
Отладчик#edit
Пример работы отладчика. Выводит на экран output любые данные, которые возможно преобразовать в String (AS2 и далее):
trace("Hello world!");
Структура#edit
ActionScript 3#edit
Элементарные типы данных#edit
(см. документацию Adobe)
Сложные типы данных#edit
(см. документацию Adobe)
Пакеты#edit
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
Популярные среды#edit
- 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) .
Примечания#edit
- ^ Архивированная копия. Дата обращения: 9 июля 2015. Архивировано из оригинала 27 марта 2017 года.
- ^ Для получения последней версии AIR посетите веб-сайт HARMAN/Action Script. Дата обращения: 21 сентября 2023. Архивировано 6 сентября 2023 года.
- ^ Adobe AIR SDK from HARMAN. airsdk.harman.com. Дата обращения: 21 сентября 2023. Архивировано 30 сентября 2023 года.
- ^ ActionScript 3.0 Language Reference. airsdk.dev. Дата обращения: 21 сентября 2023. Архивировано 25 сентября 2023 года.
- ^ Ted Patrick | Entrepreneur, father, and interactive software developer Архивировано 30 сентября 2009 года.
- ^ Six reasons to use ActionScript 3.0 | Adobe Developer Connection. Дата обращения: 9 декабря 2009. Архивировано 10 февраля 2009 года.
Ссылки#edit
This article is mirrored from “ActionScript” on Русский Wikipedia, revision 150421630, written by Wikipedia's contributors and licensed CC BY-SA 4.0. Editing it here creates a Quire copy with its own history.
Synced with Wikipedia revision 150421630 · just now