Переменные во Flash. ActionScript Объекты в Action Script. Подробно

Типы данных в языке ActionScript

Строки

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

Airplane = "Фарман"

Именем переменной, представляющей тип самолета, здесь является Ai rpl ane, а строковым литералом (literal) — "Фарман". Строковыми литералами называются данные, которые могут использоваться в качестве значения строковой переменной. В отличие от переменных (тип самолета может измениться в любой момент), литералы всегда остаются сами собой — «Фарман» всегда останется «Фарманом». Иногда в виде строк записывают числа:

StreetNumber = "250"

Значением переменной StreetNumber является строковый литерал, который состоит из десятичных цифр. Вообще говоря, в виде строки можно представить практически любую цепочку алфавитно-цифровых символов. Кроме букв и цифр такая цепочка символов может включать в себя знаки препинания и пробелы. Буквы и цифры могут присутствовать в строковом литерале в любой последовательности. Приведенная ниже строка скорее всего будет иметь смысл лишь для разработчика фильма в формате Flash и для самой системы Flash; подобные строки не демонстрируются пользователям:

MixUp = "Juan2Tree4"

чтите, что строки — это не числа. Строковый литерал всегда заключается в кавычки. В приведенном выше примере со строкой StreetNumber литерал "250" заключен в кавычки. Если мы сложим "250" и "250", то получим "250250", а не "500".

Выражения

О выражениях принято говорить как о составных (compound) конструкциях, потому что они состоят из двух или нескольких элементов. Приведем пример простого выражения в языке ActionScript: [ Под выражением автор здесь имеет в виду 7+5, а не всю приводимую им строку сценария. — Примеч. перев.]

Total =7 + 5:

Значение переменной Total после выполнения этой инструкции будет равно 12. Рассматриваемое выражение является составным (здесь два слагаемых — 7 и 5), однако значение переменной Total целостно и равно 12, поскольку значение переменной не разбивается на какие бы то ни было поля свойств. Возможно, вы спросите, зачем нужно писать в тексте сценария 7+5, когда можно просто написать 12. Действительно, программисты редко используют настолько простые выражения. Смысл понятия выражения станет для вас более очевидным, если вы взглянете на следующий пример:

Total = ItemCost + Tax;

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

ItemCost =12:</p>
<p>Tax = ItemCost * .08;</p>
<p>sum = ItemCost + Tax;

Сначала мы определяем переменную ItemCost — присваиваем ей значение числовой константы 12. Другая переменная — Tax — получает значение выражения, в котором используется переменная ItemCost, — ее значение умножается на 0,08 (что соответствует 8-процентной ставке торгового налога). Наконец, переменная sum принимает значение еще одного выражения, представляющее собой сумму значений двух упомянутых выше переменных.

До сих пор мы имели дело с довольно простыми выражениями, призванными продемонстрировать лишь общий принцип использования выражений в сценариях. В то же время выражения могут быть и очень сложными, особенно если в них имеется несколько взаимосвязанных переменных. Однако, каким бы сложным ни было то или иное выражение, о том, чтобы правильно вычислить его значение, во всех случаях позаботится компьютер — вам не понадобится ничего высчитывать вручную. Тем не менее при использовании сложных выражений рекомендуется всегда четко и ясно оформлять в тексте сценария все составляющие эти выражения части. Редактор сценариев Action-Script в версии Flash 5 всячески помогает программисту создавать «допустимые», то есть корректные, выражения. Средства создания сложных выражений в ActionScript более подробно рассматриваются в уроке 4.

Конкатенация строк

Операция соединения, или склейки, двух или нескольких строк носит название конкатенации (concatenation). Конкатенация всегда записывается в виде выражения. Для соединения строк в языке ActionScript используется оператор сложения + или строковый оператор add. Рассмотрим пример.

Both = "Джонни" + "Салли"; Both = "Джонни" add "Салли":

В обоих случаях при выполнении конкатенации получается строка "Джонни -Салли". Именно эта строка будет значением переменной Both. Конкатенация часто используется при необходимости соединить строки, связанные в смысловом отношении, например имя и фамилию человека. Вам наверняка не раз доводилось заполнять анкеты, где имя вписывается в одну графу, а фамилия — в другую. Чтобы получить полное имя, при обработке анкеты содержимое соответствующих граф следует объединить. Поскольку между именем и фамилией обычно ставится пробел, необходимо учесть его в конкатенации, как показано ниже:

WholeName = "Джон" + " " + "Дэвис":

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

Логические выражения

