Руководство по actionscript

Основные операции

FSCommand

Передает проигрывателю фильмов команду категории FS Command.

fscommand (“allowscale”, true);
fscommand (“fullscreen”, true);

Get URL

Осуществляет переход по заданному адресу URL; соответствующая страница открывается в окне, задаваемом необязательным параметром.

on (release) {
      getUrl ("http://www.admiral.ru/~dunaev", _se1f):
}

Go To

Осуществляет переход (с последующим воспроизведением или остановкой) к кадру, заданному номером или меткой.

gotoAndP1ay (5);
gotoAndStop ("My_label");

If Frame Is Loaded

CM. ifFrameLoaded в разделе «Прочие операции».

Load Movie

Загружает фильм, находящийся по указанному адресу URL на заданном уровне, либо производит загрузку этого фильма в заданный клип. Если новый фильм должен быть размещен на том же уровне, где находится фильм, осуществляющий операцию загрузки, загружаемый фильм вытесняет его.

on (release) {
      1oadMovie ("My_movie.swf", 1);
}

On Mouse Event

Подключает сценарий обработки события мыши или клавиатуры. В качестве обработчика события выступает инструкция, заключенная в фигурные скобки {}.

on (release) {
      in1oadMov1e (44);
} 

on (press) {
...
} 

on (release0utside) {
...
}

on (roll0ver) {
...
}

 on (rollOut) {
...
}

 on (dragOver) {
...
}

 on (dragOut) {
...
}

on (keyPress "D") {
...
}

Play

Воспроизводит фильм. У этой операции нет никаких параметров.

р1ау ();

Stop

Останавливает воспроизведение фильма. У этой операции нет никаких параметров.

stop ();

Stop All Sounds

Полностью отключает воспроизведение звука в фильме.

stopAIISounds ();

Tell Target

Данная операция служит для передачи команды vлипу. Эта операция обладает рядом недостатков, за которые ее критикуют многие разработчики. Второй из приведенных ниже примеров демонстрирует предпочтительное альтернативное решение, позволяющее обойтись без данной операции, — применение механизма адресации. Кроме этого, в настоящее время вместо операции Tell Target рекомендуется использовать инструкцию with.

on (release) {
      tell Target(_root.My_clip) {
       gotoAndStop (10);
	}
}

on (release) {
      _root.My_clip.gotoAndStop (10);
}

Toggle High Quality

Позволяет включать и отключать режим сглаживания неровностей экранных шрифтов. У этой операции нет никаких параметров.

on (press) {
      togg1eHighQua11ty ();
}

Unload movie

Позволяет выгрузить любой фильм, находящийся на заданном уровне. При этом нет необходимости указывать адрес URL выгружаемого фильма.

on (release) {
      unloadMovie(1);
}

Прочие операции

В данном разделе собраны сведения об операциях, включенных в список Actions (Действия, операции) панели действий.

break

Прекращает выполнение цикла. В следующем примере значение переменной box будет равно 7.

on (release) {
      do {
      k = k+1;
      if (k>6) {
       break;
      }
      } while (k<9);
      box = k;
}

call

Вызывает сценарий определенного кадра, причем сам целевой кадр при выполнении данной операции не открывается. Сценарий просто заимствуется. У этой операции всего один параметр, в котором задаются имена клипа и кадра. Имя кадра предваряется двоеточием. В настоящее время вместо операции call рекомендуется использовать механизм пользовательских функций.

on (release) {
      call ("_root.my_clip:my_frame23");
}

comment

