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="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, 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) .
Зноскі
Спасылкі
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.