Партийная жизнь
- 1 year ago
- 0
- 0
ActionScript | |
---|---|
MIME -тип | application/ecmascript |
Разработчик | Macromedia |
Последний выпуск | |
Тип формата | язык функционального программирования , мультипарадигмальный язык программирования и язык программирования |
Сайт |
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 ) являются открытым программным обеспечением . В 2020 Adobe передало обновление ActionScript компании HARMAN . В 2022 HARMAN предоставили приветствие вклада
ActionScript как язык появился с выходом 5-й версии Macromedia Flash , которая стала первой программируемой на ActionScript средой. Первая вышедшая версия языка называлась ActionScript 1.0. 6-я версия Flash (MX) также использовала ActionScript 1.0. В 2004 году компания Macromedia представила новую версию ActionScript 2.0 вместе с выходом Flash 7 (MX 2004), в которой было введено строгое определение типов, а также программирование, основанное на классах. То есть появились новые ключевые слова:
Также 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).
Версии плеера | Нововведения |
---|---|
2 |
Появились «действия», в дальнейшем известные как:
|
3 | Появление loadMovie(); |
4 | Первая версия с полной поддержкой скриптовой имплементации. |
5 | Появление первой версии ActionScript. Использовалось прототипное программирование на базе ECMAScript и предоставлена полная поддержка процедурного и объектно-ориентированного программирования. |
6 | |
7 |
|
8 |
|
9 | |
10 | |
10.2 |
|
11 |
|
Поддержка версий ActionScript: | |||
---|---|---|---|
Не поддерживается | AS1 | AS1, AS2 | AS1, AS2, AS3 |
Синтаксис ActionScript основан на спецификации ECMAScript .
Данный код создаёт новое текстовое поле на глубине (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!";
}
}
В исходном коде, компилируемом 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!";
addChild(txtHello);
}
}
Код, написанный на 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>
Пример работы отладчика. Выводит на экран output любые данные, которые возможно преобразовать в String (AS2 и далее):
trace("Hello world!");
Тип | Описание |
---|---|
String | Строчка, массив символов, например: «Hello, World» |
Number | Любое числовое значение, например: 0, 0.5, 1150 |
Boolean | Логическая величина, может принимать значения «true» или «false». |
Object | Объект. Примером объекта являются классы, методы, функции, параметры и т. д. |
Тип | Описание |
---|---|
MovieClip | Графический объект, содержащий кадры. |
TextField | Динамическое или вводимое текстовое поле. |
Button | Кнопка. Является по сути Movie Clip с предопределенным поведением. Состоит из 4 кадров: Up, Over, Down и Hit. |
Date | Объект, содержащий сведения о дате/времени. |
Array | Массив данных. |
XML | XML-объект |
XMLNode | XML-node |
LoadVars | Служит для отправки и приёма переменных при помощи HTTP POST и HTTP GET |
Sound | Содержит звуковые данные .MP3 формата |
NetStream | Содержит звуковые данные других форматов |
NetConnection | Позволяет взаимодействовать 2 flash-роликам в одной области видимости (например на рабочем столе, или в одной вкладке браузера) |
MovieClipLoader | Класс для подзагрузки swf роликов и .jpg .png изображений |
EventListener | Обработчик событий |
(см. )
Тип | Описание |
---|---|
Boolean | Логическая величина, может принимать значения «true» или «false». |
int | целочисленное 32-битное числовое значение в диапазоне от −2 31 до 2 31 −1. |
uint | целочисленное 32-битное числовое значение в диапазоне от 0 до 2 32 −1. |
Number | дробное 64-битное числовое значение в диапазоне от −2 63 до 2 63 −1. |
null | ноль. Ссылка на пустоту. |
String | Строчка из 16-битных символов. Используется кодировка UTF-16. |
void | тип данных с одним значением — undefined. Используется, если программист хочет указать тип функции как «невозвращаемый». |
(см. )
Тип | Описание |
---|---|
Object | Объект. Ключевой класс ООП. Является основой всех классов 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