Позволяет вставлять в текст сценариев комментарии. Комментарии никак не влияют на выполнение сценария. Начало комментария обозначается в тексте программы двойным слэшем (//).

//При добавлении нового клипа здесь понадобится внести изменения 

continue

Эта операция до некоторой степени схожа с операцией break. Однако в отличие от последней она прекращает выполнение не всего цикла, а лишь текущей его итерации. В приведенном ниже примере переменная box получит значение 9.

on (release) {
      do {
      k = k+1;
      if (k>6) {
      continue;
      }
 } while (k<9);
      box = k;
}

delete

Удаляет указанную переменную или заданный объект и в случае успешного выполнения возвращает значение true.

delete (k);

do while

Тело цикла будет исполняться до тех пор, пока не выполнено условие выхода из цикла. Инструкции, заданные в фигурных скобках в конструкции do {…}, будут повторно выполняться до тех пор, пока условие, заданное в скобках в конструкции while (…). остается истинным. Это цикл с постусловием, то есть тело цикла обязательно будет выполнено хотя бы один раз (ср. while).

on (release) {
      do {
      k = k+1;
      } while (k<9);
      box = k;
}

duplicateMovieClip

Создает копию клипа с заданным именем экземпляра.Требуется указать уровень и имя нового экземпляра.

on(ro1l0ver) {
      _root.mcCool.dupl1cateMovi eClip ("moreCool", 1);
      moreCool._x = 8;
}

else

Данная операция позволяет задать альтернативную последовательность действий для инструкции if. Эти действия будут выполняться при ложном значении условия.

if (k != 8) {
      gotoAndPlay(l);
}
else {
      gotoAndP1ay(15);
}

else if

Позволяет задать для инструкции if дополнительное условие, значение которого будет проверяться при ложном основном условии.

if (k != 8) {
      gotoAndPlay (l);
}
else if (name == "Иван") {
      gotoAndPlay ("Василий");
}

for

Позволяет организовать цикл, в котором предусмотрены начальная инструкция присваивания и условие завершения, как правило связанные со значением переменной — параметра цикла, причем значение этой переменной увеличивается в инструкции инкремента на каждом шаге цикла. Постфиксная форма инкремента (<имя переменной>++) соответствует увеличению значения переменной после выполнения тела цикла, а префиксная форма (++<имя переменной>) — перед его выполнением.

on (release) {
      for (k=l: k<10; k++) {
       box = k;
}

for…in

Перебирает все поля объекта, последовательно возвращая значения всех переменных, существующих в этом объекте.

on (release) {
      dog = {breed: 'спаниэль', class: 'старшие', name: 'Дружок'};
      for (breed in fog) {
      out += dog[breed]+new11ne;
      }
}

На выходе мы получим следующее значение переменной out:

спаниэль
старшие
Дружок

FSCommand

См. раздел «Основные операции».

function

Определяет функцию — набор операций, которые будут выполняться в рамках некой новой команды. Определение функции задает этот набор, но не приводит к немедленному выполнению входящих в него операций. Вызов функции в настоящее время рекомендуется использовать вместо операции call.

function My_func (xvar) {
      _root.myclip._rotation.xvar;
}

Чтобы вызвать функцию, необходимо включить ее имя в сценарий кнопки, клипа или кадра. Если определена функция с параметрами, при ее вызове нужно использовать фактические параметры — литералы или переменные.

on (release) {
      My_func (35);
}

getURL

См. get URL в разделе «Основные операции».

gotoAndPlay

См. Go To в разделе «Основные операции».

gotoAndStop

См. Go To в разделе «Основные операции».

if

Позволяет задать условие, при котором будет выполнена некая операция.

if (k==35) {
      gotoAndP1ay (7);
}

ifFrameLoaded

Определяет, загружен ли указанный кадр. Эта операция часто применяется в начальных кадрах фильма в процессе его предварительной загрузки.

ifFrameLoaded ("Scene1", 15) {
      gotoAndP1ay (4);
}

include

Обращается к текстовому файлу, содержащему сценарий ActionScript, и выполняет этот сценарий. Для файлов с внешними сценариями рекомендуется использовать расширение as.

on (release) {
      #include "remote.as";
}

loadMovie

CM. Load Movie в разделе «Основные операции».

loadVariables

Загружает текстовый файл, содержащий описание переменных в определенном формате, на заданный уровень либо в указанный объект. Описание каждой переменной должно иметь вид <имя перененной>=<значение>. Если в файле присутствуют описания нескольких переменных, между ними следует помещать разделитель в виде символа & (амперсанд). Кроме того, в файле не должно быть ни пробелов, ни символов возврата каретки.

loadVariables(“message.txt", 0);

nextFrame

Переход к следующему кадру. Эта команда доступна только в экспертном режиме.

NextFrame();

nextScene

Переход к следующей сцене. Эта команда доступна только в экспертном режиме.

NextScene();

on

См. On Mouse Event в разделе «Основные операции».

onClipEvent

Позволяет задать сценарий обработки событий для выделенного клипа. Допускается использование девяти различных событий.

onClipEvent(load) {
      score = 1;
}

onClipEvent(enterFrame) {
...
}

onClipEvent(unload) {
...
}

onClipEvent(mouseDown) {
...
}

onClipEvent(mouseUp) {
...
}

onClipEvent(mouseMove) {
...
}

onClipEvent(keyDown) {
...
}

onClipEvent(keyUp) {
...
}

onClipEvent(data) {
...
}

play

CМ. Play в разделе «Основные операции».

prevFrame

Переход к предыдущему кадру. Эта команда доступна только в экспертном режиме.

PrevFrame();

prevScene

Переход к предыдущей сцене. Эта команда доступна только в экспертном режиме.

PrevScene();

print

Направляет копию заданного фрагмента, находящегося на указанном уровне или в указанном объекте, на печать в виде векторного графического изображения. В качестве обрабатываемого фрагмента может выступать фильм, кадр или определенная область экрана.

on (release) {
      print(0, "bmovie"):
}

printAsBitmap

Направляет копию заданного фрагмента, находящегося на указанном уровне или в указанном объекте, на печать в виде растрового графического изображения. В качестве обрабатываемого фрагмента может выступать фильм, кадр или определенная область экрана.

on (release) {
      printAsBitmiap(3, "bframe");
}

removeMovieClip

Удаляет из фильма указанный клип.

on (release) {
      removeMovieClip(_root.shorts./orangeShorts);
}

return

Эта необязательная операция явным образом возвращает из функции указанное значение либо константу null, если отсутствует фактический параметр.

function doTax(price, rate) {
      return price + (price*rate);
}

Применение операции return позволяет генерировать выходное значение функции; это значение может быть сохранено в переменной. Переменная out в следующем сценарии получит значение результата описанных выше вычислений, произведенных над переданными ей фактическими параметрами, то есть значение 42.12.

on (release) {
      out = doTax(39, .08);
}

setProperty

Изменяет значение свойства указанного клипа. При использовании этой операции необходимо задавать путь к имени экземпляра клипа, а не к метке символа. Для фильмов в формате Flash 4 можно использовать следующий формат:

onClipEvent (mouseDown) {
      setProperty("/mcCool", _rotation, 43);
}

В пакете Flash 5 подобные сценарии рекомендуется записывать иначе:

onClipEvent (mouseDown) {
      _root.mcCoo1._rotation=43:
}

set variable

Позволяет задать или изменить значение переменной. В качестве присваиваемого значения можно использовать лишь значения и составные выражения, совместимые с типом переменной. Если инструкцию присваивания выбрать в списке Actions (Операции), то в тексте сценария появится строка следующего вида:

set (name, value);

Подставив конкретные фактические параметры, мы можем получить следующую строку:

Set (k, (x/k)*100);

Однако для установки значений переменных в системе Flash 5 рекомендуется
использовать иной формат присваивания:

k = ((x/k) * 100);

startDrag

Позволяет задать начальные условия перетаскивания клипа. Область перетаскивания может быть ограничена определенными значениями, задающими ее левую, правую, верхнюю и нижнюю границы. Логический параметр при задании значения true обеспечивает привязку указателя мыши к центру объекта.

onClipEvent (mouseDown) {
      _root.mcCoo1.startDrag(false, 100, 250, 200, 250);
}

stop

CM. Stop в разделе «Основные операции».

stopAllSounds

См. Stop All Sounds в разделе «Основные операции».

stopDrag

Позволяет определить условия завершения перетаскивания клипа. У этой операции нет никаких параметров.

onClipEvent(mouseUp) {
      stopDrag();
}

tellTarget

См. Tell Target в разделе «Основные операции».

toggleHighQuality

См. Toggle High Quality в разделе «Основные операции».

trace

Отладочная инструкция, обеспечивающая отображение значения указанной переменной в окне Output (Вывод).

do {
      var k = k+l;
} while (k<=10);
trace(k);

unloadMovie

CM. Unload Movie в разделе «Основные операции».

var

Определяет некоторую переменную как локальную. Эта операция особенно часто используется в функциях, когда в сценарии обрабатывается несколько кнопок, кадров или клипов.

function counter () {
      var k = l;
}

while

Инструкция цикла, которая позволяет определить условие выхода из цикла перед началом его выполнения; выполнение цикла продолжается, пока заданное условие является истинным. Если перед первой итерацией цикла условие не выполняется, тело цикла не будет выполнено ни разу. Таким образом, это цикл с предусловием. См. также do while.

on (release) {
      wh11e(k<9) {
      k = k+1;
      }
box=k:
}

with

Данная инструкция позволяет адресовать определенный объект; этот объект используется по умолчанию для всех инструкций, заключенных в фигурные скобки {}, следующие за ключевым словом with. Эта операция рекомендуется в качестве альтернативы устаревшей операции tellTarget. В фигурных скобках может находиться несколько инструкций.

on (release) {
      with(_root.show) { 
      _rotation=35;
      _alpha=76;
      }
}

Операторы

! — восклицательный знак используется для обозначения логической операции отрицания.
    Превращая логическое значение (true или false) в его противоположность,
    оператор отрицания позволяет проверить отсутствие определенного условия.

if (!Key.1sDown(Key.ESCAPE)) {
      Disр1ау="Нажмите клавишу escape.";
}

!= — проверка условия неравенства.

m=10;
j=12;
if (m != j) {
      box = " Они не равны."
 }

% — результат деления по модулю.
    Целочисленное деление с остатком называется делением по модулю.
    В следующем примере остаток от деления, присваиваемый  переменной box,
    равен 6 (50/11 = 4 с остатком 6).

k=50;
j=ll;
box = k % j;

&& — логическая конъюнкция (И), которая применяется в условных выражениях.
     Выражение true&&true дает в результате true;
     true&&false дает false; false&& false дает false.
     Этот оператор широко применяется при проверке множественных условий.

k=50;
j=11;
х= (k > j);
y= (j > 5):
if (х && у) {
      bох= "Все правильно!";
}

В инструкциях с проверкой множественных условий оператор конъюнкции применяется
следующим образом:

if ((total == all) && (total >= last()) {
      output="Баланс подведен; в третьем квартале он положителен.";
}

( ) — группировка операций с целью изменить порядок их выполнения.

k = (5 + w) * (34-v);

* — умножение чисел или числовых переменных.

k = 12 * х;

+ — сложение чисел или числовых переменных; конкатенация строк.

k = x + 7;

xyz = "Быстродействие" + "память";

++ — операция инкремента для переменных; чаще всего используется в цикле for.
     Конструкция ++<имя переменной> выполняется перед исполнением тела цикла,
     а конструкция
     < имя переменной>++  — после тела цикла.

for (k = 1: k <= 521; k++) {
       box = k;
}

- — вычитание чисел или числовых переменных.
    Уменьшаемое находится слева, а вычитаемое — справа.

 k = k - 2;
-- — операция декремента для переменных;
     чаще всего используется в цикле for.
     Конструкция --< имя переменной> выполняется перед исполнением тела цикла,
     а конструкция < имя переменной:>-- — после тела цикла.

for (k = 1000; k >= 521: k --) {
       box = k:
}

/ — деление чисел или числовых переменных.
    Делимое находится слева, а делитель — справа.

 k = 250 / 50;

< — оператор сравнения;
    значение выражения будет равно true, если значение слева меньше,
    чем значение справа.

var k = 20;
var j = 15;
if (j < k) {
      box = "Вы  моложе.";
}

<= — оператор сравнения;
     значение выражения будет равно true, если значение слева меньше или равно
     значению справа.

var k = 1;
do {
      k = ++k;
      box = k;
} while (k <= 50);

<> — оператор сравнения;
     значение выражения будет равно true, если значение слева не равно значению справа.
     Этот оператор считается устаревшим, он вполне допустим в сценариях,
     но лучше использовать оператор !=.

var k =- 15;
var x = 52;
if (k <> x) {
      box = "Нет ничего общего.";
}

== — оператор сравнения;
     значение выражения будет равно true, если значение слева равно значению справа.
     Одиночный знак равенства = используется для присваивания;
     в условных выражениях требуется двойной знак ==.

var k = 29;
var x = 29;
if (k == x) {
      box = "Они точно равны.";
}

> — оператор сравнения;
    значение выражения будет равно true, если значение слева больше, чем значение справа.

var kid = 15;
var parent = 40;
if (k1d > parent) {
      box = "Такого не может быть!";
}

>= — оператор сравнения;
     значение выражения будет равно true, если значение слева больше или равно значению справа.

var k = 17;
var x =17;
if (x >= k) {
      box - "Больше или лучше?";
}

and — логическая конъюнкция (И).
      Этот оператор позволяет получить значение true, когда истинны оба условия.
      Логическая конъюнкция часто используется при обработке двух условий
      в рамках одной условной инструкции. См. также &&.
var k = 15;
var x = 40;
if ((x > k) and (x = 40)) {
      box = "Годятся оба.";
}

not — логическое отрицание (НЕ).
      Этот оператор позволяет получить значение true, если условие неверно.
      Автор полагает, что это похоже на двойное отрицание. См. также !.

var k = 15;
var x = 40;
if (not(k > x)) {
      box = "Нет на нет будет да.";
}

or — логическая дизъюнкция (ИЛИ).
     Этот оператор позволяет получить значение true, когда справедливо хотя бы
     одно из двух условий. Обратите внимание на то, что в следующем примере
     истинным является только одно из условий. См. также ||.

var k = 15;
var x = 40;
if ((k = 15) or (x = 99)) {
      box = "Хотя бы что-то одно...";
}

typeof — определение типа переменной.
         Различаются строковый, числовой и логический типы.

var k = (3 > 6);
if (typeof k == "boolean") {
      box = "Это логическая переменная.";
}

void — данный оператор делает значение выражения неопределенным
       и используется для проверки на существование неопределенных объектов.
       Может применяться для сброса значений переменных.

counter += counter;
void (counter);

Ниже приведен пример использования этого оператора для проверки существования
неопределенного значения.

if (j == void(j)) {
      display = "Значение переменной не определено.";
}

|| — логическая дизъюнкция. Используется в условных инструкциях. Если хотя бы одно из условий является истинным, данный оператор возвращает значение true.
 k = 37;

j = 27;
if ((k > j) || (j < 26)) {
      box = "Достаточно и одного.";
 }

Поразрядные операторы

При выполнении поразрядных операций числа с плавающей точкой преобразуются в 32-разрядные
целые. Механизм поразрядных операторов требует представлять вещественные числа целыми.
Однако если вы не можете жить без двоичного мира, состоящего из нулей и единиц,
значит у вас уже есть соответствующий опыт и для вас вполне достаточно следующего краткого описания.

& — поразрядная конъюнкция.
<<, >>, >>> — операторы поразрядного сдвига.
^ — поразрядная исключительная дизъюнкция.
| — поразрядная дизъюнкция.
~ — поразрядное дополнение.

Составные операторы

Эти операторы представляют собой сокращенную форму записи других операций. У всех составных операторов есть одно общее свойство: сначала выполняется операция, находящаяся в правой части инструкции присваивания, а затем ее результат добавляется к значению переменной, расположенной слева от знака присваивания.

Х = Х * Y;
Х += 1;

Приведенные выше инструкции эквивалентны следующим операциям:

Х *= Y;
Х = Х + 1;

Привыкнув к формату записи составных операторов, вы наверняка оцените
их по достоинству.

%= — составное деление по модулю.
&= — составная поразрядная конъюнкция.
*= — составное умножение.
-= — составное вычитание.
/= — составное деление.
<<= — составной поразрядный сдвиг влево.

>>= — составной поразрядный сдвиг вправо.
>>>= — составной поразрядный сдвиг вправо без знака.
^= — составная исключительная дизъюнкция.
|= — составная поразрядная дизъюнкция.

Строковые операторы

К числу строковых операторов относятся строковые эквиваленты операторов сравнения, применяемых для чисел. Для большинства строковых операторов в настоящее время существуют универсальные эквиваленты — операторы, которые применяются для обработки как строковых, так и нестроковых выражений. Сравнение строк производится на основе алфавитного порядка букв. Наименьший вес при сравнении имеет буква «А», а наибольший — буква «Z». Следовательно, строка «Z» больше строки «А». Символы нижнего регистра считаются большими, нежели символы верхнего регистра. Поэтому «а» больше «Z».
Перечисленные ниже строковые операторы следует применять, если вы работаете над фильмом, который должен быть совместим с форматом Flash 4.

add — конкатенация (склейка) строк.
В приведенном ниже примере переменная box получит значение "Привет!".
Наряду с оператором add вы можете использовать оператор +.
Данный оператор пришел на смену оператору &, который выполнял аналогичные
функции в системе Flash 4.

k = "При":
j = "вет!";
var welcome = k add j;
box = welcome;

eq — проверка условия равенства двух строк.
     Наряду с оператором eq можно использовать оператор ==.

var Apples = "яблоки";
var 0range = "апельсины";
if (Apples eq 0range) {
      box = "Одно и то же!":
}
else {
      box = "Разные вещи!";
}

ge — оператор «не меньше» для строк.
Учтите, что сравниваются значения строковых переменных, а не их имена.
Наряду с оператором ge можно использовать оператор >=.

var Z = "Антилопы";
var А = "Зебры";
if (A ge Z) {
      box = "Важны лишь значения переменных!";
}
gt — оператор «больше» для строк.
     Наряду с оператором gt  можно использовать оператор >.

var lс = "а";
var uc = "W";
if (lс gt uc) {
      box = “Нижний регистр больше верхнего”;
}

le — оператор «не больше» для строк.
     Наряду с оператором lе можно использовать оператор <=.

var Same = "Двойня";
var Osame = "Двойня";
if (Same 1е Osame) {
      box = "Двойня это хорошо!";
}

lt — оператор «меньше» для строк.
     Наряду с оператором It можно использовать оператор <.

var Fatso = "Толстяк";
var TooSlim = "Тощий";
if (TooSlim lt Fatso) {
      box = "Съешьте что-нибудь!";
}

ne — оператор «не равно» для строк.
     Наряду с оператором ne можно использовать оператор !=".

var A = "яблоки";
var 0range = "апельсины";
if (А ne 0range) {
      box = "И все-таки они разные!";
}

Функции

Boolean

Приводит значение выражения к типу Boolean (логическому). В приведенном ниже примере переменная box получит значение true.

var a = "Иван" var;
k = "Василий";
var j = Boolean (a != k);
box = j;

escape

Возвращает значение ASCII-кода для заданного символа, входящего в набор ISO Latin-1. Например, следующая инструкция возвратит код “%21”, который и будет присвоен переменной а.

var а = escape ("!")

eval

Возвращает значение переменной, или свойства, либо ссылку на объект. При создании псевдомассивов (например, clipl, c1ip2, с1iр3 и т. д.) имя переменной и число (как правило, числовая переменная) конкатенируются и составляют новое имя переменной. Впрочем, в фильмах в формате Flash 5 рекомендуется отказаться от псевдомассивов, применяя вместо них средства объекта Array. В первом из приведенных ниже примеров будет возвращено значение свойства _a1pha, а во втором — адрес.

out = eva1 ("_root.My_clip._alpha");

display = eval ("_root.My_clip") ;

false

Литерал, соответствующий логическому значению «ложь».
Обратите внимание на то обстоятельство, что идентификатор false не заключается в кавычки.

var n = false;

getProperty

Возвращает значение указанного свойства заданного объекта.

var k = getProperty ("/My_clip", _x);

В Flash 5 предпочтительно использовать иную конструкцию,
эквивалентную данной функции:

var k = _root.My_clip._х;

getTimer

Возвращает количество миллисекунд, прошедших с момента начала воспроизведения текущего фильма.

timer = getTimer ();

int

Возвращает значение, полученное отбрасыванием дробной части числового параметра. В следующем примере эта функция возвращает значение 34. В настоящее время вытесняется функцией parseInt.

var k = 34.875;
var x = Int (k);

isFinite

Проверяет факт конечности заданного числа. Возвращает логическое значение (true или false.) В следующем примере переменная box получает значение true, поскольку 56 — число конечное.

var k = 56;
var j = isFinite (k);
box = j;

isNan

Проверяет, действительно ли переданное в качестве параметра значение не является числом. Если это значение нечисловое, возвращается значение true. В следующем примере возвращается true, так как «Флэш» — это строка, а не число.

var k = "Флэш";
var j = isNan (k);
box = j;

maxscroll

Данная функция фактически представляет собой предназначенное только для чтения свойство, связанное с текстовым полем через имя переменной. Возвращает некое максимальное значение, при вычислении которого используется информация о допустимом размере упомянутого текстового поля. Допустим, переменная, связанная с текстовым полем, имеет имя display, а значение функции maxscroll помещается в переменную topScroll,

topScroll = _root.d1sp1ay.maxscroll;

newline

Применяется для вставки символа перевода строки (или возврата каретки).

var k = "Верх";
var b = "Низ";
var с = (k + newline + b);
box = c;

number

Преобразует значение выражения в число с плавающей точкой либо в логическое число. Возвращает значение 0, если в качестве параметра было передано нечисловое значение. Данная функция рекомендуется только для использования в совершенно определенных целях. Она была задумана как одно из средств, обеспечивающих преобразование файлов Flash 4 в формат Flash 5. В большинстве случаев вместо нее предпочтительно использовать функции parseInt или parseFloat.

k = "145.76";
j = number (k);
box = j * 2;

parseFloat

Преобразует строку в число с плавающей точкой. Если строка не является допустимым представлением числа, возвращается значение NaN. В следующем примере мы имеем дело именно с такой ситуацией. Знак доллара ($) не позволяет рассматривать строку п как число. В результате при попытке осуществить преобразование значения п в число будет возвращено значение NaN. Чтобы обрабатывать ошибки преобразования строк в числа, можно использовать функцию isNan.

n = "$935.63";
j = parseFloat (n);
box = j * 3;

parseInt

Преобразует строку в целое число; цифры после десятичной точки при этом просто отбрасываются. В следующем примере данная функция возвратит значение 874.

n = "874.87";
j = parselnt (n);
box = j;

random

Генерирует случайное число в диапазоне от 0 до n-1, где n — некое положительное целое число, передаваемое данной функции в качестве параметра. В следующем примере будет возвращено случайное число, находящееся в диапазоне от 0 до 8.

var x = random (9);
box = x;

scroll

При прокрутке устанавливает значение номера первой строки, отображаемой на экране в текстовом поле, с которым связана заданная переменная. Обновлять отображение прокручиваемого текстового поля на экране можно, изменяя значение данной функции (увеличивая его при прокрутке текста вверх и уменьшая при прокрутке вниз). Например, при каждом обращении к следующему сценарию текст будет прокручиваться на четыре строки вверх.

on (release) {
      _root.My_Text.scroll = х +4;
}

string

Преобразует число в строку. Такое преобразование необходимо, например, для добавления символа национальной валюты к числу, выражающему сумму денег.

bar money = 782.21;
var cmoney = string (money);
var showmoney = cmoney+”руб.”;
box = showmoney;

targetPath

Возвращает путь к заданному клипу в виде строки. При этом допускается косвенная адресация.

targetPath (_root.fender[j+2]) {
...
}

true

Литерал, соответствующий логическому значению «истина».

var flag = true;

unescape

Обратная функция для функции escape. Данная функция применяется для преобразования ASCII-кода в символ, входящий в набор ISO Latin-1. В следующем примере будет возвращен символ «восклицательный знак» (!), посколькуего ASCII-код равен %21.

var а = unescape("%21");

updateAfterEvent

Обеспечивает обновление содержимого экрана при выполнении операций с клипами независимо от текущей частоты кадров. Помогает более плавно представлять зрителю операции перетаскивания.

onClipEvent (mouseDown) {
      startDrag (mcCoo1, true, 100, 250, 200, 250);
      updateAfterEvent (mouseDown)
}

onCHpEvent (mouseUp) {
      stopDrag();
      updateAfterEvent(mouseUp)
 }

Строковые функции

Для всех строковых функций существуют эквивалентные методы объекта String. Строковые функции использовать в фильмах в формате Flash 5 не рекомендуется.

chr

Возвращает символ, ASCII-код которого передан функции в качестве параметра. У строчных и прописных букв разные коды. В следующем примере использован код буквы «А».

v = chr (65);

length

Возвращает длину строки. В следующем примере функция возвращает число 11.

k = length ("Иванов Иван");

ord

Возвращает ASCII-код символа. В следующем примере переменная v получит значение 97.

v = ord (“a”);

substring

Возвращает подстроку, заданную комбинацией параметров <имя строковой переменной>, <начальная позиция> и <длина>. Под начальной позицией понимается номер символа, за которым начинается нужная подстрока. Длина — это количество символов, которые должны быть включены в подстроку. В следующем примере из строки “Электропаяльник» извлекается подстрока “паяльник”.

k = substring ( ”Электропаяльник", 7, 8);

mbchr

Мультибайтная версия функции chr.

mbiength

Мультибайтная версия функции length.

mbord

Мультибайтная версия функции ord.

mbsubstring

Мультибайтная версия функции substring.

Свойства

_alpha

Степень прозрачности объекта (хотя лучше бы называть степенью непрозрачности). Шкала прозрачности находится в диапазоне от 0 (для полностью прозрачных объектов) до 100 (для совершенно непрозрачных объектов). Таким образом, прозрачность выражается в процентах.

SetProperty (My_clip. _alpha. 50);

_currentframe

Свойство только для чтения, которое содержит информацию о текущем кадре фильма (клипа).

k = _root.My_clip._current frame;

_droptarget

Свойство только для чтения; содержит имя клипа, на который перетаскивается другой клип.

k = _root.My_clip._droptarget;

_focusrect

Используется для отображения на экране желтого прямоугольника, появляющегося вокруг кнопок по нажатию клавиши табуляции при переключении между ними. Это глобальное свойство, принимающее значения true и false.

_root,My_clip._focusrect = true;

_framesloaded

Свойство только для чтения, которое содержит текущее число кадров, загруженных в клипе.

k = _root.Myclip._framesloaded;

_height

Возвращает высоту клипа в пикселах, как в первом примере. Значение высоты может быть изменено, как во втором примере.

a = _root.My_clip._height;
box = a;

onClipEvent (keyDown) {
      _root.My_clip._height = 120;
}

_highquality

Это свойство позволяет включать и отключать режим высокого качества экранных изображений. Принимает логические значения.

_highquality = false;

_name

Это свойство позволяет задавать имя и переименовывать клип в тексте сценария. Операции, выполняемые над этим свойством, применяются к имени выделенного экземпляра. В следующем примере клип My_clip получает имя sam. Затем новое имя используется при выполнении операции поворота этого клипа на 55 градусов.

_root,My_clip._name = “sam”;
_root.sam._rotation = 55;

_quality

Глобальное свойство, которое определяет качество экранных изображений. Принимает строковые значения LOW (низкое), MEDIUM (среднее), HIGH (высокое) и BEST (самое высокое); использование прописных букв обязательно. Возможно, данное свойство со временем полностью вытеснит свойство _highquality.

_quality = BEST;
whatQuality = _quality;

_rotation

Свойство, определяющее угол поворота, задается в градусах (от О до 360). Для поворота против часовой стрелки можно использовать отрицательные значения. Для задания угла поворота необходимо указать путь к клипу.

 _root.My_clip._rotation = 210;

_soundbuftime

Глобальное свойство, задающее время предварительной загрузки, предшествующей началу воспроизведения звука. По умолчанию это время равно пяти секундам.

 _soundbuftime = 12;

_target

Имя экземпляра клипа. При необходимости имя экземпляра можно изменить. В следующем примере клип с именем экземпляра My_clip получает имя new_clip.

 _root.My_clip._target = "new_clip";

_totalframes

Возвращает общее число кадров в клипе.

on (release) {
      tf = My_clip._totalframes;
      box = tf;
}

_url

Свойство только для чтения, содержит URL-адрес клипа.

location = _root,My_clip._url;

_visible

Возвращает логическое значение, указывающее, является ли видимым заданный клип.

on (release) {
      _root. My_clip. visible =  false;
}

_width

Возвращает ширину клипа в пикселах. Значение этого свойства может изменяться. Ср. _height.

on (release) {
      _root.My_clip. _w1dth =50;
}

_x

Возвращает горизонтальную позицию заданного клипа. Ср. _y.

on (release) {
      _root. My_clip._x = 250;
}

_xmouse

Текущая позиция курсора мыши на горизонтальной оси координат (оси X), задаваемая относительно центра указанного клипа. При перемещении клипа меняется и относительное значение свойства _xmouse. См. также _ymouse.

var mposX = _root. My_clip._xmouse;

_xscale

Относительная ширина заданного клипа по горизонтальной оси координат (оси X). В следующем примере производится увеличение масштаба клипа по горизонтали до 200 %. См. также _yscale.

_root. My_clip._xscale = 200;

Возвращает вертикальную позицию заданного клипа. См также _х.

on (release) {
      _root. My_clip._y =118;
}

_ymouse

Текущая позиция указателя мыши по вертикальной оси (оси Y), задаваемая относительно центра указанного клипа. При перемещении клипа меняется и относительное значение свойства _yniouse. См. также _xmouse.

on (release) {
      уНеге = _root. My_clip _ymouse;
}

_yscale

Относительная высота заданного клипа по вертикальной оси. В следующем примере производится установка вертикального масштаба, равного 50 %. См. также _xscale.

on (release) {
      _root. My_clip._ysca1e = 50;
}

Книги: [Классика] [Базы данных] [Internet/WWW] [Сети] [Программирование] [UNIX] [Windows] [Безопасность] [Графика] [Software Engineering] [ERP-системы] [Hardware]

Введение

В этой книге рассказывается как об основах языка ActionScript, так и о его продвинутом применении. Около 800 содержательных страниц посвящены подробнейшему исследованию языка ActionScript — от базовых понятий переменных и управления клипами до таких глубоких тем, как объекты и классы, связь с сервером и XML. В конечном итоге будет охвачено все, что относится к Flash-программированию.

Книга написана не только для программистов. Изложение ведется достаточно быстро, но для чтения не требуется предварительного знания программирования. Все, что требуется, — это опыт работы с той частью Flash, которая не связана с использованием ActionScript, и желание учиться. Конечно, если вы программист, это еще лучше; вы сразу сможете применить в ActionScript свое мастерство написания программ.

Данное издание содержит подробно документированный материал, который не изложен или недостаточно полно изложен в документации Macromedia или в книгах других авторов. Известно, что во Flash есть функции и технологии, о которых знают лишь посвященные, и сведения о них передаются изустно. Каким образом слои, клипы и загружаемые фильмы помещаются в стек Flash Player? (см. главу 13 «Клипы»). Как определяется порядок выполнения кода для каждого конкретного кадра? (см. главу 13). Обладают ли обработчики событий локальной областью видимости? (см. главу 10 «События и обработчики событий»), Почему число 90 иногда выводится как 89.9999999997? (см. главу 4 «Элементарные типы данных»), Я счел своей особой задачей нанести на карту эти неизведанные области. Конечно, я рассказываю и об основных приемах программирования, которые требуются в любом языке, например, о том, как обеспечить многократное выполнение участка кода (см. главу 8 «Предложения цикла»).

Эта книга задумана так, чтобы стать настольной, а не пылиться на полке. Часть III «Справочник по языку» исчерпывающим образом описывает все объекты, классы, свойства, методы и обработчики событий, имеющиеся в ActionScript. Этим справочником нужно регулярно пользоваться, чтобы узнавать новое и вспоминать вещи, которые постоянно забываются.

Прежде всего эта книга является подробным руководством. Это результат многолетних исследований, обработки тысяч электронных писем в Macromedia и откликов, полученных от пользователей всех уровней. Очевидно, книга носит отпечаток как моего страстного отношения к предмету, так и мучительного практического опыта, которым вы можете непосредственно воспользоваться. Она исчерпывающе авторитетно описывает ActionScript, а точность ее беспрецедентна благодаря технической проверке Гари Гроссмана (Gary Grossman), создателя ActionScript.

Что может ActionScript?

Честно говоря, полноценные языки типа Flash 5 ActionScript не имеют практических границ применения. Взглянем на некоторые специфические возможности ActionScript, что позволит почувствовать, какого рода темы мы будем освещать на протяжении всей книги. Постарайтесь представить себе, как можно сочетать эти приемы для достижения ваших конкретных целей.

Управление временной диаграммой

Фильмы Flash состоят из кадров, располагающихся в линейной последовательности, называемой временной диаграммой (timeline). С помощью ActionScript можно управлять воспроизведением временной диаграммы фильма, проигрывать отрезки фильма, выводить конкретный кадр, останавливать воспроизведение фильма, зацикливать анимации и синхронизировать анимационное содержание.

Диалоговый режим

Фильмы Flash могут воспринимать вводимые пользователем данные и реагировать на них. С помощью ActionScript можно создавать следующие интерактивные элементы:

  • Кнопки, реагирующие на щелчок мышью (т. е. классические кнопки навигации)
  • Содержимое, анимируемое движениями мыши (например, след от мыши)
  • Объекты, которые можно перемещать с помощью мыши или клавиатуры (например, автомобиль в игре вождения)
  • Текстовые поля, разрешающие пользователю передавать данные в фильм (например, заполняемый бланк)

Управление визуальным и звуковым содержимым

ActionScript можно использовать для исследования или модификации свойств визуального и звукового содержимого фильма. Можно, например, изменять цвет и местоположение объекта, уменьшать громкость звука или устанавливать тип шрифта для текстового блока. Можно также многократно изменять эти свойства с течением времени, чтобы моделировать такие необычные эффекты, как движение по законам физики или обнаружение столкновений.

Программная генерация содержимого

С помощью ActionScript можно генерировать визуальное и звуковое содержимое непосредственно из библиотеки фильма или путем копирования содержимого, уже имеющегося на рабочем столе. Содержимое, генерируемое программным образом, может служить строго статичным элементом, например, случайным узором, или интерактивным элементом, таким как вражеский космический корабль в видеоигре или опция в выпадающем меню.

Обмен данными с сервером

ActionScript предоставляет большое разнообразие средств для отправки информации на сервер и получения ее с сервера. Во всех перечисленных ниже приложениях используется обмен данными с сервером:

  • Ссылка на сайт
  • Гостевая книга
  • Приложение чата
  • Сетевая игра с несколькими участниками
  • Операция электронной торговли
  • Персональный сайт с регистрацией и авторизацией пользователей

Конечно, эти примеры дают лишь ограниченное представление о возможных приложениях ActionScript. Задача книги в том, чтобы дать базовые навыки, которые позволят вам самостоятельно исследовать великое множество других возможностей. Это не сборник рецептов, это урок по приготовлению кода, а что будет в меню, решайте сами.

Хранилище кода

В последующих главах встретятся десятки примеров кода. Чтобы получить соответствующие исходные файлы, а также многие другие обучающие файлы, не включенные в книгу, следует посетить сетевое хранилище кода (Code Depot), находящееся по адресу: http://www.moock.org/asdg

Хранилище кода — это развивающийся ресурс, содержащий практические приложения ActionScript и базовые коды. Вот список некоторых примеров, которые можно в нем найти (они скачиваются как по отдельности, так и единым zip-файлом):

  • Вопросник с вариантами ответов
  • Приложение для чата, использующее XML
  • Приложение гостевой книги
  • Курсор мыши и кнопка
  • Базовый код игры с астероидами
  • Программные эффекты движения
  • Демонстрация текстовых полей HTML
  • Предзагрузчики
  • Обработка строк
  • Элементы интерфейса, такие как ползунки и средства прокрутки текста
  • След мыши и другие зрительные эффекты
  • Управление громкостью и звучанием

Кроме того, на указанный URL, как и на сайт данной книги, помещаются новые сведения о книге, уточнения, технические замечания и выявленные ошибки.

Начало
Полное содержание
Предисловие
Заказать книгу в магазине «Мистраль»

Время на прочтение
6 мин

Количество просмотров 26K

Так уж принято, что первым приложением на любом языке программирования пишут, так называемый, «Hello, world!». Мы не будем отходить от традиций, хотя уже и написали такое приложение в качестве тестового примера в рамках статьи Разработка Flash-игр. Подготовка рабочего места. Но, на сей раз мы продвинемся немного дальше. Мы не просто напишем в окне заветные слова, но и рассмотрим вкратце работу с шрифтами и трансформацию объектов.

Примечание: Я сам только изучаю AS3, а потому лишь делюсь своими «открытиями», простыми словами…

Итак, понеслась…

Создаем новый проект совершенно аналогично тому, как было рассказано в выше упомянутой статье. Назовем новый проект «HelloWorld«.

Я специально использую слитное написание без пробелов и знаков препинания в названиях проектов затем, чтобы было проще публиковать готовые приложения в сети интернет, т.к. там пробелы и другие знаки в ссылках на объекты заменяются на их кодовые числа, например, пробел — это «%20» и т.п. Подобного рода абра-кадабра только мешает и может потребовать переименования файла при его размещении на сервере или другие действия. Я же привык делать сразу так, чтобы потом не суетиться.

Теперь решим, что мы будем отображать в окне. Я решил написать: «Hello, world! Это приложение разработано при помощи FlashDevelop«. Разбить эту реплику на несколько строк и каждую строку отформатировать задав ей собственный стиль начертания, цвет и шрифт.

Поскольку мы будем писать слова, то нам надо будет работать с объектами типа TextField.
К слову говоря, надо помнить о том, что во Flash-приложениях все, что необходимо отображать в окне — это объекты. А, следовательно, чтобы объекты отображались, должен быть примерно следующий порядок:

  • Объявление переменной объекта
  • Инициализация объекта (его создание)
  • Возможно взаимодействие с другими объектами при подготовке
  • Добавление объекта к stage

Кроме того, объекты могут добавляться к объектам образуя иерархию вида stage -> ParentObject -> ChildObject.
Таким образом к stage может быть добавлено, скажем, десяток родительских объектов, каждый из которых будет содержать различное количество дочерних объектов.

Ну это так, к слову, чтоб вы знали… А пока не будем на этом заморачиваться и двинем дальше.

В шаблоне приложения (файл main.as) в классе public class Main extends Sprite в самом его начале (т.е. до функции Main() ) напишем наши переменные текстовых полей:

private var t1:TextField;
private var t2:TextField;
private var t3:TextField;
private var t4:TextField;
private var t5:TextField;

И добавим переменную формата текста:

private var tf:TextFormat;

Переменные объявлены, можно переходить к созданию объектов.

Внутри функции private function init(…) сразу после строчки removeEventListener(…) начинаем писать наш код.

Создадим объект первого текстового поля:

t1 = new TextField();

Объект создан и теперь можно задать ему параметры, такие как: положение в окне, размер и, конечно же, текст:

t1.x = 20;
t1.y = 20;
t1.width = 150;
t1.height = 30;
t1.text = "Hello, world!";

После задания параметров можно отформатировать текст:

tf = new TextFormat( "Arial", 20, 0x000000, true );

TextFormat на самом деле имеет гораздо больше вводных переменных, но можно использовать лишь те, которые должны отличаться от устанавливаемых значений по умолчанию. Так, в нашем случае мы установили шрифт Arial размером 20 пт., черным цветом и полужирным начертанием.

Чтобы было понятнее, расскажу кратенько о синтаксисе TextFormat:

tf = TextFormat( font, size, color, bold, italic, underline );

font — название шрифта, например: «Arial Black», «Times New Roman». Все их названия можно посмотреть в текстовом редакторе. Главное помнить, что не все шрифты из тех, что имеются у вас, окажутся у конечного пользователя. Чтобы не случилось того, что ваше приложение «косо» отобразиться на девайсах ваших друзей, когда надумаете похвастаться созданным вами шедевром, советую посмотреть такую вот таблицу шрифтов: Список стандартных шрифтов Windows. Если же задумаетесь о качественном совмещение с другими ОС — google с соответствующим запросом вам в помощь.

size — размер шрифта в пунктах.

color — цвет шрифта в формате 0xRRGGBB, где RR — шестнадцатеричное значение красного, GG — зеленого и BB — синего. Мне уже привычно… А чтобы вам не париться — сюда: http://getcolor.ru/. Получите схему любого цвета. И все, что нужно будет, это заменить знак «#» на «0x«.

bold — полужирное начертание (true). По умолчанию false — обычное.

italic — курсив (наклон) (true). По умолчанию false — без наклона.

underline — подчеркивание (true). По умолчанию false — обычное.

Это не весь список передаваемых значений, которые имеются в структуре TextFormat. Я перечислил лишь самые нужные, они-то как раз и выведены вперед списка. Отсортированы переменные в порядке релевантности по частоте использования, и те из них, которые не требуется изменять, можно опускать.

Например, если нам необходимо указать только имя шрифта и размер, то остальные значения можно не указывать:

TextFormat( "Calibri", 10 );

Но! Если вам нет нужды менять другие параметры, но при этом сделать шрифт подчеркнутым, то придется пройти по всем значениям, указывая каждый из них. Либо можно так:

tf = new TextFormat( "Arial", 20 );
tf.underline = true;

Иначе говоря, все экземпляры класса TextFormat доступны после точки. И можно создавать пустой текстовый формат:

 tf = new TextFormat();

, а уже потом обращаться к экземплярам, указывая их значения.

Едем дальше…

Теперь нам осталось применить текстовый формат к текстовому полю и добавить текстовое поле к stage, чтобы оно стало видимым:

t1.setTextFormat( tf );
addChild( t1 );

Это весь цикл добавления текстового поля в окно приложения. Сделаем тоже самое для всех остальных полей, указывая для каждого из них свои значения:

t2 = new TextField();

t2.x = 20;
t2.y = 64;
t2.width = 150;
t2.height = 20;
t2.text = "Это приложение";

tf = new TextFormat( "Arial", 14, 0xff0000, false, true );

t2.setTextFormat( tf );
addChild( t2 );

t3 = new TextField();

t3.x = 20;
t3.y = 80;
t3.width = 180;
t3.height = 20;
t3.text = "разработано при помощи";

tf = new TextFormat( "Arial", 14, 0xff0000 );

t3.setTextFormat( tf );
addChild( t3 );

t4 = new TextField();

t4.x = 20;
t4.y = 110;
t4.width = 150;
t4.height = 50;
t4.text = "Flash";

tf = new TextFormat( "Calibri", 32, 0xd0d0d0, true, true );

t4.setTextFormat( tf );
addChild( t4 );

t5 = new TextField();

t5.x = 90;
t5.y = 110;
t5.width = 150;
t5.height = 50;

t5.text = "Develop";

tf = new TextFormat( "Calibri", 32, 0xf09e14, true, true );

t5.setTextFormat( tf );
addChild( t5 );

Отлично! Теперь, если вы запустите приложение (F5), то увидите результаты трудов:

image

И так, работу с текстовыми полями и текстовыми форматами мы рассмотрели. Переходим к трансформациям…

Трансформации в AS3 представлены довольно широко. Оно и понятно… Годами отточено.

Всего разом не рассмотришь, а потому поговорим лишь о той трансформации, которая нам нужна в данной статье — это rotation (повороты).

Данная трансформация имеет в постфиксе имени букву оси, относительно (вокруг) которой будет происходить вращение. Т.е. их три:

  • rotationX
  • rotationY
  • rotationZ

Нам нужен первый из них.

Все углы считаются в градусах. Поставим предварительные значения для наших текстовых полей:

t1.rotationX = 90;
t2.rotationX = 120;
t3.rotationX = 150;
t4.rotationX = 180;
t5.rotationX = 180;

Как вы заметили, каждое следующее поле у меня повернуто на 30 градусов больше прежнего. Это сделано для не синхронного вращения полей.

А сейчас снова вернемся к «видимости» полей…

Все поля добавлены к stage, а, следовательно, все они отображаются. Но нам нужно, чтобы «перевертыши» не показывались до тех пор, пока не будут повернуты «лицом».

В AS3 за видимость отвечает переменная visible. Если ее значение равно true, то объект видимый, а если false, то невидимый.

Сделаем все наши поля кроме первого (оно уже правильно ориентировано) изначально невидимыми:

t2.visible = false;
t3.visible = false;
t4.visible = false;
t5.visible = false;

Прекрасно. Сцена подготовлена. Теперь нам необходимо ее «оживить». Для этого нам необходимо добавить слушатель смены кадров:

addEventListener(Event.ENTER_FRAME, MyRender );

Этот слушатель работает очень просто: каждый раз, когда готовится смена кадра ENTER_FRAME, будет вызываться наша функция, которую мы назвали MyRender.

Напишем эту функцию следом за функцией init().

private function MyRender(e:Event = null): void {
}

Каждый кадр будем поворачивать текстовые поля с шагом 5 градусов до тех пор, пока они не повернутся полностью, т.е. до 0 градусов:

if (t1.rotationX > 0) t1.rotationX = t1.rotationX - 5;
if (t2.rotationX > 0) t2.rotationX = t2.rotationX - 5;
if (t3.rotationX > 0) t3.rotationX = t3.rotationX - 5;
if (t4.rotationX > 0) t4.rotationX = t4.rotationX - 5;
if (t5.rotationX > 0) t5.rotationX = t5.rotationX - 5;

И позаботимся о том, чтобы в момент, когда текстовое поле повернуто на 90 градусов, оно становилось видимым:

if (t2.rotationX == 90) t2.visible = true;
if (t3.rotationX == 90) t3.visible = true;
if (t4.rotationX == 90) t4.visible = true;
if (t5.rotationX == 90) t5.visible = true;

Отлично. Мы всё сделали. Можно жать F5 и наслаждаться результатом.

Последнее, чем можно побаловаться, это «подогнать» приложение под требуемые параметры. Зайдем в свойства проекта Project->Properties:

image

Пройдя по указанному меню откроется окно свойств проекта:

image

Здесь нам понадобятся поля группы General:

Dimensions — оригинальные размеры окна. Дело в том, что на веб страницах приложение может быть масштабировано, НО! Пропорциональность масштабирования будет зависеть именно от указанных значений данного поля. Указывается в пикселях (точках).

Background color — цвет фона. Без комментариев…

Framerate — Частота смены кадра. Именно от этого значения зависят: а) плавность анимации; и б) нагрузка на систему и, как следствие, тормоза на слабых ПК. Я бы не советовал ставить значение более 30. И вообще, считаю, что 15 в подавляющем большинстве случаев более чем достаточно.

Ссылки

Готовый пример можно посмотреть здесь. Там же есть ссылка на загрузку исходников примера.


Загрузить PDF


Загрузить PDF

Adobe Flash был и есть отличным средством для создания фильмов, игр, презентаций и много чего еще. Это и графический редактор, и видео-редактор, и оболочка для работы со встроенным языком программирования. С чего начать? А с этой статьи и начните.

Adobe Flash будет поддерживаться только до декабря 2020 года. После этого использовать Flash станет невозможно.

Шаги

  1. Изображение с названием Program in Flash (Basic Actionscript 2.0) Step 1

    1

    Узнайте версию Flash, установленную у вас. Эта статья применима для всех версий Flash, начиная с Flash 7 и выше (не CS7, просто 7; хотя и все CS Flash тоже сгодятся).

  2. Изображение с названием Program in Flash (Basic Actionscript 2.0) Step 2

    2

    Получите базовое представление о том, что такое язык программирования. А это, если в общем, средство общения человека («Привет, мир!») и компьютера (10111010001000×101110001110). Представьте себе, что вы встретили итальянца, который не говорит по-русски. Если вы оба знаете английский, поэтому все же можете общаться — пусть и не так, как привыкли.

  3. Изображение с названием Program in Flash (Basic Actionscript 2.0) Step 3

    3

    Почему именно ActionScript 2? ActionScript — это встроенный во Flash язык программирования. Версия ActionScript 1 устарела, а ActionScript 3 слишком сложный, чтобы пытаться объяснить его в этой короткой статье.

  4. Изображение с названием Program in Flash (Basic Actionscript 2.0) Step 4

    4

    Итак, основы мы вам объяснили, теперь можно приступать к работе. Откройте новый проект во Flash, обязательно ActionScript 2. Теперь нарисуйте простенькую кнопку на экране. Выделите ее мышью с помощью инструмента выделения, кликните по ней правой кнопкой и выберите «Преобразование в символ». Впрочем, можете просто нажать F8, когда кнопка выбрана.

  5. Изображение с названием Program in Flash (Basic Actionscript 2.0) Step 5

    5

    Появится диалоговое окно. Выберите тип кнопки, нажмите ОК. Учтите, что окно появилось в разделе «Библиотека».

  6. Изображение с названием Program in Flash (Basic Actionscript 2.0) Step 6

    6

    Кликните дважды по кнопке. На таймлайне используйте опцию «Вставить ключевой кадр», чтобы добавить к рядам, описывающим состояния кнопки, небольшое поле. В принципе, у кнопки должно быть как минимум два состояния: нажата и неактивна. Затем через меню вернитесь на первую сцену (Scene 1) редактора.

  7. Изображение с названием Program in Flash (Basic Actionscript 2.0) Step 7

    7

    Теперь вставьте на таймлайн еще один кадр и напишите на нем что-нибудь вроде «Привет!» с помощью инструмента добавления текста. Текст, по сути, не важен, на втором кадре может быть все что душе угодно.

  8. Изображение с названием Program in Flash (Basic Actionscript 2.0) Step 8

    8

    А вот дальше уже начинается программирование. Выбрав первый кадр, нажмите F9 или кликните правой кнопкой, затем выберите «Действия» (Actions). В появившемся окне напечатайте «stop()» — но, ясное дело, без кавычек. Суть этого скрипта — остановить воспроизведение на первом кадре. Чтобы избежать багов в будущем, следует добавить этот же скрипт и ко второму кадру.

  9. Изображение с названием Program in Flash (Basic Actionscript 2.0) Step 9

    9

    Теперь, когда код есть в обоих кадрах, снова вызовите окно «Actions». Напечатайте следующий код: on (release) {    gotoAndStop(2);} Эта команда заставит Flash, когда кнопка вашей мышки будет отпущена над кнопкой, переводить вас на второй кадр («Привет!») и на этом все, если вы не добавите аналогичный код ко второму кадру. Можете воспользоваться функцией «gotoAndPlay», чтобы запускать анимацию, но это уже сложнее.

  10. Изображение с названием Program in Flash (Basic Actionscript 2.0) Step 10

    10

    Нажмите Ctrl + Enter, чтобы запустить получившийся ролик (Cmd + Return на Mac). Нажмите на кнопку.

    Реклама

Советы

  • Не усложняйте. Программирование — это лишь половина Flash, вот почему Action Sсript 2 все еще популярен.
  • Развивайтесь, творите, создавайте новое — возможности Flash почти что безграничны.
  • В сети и на прилавках книжных магазинов можно найти бесчисленное множество обучающих материалов по Flash.

Реклама

Предупреждения

  • Программирование на Flash — дело сложное. Начинайте с простого и никогда не забывайте сохраняться и делать резервные копии, особенно если вы пока что крайне смутно представляете себе, что будет после того или иного действия.

Реклама

Что вам понадобится

  • Adobe Flash (версия 7+, если найдете версию Macromedia Flash, знайте: это очень древняя версия)
  • Терпение и упорство
  • Базовое понимание принципов программирования.

Об этой статье

Эту страницу просматривали 12 855 раз.

Была ли эта статья полезной?

Понравилась статья? Поделить с друзьями:
  • Пластырь на пупок для похудения инструкция
  • Блок м система безопасности руководство по эксплуатации
  • Варочная панель кайзер стеклокерамика 4 конфорки инструкция
  • Лекарство ксефокам таблетки инструкция по применению цена
  • Ренгалин инструкция по применению для детей сироп от какого кашля