ActionScript
ActionScript | |
---|---|
Клас мовы | аб'ектна-арыентаваны, прататыпны, імператыўны, скрыптовы |
З’явілася ў | 1998 |
Аўтар(ы) | Гары Гросман |
Рэліз | 3.0 |
Тыпізацыя даных | моцная, статычная |
Асноўныя рэалізацыі | Adobe Flash Player, Adobe AIR, Apache Flex |
Зведала ўплыў | JavaScript, Java |
Сайт |
www.adobe.com help.adobe.com |
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) з’яўляюцца адкрытым праграмным забеспячэннем.
Гісторыя
[правіць | правіць зыходнік]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 |
З’явіліся «дзеянні», ў далейшым вядомыя як:
|
3 | З’яўленне loadMovie(); |
4 | Першая версія з поўнай падтрымкай скрыптовай імплементацыі. |
5 | З’яўленне першай версіі ActionScript. Выкарыстоўвалася прататыпнае праграмаванне на базе ECMAScript і прадастаўлена поўная падтрымка працэдурнага і аб’ектна-арыентаванага праграмавання. |
6 | |
7 |
|
8 |
|
9 | |
10 | |
10.2 |
|
11 |
|
Падтрымка версій ActionScript: | |||
---|---|---|---|
Не падтрымліваецца | AS1 | AS1, AS2 | AS1, AS2, AS3 |
Сінтаксіс
[правіць | правіць зыходнік]Сінтаксіс ActionScript заснаваны на спецыфікацыі ECMAScript.
ActionScript 2.0
[правіць | правіць зыходнік]
Гэты код стварае новае тэкставае поле, на глыбіні (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 world!";
}
}
ActionScript 3.0
[правіць | правіць зыходнік]У зыходным кодзе кампіляванам 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
[правіць | правіць зыходнік]Код, напісаны на MXML (пашырэнне XML):
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="https://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!");
Структура
[правіць | правіць зыходнік]ActionScript 2
[правіць | правіць зыходнік]Элементарныя тыпы дадзеных
[правіць | правіць зыходнік]Тып | Апісанне |
---|---|
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 | Апрацоўшчык падзей |
ActionScript 3
[правіць | правіць зыходнік]Элементарныя тыпы дадзеных
[правіць | правіць зыходнік](гл. дакументацыю Adobe Архівавана 2 лістапада 2007.)
Тып | Апісанне |
---|---|
Boolean | Лагічная велічыня, можа прымаць значэння «true» альбо «false». |
int | цэлалікавае 32-бітнае лікавае значэнне ў дыяпазоне ад -231 да 231-1. |
uint | цэлалікавае 32-бітнае лікавае значэнне ў дыяпазоне ад 0 да 232-1. |
Number | дробавае 64-бітнае лікавае значэнне ў дыяпазоне ад -263 да 263-1. |
null | нуль. Спасылка на пустэчу. |
String | Радок з 16-бітных знакаў. Выкарыстоўваецца кадзіроўка UTF-16. |
void | тып дадзеных з адным значэннем — undefined. Выкарыстоўваецца, калі праграміст хоча паказаць тып функцыі як «які ня вяртаецца». |
Складаныя тыпы дадзеных
[правіць | правіць зыходнік](гл. дакументацыю Adobe Архівавана 2 лістапада 2007.)
Тып | Апісанне |
---|---|
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
Папулярныя асяроддзя
[правіць | правіць зыходнік]- 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) .