В ActionScript используются также логические, или булевы, выражения. Логическое выражение может принимать значения 0 (нет, ложь) и 1 (да, истина). Булевы выражения названы так в честь Джорджа Буля (George Boole), блестящего британского математика. Логические выражения обладают особым статусом в современной науке и программировании. (Краткую биографическую справку о Буле можно найти в Интернете по ссылке http:// encarta.msn.com/find/Condse.asp?ti=058D1000.)

В следующем примере в переменную Bigger помещается логическое значение высказывания «10 больше 15». Поскольку это высказывание неверно, переменная Bigger получает значение «ложь». Bigger = 10 > 15

Логическое значение здесь выражается в форме 10 > 15, а не в виде константы (0 или 1). Любому программисту хорошо известно, какую важную роль булевы выражения играют в самых разных алгоритмах. Если у вас совсем нет опыта программирования, поначалу это утверждение может показаться вам сомнительным, однако со временем вы наверняка по достоинству оцените значение логических выражений.

Логические объекты

Применение логических значений весьма разнообразно. Вы можете, например, присвоить логическое значение какой-либо переменной:

BooVar= 9 < 10;

В результате получается значение «истина», однако его можно интерпретировать и как число 1. Предположим, в некоем сценарии используется следующая последовательность команд:

BooVar= 9 < 10;</p>
<p>Total=BooVar + 20;

После выполнения этих инструкций присваивания переменная Total получит значение 21. Чтобы явным образом указывать, какое именно значение имеется в виду в том или ином случае — логическое или какое-то иное, — следует применять логические объекты. Логические объекты служат контейнерами свойств логического типа. В ActionScript предусмотрены три логических объекта:

new Boolean () — действует в качестве контейнера логического свойства;
toString() — преобразует логическое выражение в строку "true" или "false";
valueOf() — возвращает значение логического типа.

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

Создается переменная bool Var, которая являет собой имя логического объекта со значением "true", то есть 1, поскольку 8 больше 7.

В переменную s помещается строковое значение переменной bool Var, то есть "true".

В переменной v также сохраняется значение переменной bool Var, то есть логическая константа "true", или 1.

В инструкции присваивания для переменной textVal используется символ + (плюс), который в данном случае обеспечивает конкатенацию, то есть эквивалентен ключевому слову add. Поскольку при конкатенации строки с любым другим (нестроковым) значением возвращается исходная строка с приписанным сзади числом, мы получаем строку true2.

Когда логическое выражение интерпретируется как число, символ + (плюс) трактуется как знак сложения. Получаем 3 (1 + 2 = 3). Именно это число сохраняется в переменной realVal.

booVar = new BooleanC 8 > 7);<br />
s=booVar.toString();<br />
v=booVar.valueOf();<br />
textVal=s + 2;<br />
realVal=v + 2;<br />
output=textVal + newline + realVal;

Переменная output представляет здесь текстовое поле, и результат вычислений будет выведен на экран. Функция newline автоматически позаботится о «возврате каретки»; поэтому результаты предъявляются пользователю в текстовом поле в ясной и четкой форме:

true2 </p>
<p>3

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

Числа

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

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

Nuts = -5 + 15;</p>
<p>ReallyNuts = -5 + -15 + 3;

Целые числа

Целые числа в языке ActionScript — это обычные математические целые числа. У них отсутствует дробная часть. При создании числовой переменной вы не обязаны указывать, какой именно числовой тип вам нужен — целочисленный или вещественный. Но если вы хотите создать именно целочисленную переменную, то должны сообщить системе ActionScript о том, что эту переменную необходимо трактовать как целочисленную. Объявление целых чисел осуществляется с помощью функции int. Пример: whole = int(AllStuff / Parts):

Выражение All Stuff / Parts здесь означает, что значение переменной All Stuff делится на значение переменной Parts. Вне зависимости от результата деления функция int обеспечивает на выходе целое число, отбрасывая дробную часть. Например, число 17,9 будет округлено до 17. (Если вы возьмете значение 17,84563, все равно получите 17. Количество десятичных цифр в дробной части здесь не играет никакой роли.)

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

СОВЕТ
ОКРУГЛЕНИЕ
. Если вам нужно, чтобы числа округлялись до ближайшего целого (то есть в большую сторону, когда дробная часть числа больше или равна 0,5, и в меньшую сторону в противном случае), следует применить логическое выражение. Как именно должно выглядеть такое выражение и где его надо использовать, вы увидите в примере, приведенном в конце этого урока. Имейте в виду, что лучше всего ваш компьютер умеет обращаться именно с числами. Вы должны максимально задействовать его вычислительный потенциал.

Вещественные числа

