Лекция 1

Download Report

Transcript Лекция 1

1
СЪДЪРЖАНИЕ
I. Въведение в ActionScript 3.0
o
o
o
o
Kaкво ще научим от курса
Елементи на езика.
Основни стандарти на езика.
Прилики и разлики между АctionScript 1.0 и
АctionScript 2.0, АctionScript 3.0.
II. Работа с функции
o
o
Създаване на функции и добавяне на
параметри към тях.
Използване на локални променливи и
създаване на функции връщащи резултат.
III. Литература
Какво ще знаете накрая?
o
Да планувате интерактивни проекти
o
Разбирате ActionScript синтаксиса и как да използвате езика
o
Да използвате event handlers, за създаване на разнообразни действия
o
Да разбирате и използвате вградените класове, свойства и методи на
обектите във Flash CS 5.5, да манипулирате с текст и числа, както и да
изпълнявате специфични задачи динамично
o
Използвате функции, да създавате потребителски класове
o
Да прилагате условна логика във вашите филмчета, с която те да реагират
при различни ситуации по съответен начин
o
Да използвате цикли, за да автоматизирате различни задачи
Какво ще знаете накрая?
o
Да използвате (UI) компонентите и да настройвате по свой начин
потребителския интерфейс, използвате обектно-ориентирани техники
o
Увеличите ефективността на вашите приложения, използвайки BitmapData
класът
o
Прехвърляйки данни към и от Flash използвайки text files и XML, използвате
Web service
o
Да използвате ExternalInterface клас, за да комуникирате с JavaScript,
валидирате различни типове данни
o
Динамично да контролирате вашите анимации, да кодирате звуци, за да
направите вашия проект по-привлекателен
o
Зареждате и освобождавате различни типове медия от вашия проект,
създавате приложения, които използвате трета страна освен Flashвъзможностите, отпечатвате Flash съдържание използвайки ActionScript
Въведение във Flash CS 5 – малко история
С версията Flash 4 се за ражда нов скриптов език за
програмиране в Flash. Представена е първата версия на
ActionScript. След това предимствата на Flash стават
наистина големи.
Векторната анимация, придружена със скриптовия
език бързо правят Flash популярен в уеб. Macromedia
бързо осъзнават, че това е шансът им да променят
обстановката в Интернет пространството в световен
мащаб. В началото някой смятали даже че Flash ще
замести HTML като инструмент за създаване на цялостни
Уеб сайтове, но това бързо било отхвърлено като идея
като непрактично и Macromedia се заловила с
усъвършенстването на Flash като силен Web инструмент.
Въведение във Flash CS 5 – малко история
Скоро на бял свят излиза и Flash 5 – една от най-важните като
нововъведения версии. Macromedia прави предприемчив ход –
преустройва ActionScript. Фактически Flash 4 се популяризира и
заради възможността за скриптово програмиране. А новото във
Flash 5 е въвеждането в ActionScript на структурни елементи от
ECMA scripting, по-известен като JavaScript. Macromedia използват
като предимство довода, че знаещите JavaScript лесно могат да
започнат с програмиране на ActionScript.
Flash 6 обогатява още ActionScript и представя нови технологии
— две от най-важите са Компонентите и възможността за вграждане
на Видео. Компонентите се появяват още във Flash 5 като
SmartClips, но в новата версия са структурно променени. Видеото,
обаче е голямата печеливша карта. Днес то се използва навсякъде
в Web — даже повече от Real Player, Windows Media и QuickTime
последно време. Най-големият негов потребител е Google, но може
да го видите и на сайтове като News.com и Weather.com.
Въведение във Flash CS 5 – малко история
Flash 7 надстройва ActionScript към версия 2.0 и прави езикът
наистина обектно-ориентиран. Следващият голям тласък напред за
Flash е вече налице с Flex 2.0. Adobe® Flex™ 2 е мощно средство
за създаване и доставяне на така наречените Rich Internet
Applications (RIAs) в рамките на фирмите и в Интернет, последната
версия му е 4.5. Позволява предприятията да създават
персонализирани, мултимедийни приложения, които позволяват
лесното обогатяване на потребителския опит във взаимодействието
с Интернет. Сега вече на преден план е ActionScript версия 3.0 с
цел да могат приложенията писани с него да се изпълняват със
скоростта на обикновено приложение, работещо под нашата
операционна система. Следващата версия - Flash 9 вече позволява
създаването на приложения чрез ActionScript 3.0 и с Adobe Air.
През 2005, Adobe купи Macromedia и сложи отпечатък върху
цялата й продуктова линия. Flash, обаче оцеля. След единадесет
версии и три компании той си остава ядрото при дизайна и
разработката на Уеб сайтове и приложения под крилото на Adobе.
Въведение във Flash CS 5 – малко история
В този курс ще работим с Flash CS 5 (в момента най-новата е 5.5).
С него имаме основно 5 начина за създаване на анимация с Flash (без
да включваме тук ActionScript;):
- frame-by-frame анимация
- с clasic и shape tweening
- с motion tweening създавате обект и дефинирате промени към
неговите характеристики по време на изпълнение на анимацията.
Програмата създава серия от картини, в които се трансформират и
променят обектите.
- чрез възможностите на Flash за използване на кинематиката, при
които се създават скелетоподобни структури за контрол на обектите.
А ето какво ново има и в него:
1) С Flash CS5, Adobe представя нов формат, помагащ сортирането на
материалите съзададени в анимацията: XFL (от XML—extensible
markup language—for Flash). XFL формата съхранява файловете от
Library-то и кода като отделни подфайлове. По подразбиране Flash
компресира XFL файла и скрива структурата от вас.
Въведение във Flash CS 5 – малко история
2) XFG формат за да е лесно достъпен и в Adobe Photoshop,
Illustrator.
3) нов инструмент за работа с текст: TLF (Text Layout Framework
).
4) нов инструмент за декорация deco-tool пatterns.
5) редизайнът color панел.
6) ДРУГИ.
Ето и какво ново имаме във Flash CS 5.5:
- разширени фунционалности и по-голяма поддръжка на мобилни
устройства.
- по-лесно споделяне на ресурси между библиотеките (Libraries)
на отделните филмчета.
- подобрена работа със слоевете (вече може да ги копираме,
дуплицираме)
- обновен панел за по-лесно публикуване на съдържанието
Publish Settings
Въведение във Flash CS 5 – малко история
Бъдещето на Flash
Светът се пробуди за ново поколение Уеб технологии –
експертите го обозначават като "Web 2.0.". Както може да
очаквате Flash е в центъра на новия пейзаж... Но за разлика
от миналото сега Flash има конкуренция. Microsoft
представиха като част от Windows Vista и .NET 3.0 нова
технология за презентиране, наречена Windows Presentation
Foundation и мобилна версия, наречена Windows Presentation
Foundation Everywhere – Silverlight;) Е, това не е първият път,
който Microsoft се борят с Flash, но времето ще покаже.
Конкуренцията създава иновации. Следващите 10 години
може би ще са интересни като открития, следейки развитието
на Adobe и Microsoft в света на Web 2.0.
Въведение във Flash CS 5 – малко история
ActionScript е скриптовият език на Macromedia Flash.
Скриптовият език е начин за комуникация с програмата,
при който можете да окажете на Flash какво да направи
или да го попитате какво става докато филмът върви.
Този двустранен начин за комуникация ни позволява да
създаваме интерактивни филми. Oсигурява елементи
като действия (actions), събития (events), оператори
и обекти, които ние обединяваме в скриптове и казват
на нашия филм какво да прави. ActionScript е обектноориентиран, интерпретируем език за програмиране.
Вградените класове се наричат обекти. Movie clip са
най-важните обекти във Flash филм, защото те са мини
Flash филми. Потока на изпълнение на скрипта е от
първото изявление, последователно следващите до
края.
Въведение във Flash CS 5 – малко история
ActionScript е разработен въз основа на ECMAScript
(European Computers Manufacturers Association Script)
(стандартен език, положил началото и на други езици
като JavaScript, JScript - последните две са
стандартизираните/ унифицираните версии на езика.
Mного от синтактичните конструкции са познати, ако
имаме опит с JavaScript.
Някои съществени разлики:
o (Различните обектни модели на документа
(Different document object models) - Тъй като Flash
работи в собствена среда, съотнесена с елементи
като филми (movies) и звуци (sounds), той има
напълно различен обектен модел. Няма да
намерите вградени обекти като документ (document)
и прозорец (window).
Въведение във Flash CS 5 – малко история
o Не се поддържат всички изрази на JavaScript- Като
услов-ният и частта за изключения (exception)(try/catch/throw) блокът. Макар и в АctionScript
2004 вече да се появява и тази особеност.
o Специфични изрази- Езикът поддържа някои не
JavaScript изрази като контейнерите за събития (напр.,
onClipEvent) и изпращането на съобщения (напр.,
tellTarget).
o Функцията Eval - Функцията Eval, в ActionScript,
оценява единствено променливи референции.
o Вградени Обекти - ActionScript поддържа множество от
вградени JavaScript обекти Date (Дата) и String (Низ),
и редица техни методи и характеристики. Например,
към обекта String (Низ) липсват стандартни функции
за регулярни изрази като search и replace.
Елементи на езика
o
Посредникът между това, което разбираме
ние и Flash е езикът ÀctionScript. В един
проект на Flash езикът ни дава възможност
да задавате инструкции, ориентирани към
действия (направи еди какво си) и
инструкции (анализирай нещо, преди да
направиш друго). Подобно на всички езици за
програмиране, ActionScript съдържа
множество елементи като думи,препинателни
знаци и структури.
В продължение на лекциите ще се опитаме да
ги изясним.
Елементи на езика
o
Ето как изглежда един примерен код на езика
ÀctionScript MX:
on (release) {
// задаване на стойност на първа променлива
var promenliva1:Number = 3.00;
// задаване на стойност на втора променлива
var promenliva2:Number = 2.00;
// задаваме променлива, чиято стойност е
произведението // им
var mult:Number = promenliva1 *
promenliva2;
// визуализация на съобщение за потребителя
myTextBox_txt.text = “Произведението на
двете
променливи е:” + mult;
// изпращане на инстанцията на филмов клип
// calculator_mc на кадър 10
calculator_mc.gotoAndPlay (10);
}
Елементи на езика
o
A eто как изглежда един примерен код на езика
ActionScript 2.0 вече с променен синтаксис и
структуриране и работа с кода:
checkout_btn.onRelease = function() {
// задаване стойност и тип на чашата
var mugCost:Number = 5;
var taxPercent:Number = .06;
var totalTax:Number = mugCost * taxPercent;
var totalCost:Number = mugCost + totalTax;
// извеждане на съобщение
myTextBox_txt.text = "The total cost of your
transaction is " + totalCost;
//send the cashRegister_mc movie clip
instance to frame 50
cashRegister_mc.gotoAndPlay (50);
}
Елементи на езика
o Минимална азбука: букви A..Z, a..z, цифри 0..9,
  {}[]
 + – / * , . ‘ “     
o Допълнителни знакове са например: ! ? ^   $ & | и
др.
o Имаме следните примитивни и референтни типове:
Примитивни- Number (числов тип), Boolean (логически
тип), String (тип низ). Референтните типове- Arrays
(Масиви) и Objects (Обекти). Като типът Обект се дели
на две подгрупи: вградени (Math, Clip, Button, Frame, и
др.) и потребителски (създадени по ваша преценка).
Има също два специални типа данни: null и undefined.
o числови ТД (Number)
o логически ТД (Boolean)
o Tип низ (String)
Списък на служебните думи (Keywords) в ActionScript:
o Типична информация, която можем да държим в променлива
включва URL, потребителско име, резултат от математическа
операция, дали бутон е натиснат и други. Всеки филм или
инстанция на movie clip има свое множество от променливи,
всяка от която има собствена стойност, независеща от
променливите в другите филми или movie clip.
o Именоване на променливи- името трябва да отговаря на следните
условия:
o Да е идентификатор.
o Не може да е запазена дума или true или false, null или
undefined.
o Да е уникално в нейния обхват.
o В ActionScript 1.0 и ActionScript 1.5 не трябваше
изрично да се дефинира типът на променливата. Там самият
език определяше типа на данните на променлива, когато й се
присвои стойност. На променлива, на която не е била присвоена
стойност има тип undefined. Но сега в ActionScript 2.0
и 3.0 имаме строго типизиране данните.
Списък на всички действия в ActionScript:
o Kонтейнери на събитие (Event handlers)представляват специален механизъм, с който се
управляват събития като: отпускане на бутона на
мишката. Има два вида ActionScript (АS)
контейнера: действия и методи. Първите се
делят на още два (on и onClipEvent). За
методите (всеки обект с методи подкатегории,
наречени Събития).
o Функциите (Functions)- са блокове от код, които
могат да приема параметри и връщат стойности.
o Едноредов коментар е //. Всичко след него до края на
ред е коментар и не се зачита като изпълним код.
o Многоредов коментар е /**/. Всичко затворено вътре
е коментар.
o Блок код– затваря се в скоби {}.
o Всяко изявление завършва с ;
o Всички интервали, отмествания (tabs) и други празни
пространства се пропускат.
o Има стандартни константи за повечето клавиши,
например:
BACKSPACE,ENTER,QOUTE,RETURN, SPACE и TAB,
които можем да присвояваме.
Основни стандарти на езика
Прилики и разлики между АctionScript 1.0 и
АctionScript 2.0 и АctionScript 3.0
o Разлики:
- ActionScript 2.0, 3.0 имат някои строги изисквания в
синтаксиса, които ни карат да станем по-прецизни и
организиране в писането на нашия код.
- ActionScript 2.0, 3.0 са от 3 до 7 пъти по-бърз от
ActionScript 1.0. Това спомага разработката на поголеми приложения.
- При ActionScript 2.0 и 3.0 имаме чувствителност към
регистъра на знаците. Тоест прави разлика между
малки и големи букви. Тук в помощ ни идва Check
Syntax от панела Actions.
o Разлики:
- При ActionScript 2.0 и 3.0 имаме строго типизирани
данни.
- Структурата Клас (Class) вече трябва да е изнесем
в отделен .as файл. Това е различно от предната
версия, където кода за дефиницията на клас
можехме да сложим в първия кадър от времедиаграмата на филма. Това вече не е възможно, ако
създаваме клипове за Flash 8.0 Player.
o Прилики:
- Филмовите клипове се управляват със същия
синтаксис.
myMovie._mc.gotoAndPlay(7);
Прилики:
- Условните конструкции се същите.
if (prom1 + prom2 == 6 ){
// действие
}
- Имаме същите конструкции за цикли.
for (i = 0; i <= prom1; i++){
// действие
}
- Изразите се изграждат като преди.
Prom = (Prom1 / 4) + Prom2
o Казахме, че ActionScript 2.0 и 3.0 са обектно-ориентирани.
Използват класове, чиито инстанциите са обектите.
o Обектът притежава методи – нещата, които може да прави;
свойства – които дефинира и събития – които обекта
разпространява или, на които реагира.
o ActionScript 2.0 и 3.0 са разширяеми.
var mySound:Sound = new Sound();
Пример:
myMovieClip._visible = true;
setRGB(); // АS 2
Пример:
myMovieClip.visible = true;
setRGB(); // АS 3
Events (Събития):
Събитията са нещо, което се случва. Има
предефинирани събития, за които Flash player ви дава
достъп до тях. Такива като преместване или натискане
на бутана на мишката. Същестеуват и потребителски
събития, създадени за специални обстоятелства,
които ще разгледаме по-късно.
Event възниква по време на изпълнение на филма и
задейства изпълнение на определена функция. В
предходния пример, събитието, което аздейства
изпълнение на съответен код е отпускане бутона на
мишката: onRelease.
Casting (Tипизиране):
horizontalLocation = Number("300");
horizontalLocation = "300" as Number;
Actions (Действия):
Действията са сърцето на вашите скриптове. Те
представляват всеки ред код, който казва на Flash да прави,
създава, променя или изтрива нещо.
Ето примери за actions от примерен код:
var mugCost:Number = 5;
cashRegister_mc.gotoAndPlay (50);
Най-общо, повечето редове с код, обградени с фигурни скоби
({}) са actions. Тези редове обикновено се разделят с “;”.
- Панелът Actions (F9)
Data и Strict Data Typing:
var variableName:DataType = someValue;
var
var
var
var
catName:String = "Anna";
ageInYears:Number = 3;
ageInMonths:Number = ageInYears*12;
isSpayed:Boolean = true;
- Frames
ActionScript код може да се добави само към ключов фрейм. Ако
селектирате кадър, който не е, то добавения скрипт ще се прикрепи
за най-близкия до него ключов такъв.
- Бутони
- MovieClips
1)
on(someEvent) {
//actions go here
}
2)
on(release) {
getURL("http://www.electrotank.com");
}
3)
on(rollOver) {
this._xscale = 200;
}
on(rollOut) {
this._xscale = 100;
}
on(release) {
getURL("http://www.fmi-plovdiv.org");
}
1)
onClipEvent(someEvent)
{ //add actions here }
2)
onClipEvent(enterFrame)
{ //add actions here }
3)
onClipEvent(load)
{ //add actions here }
onClipEvent(mouseMove)
{ //add actions here }
Има 2 добри практики, които се предпочитат при писането на
скриптовете:
1) Пишете всички скриптове индиректно, тоест не направо за
конкретния бутон или клип, а в отделен фрейм, в който те
съществуват.
visitWebPage_btn.onRelease = function() {
getURL("http://www.electrotank.com");
}
2) ActionScript е добре да се отделя в свой собствен слой,
именуван по негласна “actions” или нещо близко по смисъл.
Обекти, Класове и област на видимост
var url:String = "http://site";
var request:URLRequest = new URLRequest(url);
try {
navigateToURL(request, '_blank'); // second argument
is target
} catch (e:Error) {
trace("Error occurred!");
}
// и след това
movieClipName.addEventListener(MouseEvent.CLICK,
callLink); function callLink:void { var url:String =
"http://site"; var request:URLRequest = new
URLRequest(url); try { navigateToURL(request,
'_blank'); } catch (e:Error) { trace("Error
occurred!"); } }
// getURL
с АS 3.0
o Обектът е контейнер. Когато го създаваме той е празен.
Към него може да добавяме променливи. Променлива,
която “живее” в един обект се нарича характеристика.
o Функцията е група от скриптове, които имат конкретно
действие и на които е дадено име. Функцията може да се
добави към обект. Когато това стане, тя се нарича метод.
o Сега си представете обект, който има определени
характеристики и методи, които са полезни за специфична
цел. Например, имаме обект, който има характеристиките:
собствено име, фамилия и възраст. Също така методите
говори(), яде(), и спи(). Този измислен обект представя един
човек. Който може да прави горните неща. Така се появява и
идеята за класа Човек.
Работа с функции
Създаване на функции и добавяне на
параметри към тях
o
o
В проектите ни често се налага да пишем едни и същи парчета
код повече от веднъж. За да направим използването им по-лесно,
можем да използваме функции, а действието с помощта, на което
изпълняваме функцията се нарича извикване на функция.
В ActionScript преди да използваме функция, логично трябва да я
създадем или дефинираме. Това може да го направим като
използваме два възможни синтаксиса:
Синтаксис 1 (AS 2):
той е и най-често използвания начин за създаване на функция,
съответно именно него ще използвам по-нататък в лекцията.
function myFunkcia (параметър1, параметър2 и т.н){
// действия;
}
Декларацията на всяка функция започва с ключовата дума:
function
Създаване на функции и добавяне на
параметри към тях
o
Синтаксис 2 (AS 3):
той е и най-често използвания начин за създаване на функция,
съответно именно него ще използвам по-нататък в лекцията.
function showMenu(e:MouseEvent):void {
// действие
}
Създаване на функции и добавяне на
параметри към тях
o
o
o
o
След ключовата дума function веднага следва името на функцията, то
може да е всичко, което преценим, стига да след-ва конвенциите за
имената.
След името на функцията в кръглите скоби можем да сложим желани
параметри или да оставим тази област празна. Ако сте избрали
последния вариант, ще създадете функция, която се изпълнява по
един и същи начин при всяко извикване. Съдържа ли параметри,
изпълнението и ще е уникално за всяка различна стойност на
параметъра. Може да предавате произволен брой параметри.
Във фигурните скоби слагаме тялото на функцията, тоест там се
поставят действията, които искаме да изпълнява нашата функция.
Можем да създадем скелет на функция (т.е. Такава, която не
съдържа още действия) като изберем: Actions -> User-Defined
Functions в панела Actions.
Създаване на функции и добавяне на
параметри към тях
o
Синтаксис 1:
Вторият начин за създаване на функции е:
myFunkcia = function (параметър1, параметър2 и т.н)
{ /* действия;*/}
o
o
o
Този втори синтаксис се използва най-често, за да създадем функция
динамично или за да дефинираме наш собствен метод на
потребителски клас. Тук разликата с първия синтаксис е, че първо
записваме името на функцията, а стойността се присвоява с
оператора за тази цел: “=”.
Можем да зададем по такъв начин функция само като го въведем
ръчно в експерт режим на Actions панела.
Ако нашата функция не съдържа параметри можем да я зададем с
помощта на следния синтаксис: myFuncia();
Създаване на функции и добавяне на
параметри към тях
o
Но в случай, че сме я дефинирали да приема параметрична
информация, то синтаксиса за извикване е следния:
myFuncia(параметър1, параметър2);
o
В горните примери се приема, че функцията и нейното извикване се
намират в една и съща времедиаграма. Но в случай, че това не е
така и искаме да извикаме функция на конкретна времедиаграма,
трябва да поставим целевия път до тази времедиаграма пред
извикването на функцията по следния начин:
_root.MyClip1.MyClip2. myFuncia();
o
Може да извикаме една функция и динамично, на базата някаква
стойност (например: _root[aVariableName];). Toeст, в случай че
aVariableName има стойност “saySomething”, извикването и
реално ще изглежда така: _root. saySomething();
Създаване на функции и добавяне на
параметри към тях
o
o
Примерен синтаксис на функция, която приема параметри:
function AverageStoiinost (ObstaStoinost,
ObshtBroii) {
srednoaritmetichno =
ObstaStoinost/ObshtBroii;
}
// Aко искаме да я извикаме: AverageStoiinost(24,4)
Кoгато извикваме функция в ActionScript се създава временен масив, наричан от
системата arguments. Той съдържа всички предадени във функцията параметридори ако не сме задали такива при дефинирането на функцията. Ако искаме да
осъществим достъп до този масив, може да го направим по следния начин:
function traceNames (){
trace(“Tazi funkciq e priela” + arguments.length +
“argumenta”);
trace(“Stoiinostta na 1-viq argument e:” + arguments[0]);
trace(“Stoiinostta na 2-riq argument e:”+ arguments[1]);}
traceNames(“Vanya”, “Mitko”);
Създаване на функции и добавяне на
параметри към тях
o
Като резултат от функцията, в прозореца output ще
получим следното:
Tazi funkciq e priela 2 argumenta.
Stoiinostta na 1-viq argument e: Vanya
Stoiinostta na 2-riq argument e: Mitko
o
Oсъществаването на достъп до горния масив ни дава
възможност да създаваме функции, които могат да
адаптират функционалността си според броя на
предаваните в тях параметри.
Използване на локалнипроменливи и
създаване на функции, връщащи резултат.
o
o
o
Достъп до променливите, които създавахме до сега, можехме да
осъществим от всяко място и по всяко време, във всеки скрипт
от нашия филм. Но използваме ли локални променливи, то те
имат обхват само в границата на функцията, за която са
дефинирани. И се унищожават при приключване на действието
на функцията.
Локалните променливи не са абсолютно задължителни при
създаването на скриптове, но стават добра практика в случай, че
имаме по-голямо приложение и броя на променливите нарасне.
С тях можем да спестим памет.
Локалните променливи в дефиницията на една функция могат да
имат едни и същи имена с други от друга функция дори и да са в
една и съща времедиаграма.
Използване на локалнипроменливи и
създаване на функции, връщащи резултат.
o
Тук декларацията на локални променливи става ръчно с
ключовата дума var:
var myVar = “promenliva”;
o
Можем едновременно да декларираме множество
променливи по следния начин:
var ime = “Maria”, familia = “Dimitrova”,
site = “www.maria.net”;
o
o
Можем да създаваме и функции, връщащи резултати с
return.:
return ime;
Можем да използваме действието return , за да връщаме
произволни типове данни, например стойности на
променливи, масиви или други обекти.
Литература
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
ActionScript 3.0 Game Programming University, Second Edition, Gary Rosenzweig
Foundation Flash CS5 for Designers, Tom Green and Tiago Dias
HOW TO cheat IN AdobeFlashCS5 - The art of design and animation, Chris Georgenes
Adobe Flash Professional CS5 FOR WINDOWS AND MACINTOSH, KATHERINE
ULRICH
Аdobe Flash CS3, официален учебен курс
Официалният учебен курс на Macromedia Flash 8,с автори:
Джеймс Инглиш, издателство Софт Прес.
HELP- към Flash CS5.
"FLASH 4 Анимация в Web Ефекти & Дизайн",
автори: Кен Милбърн и Джон Крото,
издателство: Софт Прес
http://www.adobe.com
"Action Script fundamentals seminar“
http://www.actionscript.org
“Flash MX Project”, с автор:
Черил Брумбау-Дънкан (Cheryl Brumbaugh-Duncan)
www.flashbg.org
www.kirupa.com
и други..