ActionScript

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене
ActionScript
Farm-Fresh page white actionscript.png.
Информация
Автор Гари Гросман
Разработчик Macromedia (сега към Adobe Systems)
Последна версия

3.0


27-ми юни 2006
Уебсайт http://www.adobe.com/devnet/actionscript.html

ActionScript е ECMAScript базиран програмен език, използван за писане на Macromedia Flash филмчета и приложения. Тъй като и ActionScript и JavaScript са базирани на един и същ ECMAScript синтаксис, теоретично е лесно превеждането от един на друг. Но докато за JavaScript's DOM (Document Object Model) обект са прозорецът на браузъра, отделния документ и формата, за ActionScript това е SWF (Small Web Format), който може да включва анимация, звук, текст и др. Скриптовият език е начин за комуникация с програмата, при който можете да окажете на Flash какво да направи или да го попитате какво става докато филмът върви. Този двустранен вид комуникация позволява да се създават интерактивни филми.

История[редактиране | редактиране на кода]

Кодът създава подскачаща топка, която може да бъде подхваната и пусната.]] ActionScript се появява с текущия синтаксис с излизането на Flash 5, който е първата напълно програмно ориентирана версия на Flash. Тази версия на ActionScript е именувана ActionScript 1.0. Във Flash 6 (MX) е било разширен с помощна среда за програмиране с добавяне на вградени функции и подобрен програмен контрол на елементите в файла. Flash 7 (MX 2004) представя ActionScript 2.0, към който е добавено стриктното типизиране и класово ориентирано програмиране особености като изрична декларация клас, онаследняване, интерфейси. ActionScript 1.0 и 2.0 имат един и същ изходен компилиран формат - SWF (Shock Wave File).

Версии[редактиране | редактиране на кода]

  • Flash Player 2: Първата версия с поддръжка на скриптове, включващи gotoAndPlay, gotoAndStop, nextFrame и nextScene за контрол на времевата линия и сцените.
  • Flash Player 3: Разширява основната функционалност с възможността да се зареждат външни SWF файлове с loadMovie.
  • Flash Player 4: Първия плеър с пълна поддръжка на скриптопе наричани Actions. Скриптовете са били със slash базиран синтаксис и е имало поддръжка на цикли, условности, промениливи и други основни конструкции.
  • Flash Player 5: Включва първата версия на същинския ActionScript. Въведени са програмиране с прототипи базирано на ECMAScript, въведени са Процедурното и Обектно ориентираното програмиране.
  • Flash Player 6: Добавена е поддръжка на събития.
  • Flash Player 7: Flash Player 7 предлага някои нови възможности като CSS форматиран текст и подобрения в бързодействието. Macromedia Flash 7 компилаторът поддържа ActionScript 2.0, Класово ориентиран програмен език базиран на ECMAScript 4 Netscape Proposal. Допълнително ActionScript 2.0 може да прекомпилира до ActionScript 1.0 в байт код, така че да може да се изпълни във Flash Player 6.
  • Flash Player 8: Допълнително разширен ActionScript 2.0 с добавянето на нови библиотеки с класове с функции за контролиране на bitmap изображения при изпълнение на кода.
  • Flash Player 9 (първоначално наречен 8.5): Добавен е ActionScript 3.0 заедно с появяването на нова виртуална машина, наречена AVM2 (ActionScript Virtual Machine 2), която съществува едновременно с предишната AVM1 необходима за поддръжката на старите кодове. Подобрения в бързодействието е значително в тази версия включваща новата JIT компилация. Това е първата версия на плеъра наричана Adobe Flash Player.
  • Flash Lite 1.0 and 1.1: Flash Lite е Flash технология специално разработена за мобилни телефони и електронни устройства. Flash Lite 1.1 поддържа Flash 4 ActionScript.
  • Flash Lite 2.1: Добавена е поддръжка на Flash 7 ActionScript 2.0.

ActionScript 2.0[редактиране | редактиране на кода]

Синтаксис[редактиране | редактиране на кода]

В ActionScript 2.0 може да има класове, както и елементи от библиотеката (MovieClip) могат да бъдат свързани с класа. Класовете винаги се пишат във външни текстови файлове, и тези фалйове са с разширение .as. Класовете са допълнения към езика ActionScript, които програмиста може сам да напише, въпреки че има много готови класове като MovieClip класа, който може да бъде използван за рисуване на вектори динамично. Класовете улесняват програмиста и файловете с класовете могат да бъдат използвани в много проекти, ако е необходимо.

Възможности на Flash ActionScript, които JavaScript програмистите могат да намерят за интересни:

  • Всичко е с презумцията да бъде асинхронно;
  • Flash 5 може да изпраща и приема XML, което може да бъде използвано за направата на онлайн игри.

ActionScript кодът често се пише директно във Flash средата за разработка, която предлага връзка, подсказки и оцветяване. Често, кодът се запазва с останалите елементи във .fla файл. Практика е и импортването на външни ActionScript кодове от външни файлове, чрез include. В този случай външния файл може да бъде компилиран с вградения за Flash компилатор IDE или с Motion Twin ActionScript2 Compiler (MTASC).

ActionScript 3.0[редактиране | редактиране на кода]

ActionScript 3.0 има сходен синтаксис с този на предходната версия, но използва различен набор от API за създаване на обекти.

