ActionScript

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 — адкрытая мова праграмавання, яе спецыфікацыя знаходзіцца ў адкрытым доступе на сайце Adobehttp://help.adobe.com/livedocs/specs/actionscript/3/wwhelp/wwhimpl/js/html/wwhelp.htm . Кампілятар (як частка 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). Такое павелічэнне прадукцыйнасці магчыма толькі для некаторых тыпаў дадзеных і патрабуе асаблівай арганізацыі кодаTed Patrick | Entrepreneur, father, and interactive software developer . Аб'ём кода, як правіла, павялічваецца ў некалькі разоўSix reasons to use ActionScript 3.0 | Adobe Developer Connection (па параўнанні з AS1)
Версіі плэераНоваўвядзенні2З’явіліся «дзеянні», ў далейшым вядомыя як:
 gotoAndStop();
 gotoAndPlay();
 nextFrame();
 prevFrame();
 getURL();3З’яўленне loadMovie();4 Першая версія з поўнай падтрымкай скрыптовай імплементацыі.5З’яўленне першай версіі ActionScript. Выкарыстоўвалася прататыпнае праграмаванне на базе ECMAScript і прадастаўлена поўная падтрымка працэдурнага і аб’ектна-арыентаванага праграмавання.6 Дададзеная падзейную мадэль
 switch
 З’явілася падтрымка AMF і RTMP пратаколаў.7 З’яўленне AS2, які грунтуецца на ECMAScript 4 з класа-базаваным праграмаваннем.
 Дададзеная падтрымка CSS для тэксту.8 З’яўленне новых правілаў бяспекі.
 Даданне фільтра AS1/AS2.
 З’яўленне класа, для прагляду Bitmap Data ў рэальным часе.9 Новы скрыптовы рухавік ECMAScript, ActionScript Virtual Machine AVM2. AVM захаваны для сумяшчальнасці, дададзеная падтрымка ActionScript 3 праз AVM2.
 З’яўленне пашырэння E4X для XML.10 3D-эфекты
 Розныя фільтры і эфекты
 Пашыраная схема размяшчэння тэксту
 Палепшана API Малявання10.2 палепшаная падтрымка p2p, Дададзена шумапрыглушэнне.11 З’яўленне нізкаузроўневага API для працы з графікай, USB-прыладамі
 3D-Акселерацыя
Падтрымка версій ActionScript:Не падтрымліваеццаAS1AS1, AS2AS1, AS2, AS3

 Сінтаксіс 
Сінтаксіс ActionScript заснаваны на спецыфікацыі ECMAScript.

 ActionScript 2.0 
Гэты код стварае новае тэкставае поле, на глыбіні (depth) 0, у пункце (0, 0) і памерам 100 на 100 пікселяў. Параметр text роўны радку «Hello, world». Код павінен быць запісаны ў акне action — framecreateTextField("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="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!");

 Структура 

 ActionScript 2 

 Элементарныя тыпы дадзеных 
 Тып АпісаннеStringРадок, масіў сімвалаў, напрыклад: «Hello World»NumberЛюбое лікавае значэнне, напрыклад: 0, 0.5, 1150BooleanЛагічная велічыня, можа прымаць значэння «true» альбо «false».ObjectАб’ект. Прыкладам аб’екта з’яўляюцца класы, метады, функцыі, параметры...

 Складаныя тыпы дадзеных 
 Тып АпісаннеMovieClipГрафічны аб’ект, які змяшчае кадры.TextFieldДынамічнае тэкставае поле або тое, што ўводзіцца.ButtonКнопка. З’яўляецца па сутнасці Movie Clip з перадвызначанымі паводзінамі. Складаецца з 4 кадраў: Up, Over, Down і Hit.DateАб’ект, які змяшчае звесткі аб даце/часу.ArrayМасіў дадзеных.XMLXML-аб’ектXMLNodeXML-nodeLoadVarsСлужыць для адпраўкі і прыёму зменных пры дапамозе HTTP POST і HTTP GETSoundЗмяшчае гукавыя дадзеныя .MP3 фарматуNetStreamЗмяшчае гукавыя дадзеныя іншых фарматаўNetConnectionДазваляе ўзаемадзейнічаць 2 flash-ролікам ў адной вобласці бачнасці (напрыклад на працоўным стале, або ў адной ўкладцы браўзэра)MovieClipLoaderКлас для падзагрузкі swf ролікаў і .jpg .png выяваўEventListenerАпрацоўшчык падзей

 ActionScript 3 

 Элементарныя тыпы дадзеных 
(гл. дакументацыю Adobe )
 Тып Апісанне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 )
 Тып АпісаннеObjectАб’ект. Ключавой клас ААП. З’яўляецца асновай усіх класаў AS3.ArrayМасіў дадзеных нестрогой тыпізацыі. Можа прымаць любыя значэння, напрыклад: ['a', 5, new TextField()]VectorМасіў дадзеных строгай тыпізацыі. Напрыклад масіў Vector.<String> можа ўтрымліваць толькі радковыя дадзеныя ['a','b',' ']DateКлас, які змяшчае звесткі аб даце/часу.ErrorКлас, які змяшчае памылкі.FunctionАсноўны клас. Прыкладам з’яўляецца любы метад AS3.RegExpРэгулярныя выразыXMLXML-аб’ект, які базуецца на E4X (стандарт ECMA-357)XMLListArray-базаваны аб’ект для пошуку кантэнту ў 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) .

 Спасылкі 
 Старонка на сайце Adobe

Катэгорыя:З’явіліся ў 1998 годзе
Катэгорыя:Мовы праграмавання паводле алфавіта