Чтобы предотвратить потерю дробной части числа и добиться большей точности, большинство программистов применяют в работе вещественные числа (real numbers), или числа с плавающей точкой (floating point numbers). По умолчанию все числа в сценариях ActionScript рассматриваются именно как числа с плавающей точкой. Более того, все целые числа в составе различных выражений представляются в форме чисел с плавающей точкой, если отсутствует явное обращение к функции int. Рассмотрим следующий пример.

whole = int(All Stuff / Parts);<br />
SplitWhole = whole / 7;

Если в результате деления значения переменной whole на 7 получится дробное число, переменная SplitWhole также получит дробное значение, несмотря на то что как whol e, так и 7 — числа целые.

Объекты

В ActionScript объектом (object) называется любая коллекция свойств (properties). Вы можете создавать собственные и использовать готовые, предопределенные объекты. Каждое поле свойства обладает именем (name) и значением (value). Например, у объекта может быть свойство с именем _rotation, обозначающее угол поворота и способное принимать значения в интервале от О до 360. Кроме свойств объекты могут располагать методами (methods), или действиями, выполняющими те или иные вычисления или производящими определенные преобразования. К примеру, у логических объектов существует метод, преобразующий логическую константу в строку. Все вопросы, связанные с применением объектов, будут рассмотрены в уроке 8. Кроме того, целый ряд различных типов объектов будет появляться в других уроках. Здесь мы рассмотрим лишь объекты-массивы.

Массивы

Массивом (array) называется объект, содержащий несколько свойств. В общем случае массивы можно считать коллекциями переменных — элементов массива, — снабженных числовыми индексами. Каждый элемент представляет собой отдельное свойство; значением элемента массива является строка, логическая константа или число, соответствующее индексу этого элемента. Элементы массива нумеруются, начиная с нуля; индекс последнего элемента на единицу меньше длины массива. Приведем пример массива из шести элементов.

Friends[0]="Делия":<br />
Friends[l]="Pn4apfl";<br />
Friends[2]="Билл";<br />
Friends[3]="Мелани";<br />
Fnends[4]="Дэвид";<br />
Friends[5]="Патрик";<br />

Чтобы создать массив, следует использовать объект Array. К примеру, массив, состоящий из перечисленных выше элементов, можно организовать с помощью вызова конструктора new Array, как показано ниже.

Friends=new Аrrау('Делия". "Ричард". "Билл", "Мелани", "Дэвид", "Патрик");

Альтернативный метод предполагает указание при создании нового массива лишь количества его элементов с последующим присваиванием им соответствующих значений:

Friends=new Аггау(6);</p>
<p>Friends[0]="Делия";

Клипы

В языке ActionScript существует особый тип данных для представления клипов. Это единственный тип данных, который обеспечивает ссылку на графическую информацию. Так же как у массивов, у объекта клипа MovieClip есть особые методы. В последующих уроках вы будете периодически сталкиваться с объектами MovieClip; подробные сведения о работе с ними будут предоставляться по мере необходимости. В целом можно сказать, что клипы чаще выступают объектами, на которые направлено воздействие со стороны других объектов, нежели источниками команд для иных объектов. Клипы способны лишь отдавать команды другим клипам и переходить к определенным кадрам. Ниже приводится несколько примеров, связанных с использованием объектов MovieClip. В этих примерах экземпляр flame представляет собой ссылку на некоторый клип.

f1ame.gotoAndStop( 8 );<br />
flame.gotoAndPlay(6);<br />
flame.play();<br />
flame.stop():<br />
flame.nextFrame();

Один из важнейших элементов клипа — это имя его экземпляра. Множество оши-бок в сценариях ActionScript связано с тем, что разработчики забывают включить в текст сценария имя экземпляра. Это имя не обязано совпадать с меткой клипа. Чтобы поставить в соответствие всем клипам определенные имена экземпляров, следует воспользоваться средствами панели Instance (Экземпляр). Рекомендуется позаботиться о назначении имени экземпляра сразу по завершении работы над клипом.

Добавить в:
Google slashdot YahooMyWeb Digg Technorati Delicious Забобрить эту страницу! Добавить на Newsland.ru Добавить на СМИ2 Добавить на Ваау! Добавить на RUmarkz Добавить на rucity.com Добавить в закладки МоёМесто.ru

Flash Дизайнер (designer)

Постоянные ссылки

При копировании ссылка на Заметки дизайнера обязательна!

URI

Html (ЖЖ)

BB-код (Для форумов)

Написать коммент

Вы должны войти, чтобы оставить коммент.

Trackback на эту запись  |  Комменты по RSS


Рекламка в тему

Рубрики

Архив по месяцам

Друзья

Мета