Сравнение между двете версии на програмния език:

Версия 2.0:

class com.example.Greeter extends MovieClip

{
    public function Greeter()
    {
        var txtHello:TextField = this.createTextField("txtHello", 0, 0, 0, 100, 100);
        txtHello.text = "Hello, world";
    }

}

Версия 3.0:

package com.example

{
    import flash.text.TextField;
    import flash.display.Sprite;
 
    public class Greeter extends Sprite
    {
        public function Greeter()
        {
            var txtHello:TextField = new TextField();
            txtHello.text = "Hello World";
            addChild(txtHello);
        }
    }

}

ActionScript 3.0 също може да се използва в MXML, когато се използва Apache's Flex framework.

Структура на данни[редактиране | редактиране на кода]

ActionScript основно се състои от "фундаментални" или "прости" видове, които се използват за създаване на други типове данни. Тези типове данни са много сходни с типове Java данни. Тъй ActionScript 3 беше напълно пренаписан спрямо ActionScript 2, типовете данни и техните наследствата са се променили.

ActionScript 2.0[редактиране | редактиране на кода]

Основи[редактиране | редактиране на кода]

  • String - Ред от символи (може да е само един знак, дума, изречение). Пример: "Здравей, свят";
  • Number - Всяка числена стойност;
  • Boolean - Просто бинарно (двоично) хранилище, което може да съхранява само "вярно" или "грешно".
  • Object - Обектът може да съчетае всички останали видове данни. Позволява да се групират методи, функции, параметри и други обекти.

Сложни[редактиране | редактиране на кода]

Има допълнителни "сложни" типове данни. Това са интензивни задачи за процесора и паметта и се състоят от много "прости" типове данни. За AS2, някои от тези типове данни са:

  • MovieClip - Творение на ActionScript, позволяващо лесно използване на видими обекти;
  • TextField - Може да бъде обикновено, динамично или въвеждащо. Наследява MovieClip;
  • Button - Бутон, с 4 състояния (поведения): Мишка не задържана на него, мишка на него, Мишка натисната на него и мишка задържана на него. Наследява MovieClip;
  • Date - Дава достъп до информация в определено време;
  • Array - Позволява да се съхранява поредност от информация;
  • XML - XML обект
  • XMLNode - XML връзка
  • LoadVars
  • Sound
  • NetStream
  • NetConnection
  • MovieClipLoader
  • EventListener.

ActionScript 3.0[редактиране | редактиране на кода]

Основни[редактиране | редактиране на кода]

  • Boolean - Булевата стойност позволява да се съдържа само 1 (вярно) или 0 (грешно). Няма други валидни стойности;
  • int - 32-бирова целочислена стойност. Може да приема всичко между -2,147,483,648 и 2,147,483,647;
  • Null - Съдържа само една стойност — null. Стандартна стойност за стринговите данни и обектите;
  • Number - Числото може да представя целочислени, положителни целочислени и числа с плаваща запетая. Number използва 64-bit формат с довйна прецизност по IEEE Стандарт за бинарни числа с плаваща прецизност (IEEE-754). Стойности между -9,007,199,254,740,992 (-253) и 9,007,199,254,740,992 (253) могат да се съхраняват.
  • String - Представя последователност от 16-bit символи. Стринговете се съхраняват като последователност от символи, използвайки формат UTF-16. Предишната версия на Флаш използва UTF-8 формат.
  • uint - Положителният целочислен формат (Unsigned Integer) използва 32-bit положителни целочислени числа между 0 и 4,294,967,295.
  • void - Типът void съдържа само една стойност — undefined (недефинирана). В миналите версии на ActionScript, undefined беше подразбиращата се стойност на Обект класа. В ActionScript 3.0, подразбиращата се стойност на Обект класа е null.

Сложни[редактиране | редактиране на кода]

  • Array — Съдържа лист от данни.
  • Date — Обект, съдържаща дата (време).
  • Error — Генерална грешка, която програмата връща.
  • flash.display:Bitmap — Неанимиран битмап обект
  • flash.display:MovieClip — Анимиран MovieClip обект; Времената линия на Флаш подразбиране е MovieClip.
  • flash.display:Shape — Неанимирана фигура.
  • flash.display:SimpleButton — Обикновен бутон, поддържащ "up", "over" и "down" състояния.
  • flash.display:Sprite — Показен обект, без времева линия.
  • flash.media:Video — Директно възпроизвеждане на видео, поддържащ теглене в реално време (progressive download) или стийминг (RTMP) транпорт. От Flash Player версия 9.0.115.0, се поддържа H.264/MP4 висококачествен видео формат, поддържа се и стандарт Flash video (FLV).
  • flash.text:TextField — Динамично, опциално текстово поле.
  • flash.utils:ByteArray -Съдържа ред от бинарни данни.
  • flash.utils:Dictionary — Речниците са варианти на Обектите, които могат да съдържат всякакви данни (докато Object винаги използва стрингове като негов ключ).
  • Function — Ключов клас в дефенирането на методи
  • Object — Дефинира се от Object класа.
  • RegExp — Regular expression обект за стрингове.
  • Vector — Варант на Array, който се поддържа Flash Player 10 или нагоре.
  • XML
  • XMLList

Външни препратки[редактиране | редактиране на кода]