Библиотека
Библиотека
Организация библиотеки осушесгаляется посредством создания каталогов внутри палитры Library. Каталоги выполняют такие же функции, как и каталоги (директории) вашей операционной системы. Вы можете создавать каталоги и хранить в них различные элементы библиотеки. Например, если у вас есть 52 графических изображения для представления колоды из 52 карт, вы можете поместить их в папку под названием "cards" ("карты"). Это значит, что все 52 карты будут отображаться как один элемент библиотеки (если содержащая их папка закрыта). Развернув данный элемент, вы получите доступ к имеющимся в нем графическим изображениям.
Для того чтобы создать каталог, откройте палитру Library и из всплывающего меню в правом верхнем углу выберите команду New Folder (Новая папка). Доступ к содержимому папки осуществляется очень просто (нажатием на ее изображение мышью). При этом вам не придется ссылаться на имя каталога ни при помощи инструментов анимации, ни в программе ActionScript.
Палитра Library включает еще несколько инструментов для организации библиотеки. Например, вы можете упорядочить ее содержимое по любому параметру, указанному в заголовках столбцов.
Данное устройство временной шкалы
Рисунок 1.19 Данное устройство временной шкалы включает один слой только для меток, еще один для ActionScript и остальные для графических объектов
Двойным щелчком мыши по небольшой пиктограмме слева от каждого слоя можно вызвать диалоговое окно Layer Properties (Свойства слоя) - см. Рисунок 1.20. Слою можно задать, например, свойство Outline (Контур), тогда все изображения данного слоя будут отображаться в виде контуров. Данный режим действует только в процессе работы в среде Flash; при просмотре swf-файла изображение примет обычный вид.
Диалоговое окно Bitmap Properties
Рисунок 1.14 Диалоговое окно Bitmap Properties позволяет задавать степень сжатия растра, включить и отменить сглаживание и повторить импорт при помоши кнопки Update (Обновить)
Для того чтобы преобразовать растровое изображение в векторное, выделите его на рабочем поле и выберите команду Modify -> Trace Bitmap (Изменить -> Трассировать растр}. При этом на экране появится диалоговое окно, показанное на Рисунок 1.15.
Диалоговое окно Publish Settings
Рисунок 1.22 Диалоговое окно Publish Settings дает возможность экспортировать ролик Flash в одном из нескольких форматов
Вкладка Flash позволяет задать несколько настроек конечного swf-файла (Рисунок 1.23). При выборе опции Generate Size Report (Создать отчет о размере) программа создает краткое описание содержимого swf-файла и помешает его в окно Flash Output (Window => Output). Также создается отдельный файл отчета FileName Report.txt (где FiteName - имя вашего, fla-файла), который помешается в ту же директорию, что и fla-файл. Это поможет вам найти и сократить элементы, занимающие много места.
Диалоговое окно Sound Properties
Рисунок 1.16 Диалоговое окно Sound Properties позволяет задавать степень сжатия звукового файла при включении его в конечный Flash-ролик
Обычно звуковые элементы перетаскивают на временную шкалу и помешают в ключевой кадр. Когда начинает воспроизводиться ключевой кадр, запускается воспроизведение соответствующего звукового файла. Параметры звукового файла, прикрепленного к кадру, можно настроить, вызвав соответствующую ему панель Sound (Звук).
Настройка степени сжатия звукового файла в диалоговом окне Sound Properties необходима в случае, если для вас важно качество звука в конечном ролике. Например, использование компрессии МРЗ со скоростью воспроизведения 16 Кб/с даст звук среднего качества, подходящий для специальных эффектов и т. п. Однако, если вы используете качественную музыку, вам понадобится скорость 32 Кб/с или даже 64 Кб/с. Советуем поэкспериментировать с различными настройками и подобрать их таким образом, чтобы получить звук хорошего качества и одновременно занимающий как можно меньше места. При сохранении ролика вы можете также установить настройки по умолчанию, которые будут применяться для всех звуков ролика.
Показанная на Рисунок 1.17 панель Properties позволяет установить способ запуска звукового файла, его повторение и даже применить эффект его постепенного исчезновения. Так как в нашу задачу не входит использование этих свойств звука, не будем рассказывать о них подробно.Диалоговое окно Symbol Properties
Рисунок 1.9 Диалоговое окно Symbol Properties появляется на экране при выборе команды Insert -> Convert to Symbol. Это же окно появится, если вы захотите изменить свойства уже существующего символа.
Разница между кадром и ключевым кадром состоит в следующем: ключевой кадр - это точка временной шкалы, определяющая точное положение всех объектов на рабочем поле данного слоя. Они не будут менять своего положения до следующего ключевого кадра. Однако аниматоры могут выбрать, например, анимацию движения между ключевыми кадрами, при этом объекты рабочего поля будут постепенно передвигаться из позиции, определяемой первым ключевым кадром, к позиции, определяемой следующим ключевым кадром. Более подробно о ключевых кадрах вы узнаете из урока анимаиии, поставляемого с программой Flash MX.
Дла доступа В Windows Properties
Дла доступа...
Info Panel
Library
Reference Panel
Actions Panel
Ctrl+I
Ctrl+L
Shift+F1
F9
Окно справки
В окне Reference (Справка) содержится словарь ActionScript программы Flash. Даже самый опытный программист ActionScript не будет знать всех свойств, применений и отличительных особенностей синтаксической структуры Flash. Это меню позволит вам быстро получить необходимую информацию об определенной команде или функции.
Для того чтобы вызвать диалоговое
Рисунок 1.7 Для того чтобы вызвать диалоговое окно Preferences, используйте основное меню, но его расположение зависит от вашей операционной системы
Главное окно Flash
Главное окно Flash
Основой интерфейса Flash является главное окно и его важнейший элемент- рабочее поле. На рис 1.1 показано рабочее поле, которое содержит изображение большого дерева и лисы, держащей корзину.
Главное окно основной элемент интерфейса Flash
Рисунок 1.1 Главное окно - основной элемент интерфейса Flash.
Для программиста на ActionScript одни элементы главного окна более важны, чем другие. В верхней части расположена временная шкала, в которой некоторые кадры помечены номерами 1, 5, 10 и 15. Сбоку временной шкалы находится панель управления слоями. В данном примере показаны два слоя: «Background» (Фон) и «Fox» (Лиса). Вы наверняка заметили, что кадры на временной шкале намного шире, чем обычно. Это связано с тем, что поле представления кадров было расширено при помощи кнопки Frame view (Отображение кадра), показанной на Рисунок 1.1. Существует еше несколько опций по управлению представлением кадров, например можно регулировать высоту каждого слоя (находится в свойствах слоя). Поэкспериментируйте с ними самостоятельно. Область рабочего поля главного окна может содержать любой элемент вашего ролика: графический образ, кнопку или клип. Изображение, показанное на рабочем поле главного окна, можно увеличить или сжать. Для этих целей предназначено всплывающее меню Scale (Масштаб), расположенное в левом нижнем углу главного окна, но для изменения масштаба намного удобнее пользоваться «горячими» клавишами. Нажатие клавиш Cntrl+2(PC) или Command+2(Mac) масштабирует рабочее поле так, чтобы оно вплотную занимало все свободное место в главном окне. Использование сочетания клавиш Cntr+3 или, соответственно, Command+З масштабирует рабочее поле так, что в главном окне максимально распахивается область, содержащая все изображения, в том числе те, которые находятся на серой области вне пределов рабочего поля. Сочетание Cntrl+1 (Command+1) возвращает рабочему полю масштаб 100%. И наконец, использование командных клавиш в сочетании с + и - позволяет изменять текущий масштаб в два раза. Последнее, о чем хотелось бы здесь сказать, - кнопки Show/Hide (Показать/Скрыть) и Lock/Unlock (Заблокировать/Разблокировать). Эти функции чрезвычайно полезны тем, что позволяют отобразить отдельные слои или определенный набор слоев. Блокировка слоев позволяет без труда выбрать нужный вам объект, не внеся при этом случайных изменений в другой слой.
Импорт мультимедийных элементов во Flash
Импорт мультимедийных элементов во Flash
Хотя основой Flash является векторная графика, программа может использовать и другие элементы, например растровые изображения и звуковые файлы. Flash не позволяет редактировать эти элементы, они только отображаются. Создавать растровые изображения и звуки следует в других программах, например Adobe Photoshop и Sound Forge. Давайте рассмотрим эти два типа элементов и способы их- использования с помошью ActionScript.
Интерфейс Flash
Интерфейс Flash.
Прежде чем создавать сложные программы на ActionScript, вам необходимо хорошо изучить интерфейс Flash, который включает множество окон, панелей и меню.
Это окно содержит три панели
Рисунок 1.2 Это окно содержит три панели
Вы можете изменить состав окна панелей, а также создать новое окно. Это осуществляется перетаскиванием панелей за левую, помеченную характерной "дырчатой" текстурой, часть титульного поля панели. Для того чтобы научиться перемещать панели, требуется немного практики. У вас всегда есть возможность вернуть исходные настройки, выбрав команду Window -> Panel Sets -> Default Layout (Окно -> Наборы панелей -> Расположение по умолчанию).
Необязательно перемешать панели между окнами панелей только потому, что у вас имеется такая возможность. Я нахожу расположение по умолчанию самым лучшим вариантом, которого и придерживаюсь. Это также удобно, если вам придется работать на другом компьютере, в этом случае вам не надо будет привыкать к какому-либо нестандартному расположению. Вы можете сохранить собственную конфигурацию панелей с помощью команды Window -> Save Panel Layout. Сохраненные конфигурации доступны с помощью команды Window -> Panel Sets.
Панель Info, которую можно выбрать командой Window -> Info, необходима для точного размещения объектов на рабочем поле. Выбрав объект, вы можете задать значения его координат (X и Y), а также его ширину и высоту (W и Н). Панель Transform (Рисунок 1.3) можно выбрать командой Window -> Transform. Эта панель позволяет изменять масштаб выделенного объекта и поворачивать его.в ролике необходима профаммисту на
Кадры
Маркировка кадров в ролике необходима профаммисту на ActionScript для того, чтобы задать в программе нелинейный переход ролика с одного кадра на другой. Присвоить имена кадрам можно в панели Properties.
В ActionScript имеется возможность ссылаться на номера кадров, однако мы не советуем этого делать. Почему? Предположим, вы написали программу, задающую переход от кадра 7 на кадр 13, а затем на кадр 8. После этого решили добавить кадр перед кадром 1. Кадры, которые раньше имели номера 7, 13 и 8, получат номера 8, 14 и 9, и вам придется менять программу в трех местах.
Присвоив кадрам имена, вы можете ссылаться на эти имена в программе. При этом вне зависимости от количества добавленных и удаленных кадров вы всегда будете уверены, что ключевой кадр сохранил свое имя.
Меню Control
Меню Control
Меню Control (Управление) включает постоянно используемую команду Test Movie (Пробное воспроизведение ролика). Данная команда, выполняемая также нажатием клавиш быстрого доступа Command+Return (Macintosh) или Ctri+Enter (Windows), преобразует ваш текущий ролик в конечный swf-файл и затем запускает его в окне предварительного просмотра. Ролик воспроизводится аналогично тому, как он бы воспроизводился в проигрывателе Flash или в Web-браузере пользователя. Данная команда отличается от команды Play (Воспроизведение) из меню Control, которая не использует никаких сценариев ActionScript, находящихся в ролике. Команда Play совершенно бесполезна для программиста, в то время как команда Test Movie бесценна.
Меню Edit
Меню Edit
Меню Edit (Правка) включает обычные команды: Сору (Копировать), Cut (Вырезать) и Paste (Вставить). Команда Undo (Отменить) особенно полезна, так как с ее помощью вы можете отменить 100 последних действий, что является довольно значительной цифрой. Вы можете задать количество отменяемых действий, выбрав команду Edit -> Preferences (Правка -> Настройка). При выборе команды Preferences на экране появится диалоговое окно, показанное на Рисунок 1.7. Здесь вы можете не только указать число отменяемых действий, но и задать целый ряд настроек, упорядоченных в три отдельные вкладки. Что касается меня, я стараюсь придерживаться настроек по умолчанию, однако никогда не помешает знать, какие опции вам предлагаются. Обычно я меняю предлагаемый по умолчанию режим Normal (Обычный) на режим Expert (Эксперт), что позволяет мне набирать команды ActionScript непосредственно в окне редактирования сценария.
Меню File
Меню File
Меню File (Файл) включает стандартный набор команд, знакомый пользователям Macintosh и Windows. Наряду с командами Open (Открыть), Save (Сохранить) и Save As (Сохранить как) здесь присутствует также команда Import (Импорт), позволяющая импортировать в программу растровые изображения, векторную графику и звуковые файлы. Наиболее важной в меню File является простая команда Save, которой соответствует сочетание клавиш Command+S (Macintosh) и Ctrl+S (Windows). Советуем вам почаще ее использовать. Если после многочасовой работы без сохранения программа или компьютер дадут сбой, вы пожалеете о том, что не нажимали данное сочетание клавиш каждые пять минут.
К сожалению, Flash время от времени имеет обыкновение давать сбой, что приводит к потере всей вашей работы со времени последнего сохранения. Компания Macromedia регулярно поставляет новые, исправленные и усовершенствованные версии flash. Обратной стороной такого стремительного развития программы является ее нестабильность. Тем не менее, если вы не будете забывать почаще сохранять вашу работу, возникающие сбои не испортят вам настроения.
В меню File также находятся команды Publish (Публикация) и Publish Settings (Параметры публикации). Подробнее об этих командах вы узнаете в конце данной главы.Меню Insert
Меню Insert
Меню Insert (Вставка) содержит две функции, полезные для программиста на ActionScript. Первая из них - команда Convert to Symbol (Преобразовать в символ), которая преобразует выделенные вами элементы в графический объект, клип или кнопку. Вновь созданный эталон включается в библиотеку, а также остается на рабочем поле, на месте исходных элементов. При вызове данной команды на экране появляется диалоговое окно Symbol Properties (Свойства символа), в котором вы должны задать тип символа и назначить ему имя (Рисунок 1.9).
Меню Modify
Меню Modify
Меню Modify предоставит вам еще несколько способов быстрого доступа к панелям. Команда Modify -> Document открывает окно свойств документа (рис 1.10). Диалоговое окно Document Properties (Свойства документа) позволяет изменить размеры ролика, количество кадров в секунду и цвет фона.
Меню Text
Меню Text
Включенные сюда команды обеспечивают быстрый доступ к опциям панелей Text (Текст). Более подробно о работе с текстом мы расскажем в разделе "Создание текста" данной главы.
Меню Window
Меню Window
С помощью меню Window (Окно) вы можете открыть все панели, а также все другие окна. Сочетания клавиш для быстрого доступа к наиболее часто используемым инструментам приведены в таблице:
Нерабочая область
Нерабочая область
p Существует одна область интерфейса Flash, чрезвычайно полезная программисту на ActionScript, однако редко упоминаемая в книгах, подобных этой. Это область, которая находится за пределами рабочего поля. Взгляните на Рисунок 1.1 и обратите внимание на серую область вокруг рабочего поля, расположенного в центре окна. В эту область вы можете помещать элементы. При воспроизведении ролика в браузере пользователя или в программе Flash Player данная область не будет видна.
В нерабочей области можно, например, разместить небольшой клип с написанным для него кодом ActionScript. В отличие от кода в главной временной шкале, выполняющегося один раз, ActionScript-код клипа будет выполняться в каждом кадре.
Вероятность того, что пользователь увидит нерабочую область, все же существует. Если изменение масштаба ролика выполняется во Flash Player, окне предварительного просмотра Flash или в браузере, ролик старается сохранить свои пропорции, и некоторые области, расположенные выше или ниже рабочего поля, могут быть видны. Этого не произойдет, если поместить ролик в Web-страницу, используя правильные тэги (об этом рассказывается ниже).
Таким образом, поместив небольшой клип за пределы рабочей области, где он не будет виден, вы можете создать код, выполняющий повторяв юшиеся действия, например анимацию или движение, контролируемое пользователем.Окно Properies позволяет изменять
Рисунок 1.13 Панель Properties показывает параметры динамического текстового окна
В выпалаюшем меню имеется возможность выбрать расположение текста в одну строку (Single Line), в несколько строк (Multiline) и в несколько строк без возможности переноса (Multiline No Wrap). Кроме того, справа имеются три небольшие кнопки с опциями Selectable (Выделяемый), Render Text as HTML (Читать HTML-тэги) и Show Border Around (Показывать рамку вокруг текста). Опция HTML дает возможность использовать в тексте некоторые базовые тэги языка HTML, наподобие . Опция Border помешает текст в рамку и делает окно непрозрачным. Опция Selectable позволяет пользователю выделять блоки текста подобно тому, как это делается в текстовом редакторе.
Наиболее важной для программиста на ActionScript опцией данной панели является текстовое окно Var (Переменная), в которое вы можете ввести имя переменной. При воспроизведении ролика переменная и окно динамического текста будут связаны. При изменении значения одного из них соответственно будет меняться и значение второго. Это позволяет изменить переменную в программе и одновременно видеть эти изменения на экране.
В нижней части панели находится ряд кнопок, а также поле, где вы можете указать, начертания каких символов должны сохраняться в конечном. Flash-файле для дальнейшего использования в текстовом окне. Например, вы можете задать, чтобы вместо полного набора символов Hash сохранял вместе с роликом только цифры. С другой стороны, вы можете не сохранять вообше никаких наборов символов, тогда в текстовом окне будут использоваться только шрифты, установленные на компьютере пользователя.
Flash - достаточно умная программа и никогда не включает в swf-файл более одной копии каждого набора символов. Поэтому, если вы создали две области динамического текста, использующие все символы шрифта Arial, этот шрифт сохраняется только один раз и будет совместно использоваться обеими областями.
Организация ролика
Организация ролика
Процесс организации ролика более важен для программиста на Action Script, чем для Flash-аниматоров. Символам в библиотеке должны быть присвоены содержательные имена. При необходимости их надо систематизировать по каталогам. Слои на главной временной шкале должны обеспечивать легкий доступ к различным элементам рабочего поля.
Палитра Library показывает из
Рисунок 1.5 Палитра Library показывает, из каких элементов состоит ваш ролик
Палитра Library показывает список различных элементов, составляющих ваш ролик. На первый взгляд элементы списка кажутся выбранными наугад. Например, графические образы, которые были нарисованы непосредственно на экране, не отображаются в палитре, даже если они были сгруппированы. Если же вы сохраните их как графический символ, они будут показаны. Логика здесь такая: библиотека хранит многократно используемые объекты. Любой символ, будь то клип, графический символ или кнопка, могут использоваться в одном или нескольких местах вашего ролика.Однако набор линий и заливок, нарисованных непосредственно на рабочем поле, может применяться только в кадре или наборе кадров на временной шкале. Включение эталона в библиотеку не означает, что он будет экспортирован вместе с роликом. Например, вы импортируете растровое изображение или звуковой файл, но не помешаете его на рабочее поле. Или же создаете клип и не используете его. В таком случае умная программа не включает этот объект в конечный, сжатый swf-файл, что способствует уменьшению размера файла и его быстрой загрузке. Что делать, если элемент библиотеки не выложен на рабочее поле, а ваша программа его использует? Flash не будет отслеживать это и не включит данный элемент в конечный файл ролика. Для того чтобы заставить Flash включить в конечный файл кажущийся ему ненужным элемент библиотеки, установите связь с этим элементом в диалоговом окне Symbol Linkage Properties (Свойства связи символа) - см. Рисунок 1.6. Диалоговое окно можно вызвать из всплывающего меню Options (Параметры), расположенного в правом верхнем углу палитры Library (Рисунок 1.5).
Панель Properties позволяет присваивать имена клипам
Рисунок 1.4 Панель Properties позволяет присваивать имена клипам
Панель Properties (Свойства) позволяет присваивать имена (метки) кадрам. Как ни странно, вы можете сделать это в любом слое. Например, вы можете присвоить имя первому кадру, выделив его в верхнем слое, затем присвоить имя второму кадру, выделив его в следующем слое. Неправда ли, сбивает с толку? Я советую помечать все кадры в одном слое (обычно так и делают, называя этот слой, например, "labels"). Наиболее важным окном после рабочего поля как для программиста на ActionScript, так и для художника-графика, несомненно, является палитра Library (Библиотека). Панель на Рисунок 1.5 содержит растровое изображение, кнопку, папку, графический символ и клип.
Панель Properties служит для настройки
Рисунок 1.17 Панель Properties служит для настройки звуковых файлов, находящихся на временной шкале
Вместо этого рассмотрим, как с помощью команд ActionScript запустить звуковой файл, а также настроить время и способ его воспроизведения.
В случае, если на временной шкале звук отсутствует, Flash не включит его в конечный файл, и попытка ActionScript запустить его не удастся.
Чтобы обеспечить включение звука в конечный файл, необходимо установить свойства связи (см. Рисунок 1.6). Для ссылок на звуковой файл в ActionScript следует использовать имя, назначенное данному файлу в диалоговом окне Linkage Properties.
Панель Scene позволяет создавать
Рисунок 1.21 Панель Scene позволяет создавать и по-разному организовывать сцены вашего ролика
Панель Transform позволяет изменять
Рисунок 1.3 Панель Transform позволяет изменять масштаб выделенного объекта и поворачивать его
Еще одна панель, которую постоянно используют программисты на ActionScript, - Properties (Свойства). Эта панель (Рисунок 1.4) отображает информацию о выбранном в данный момент объекте: графическом символе, кнопке или клипе. С помощью этой панели вы можете менять различные свойства выбранных объектов. Например, ставить метки выделенным кадрам и присваивать имена клипам. Для того чтобы можно было программно обращаться к клипам, им необходимо присвоить имена.
Панели
Панели
Хотя главное окно программы Flash и является основным элементом, оно содержит очень мало подробной информации о вашем ролике и его частях. Детали отображаются в небольших окнах панелей управления. При запуске они появляются в правой и нижней частях главного окна, однако, затем их можно перемешать куда угодно.
Эти панели могут быть приведены к любому виду. Панели находятся каждая в своем окне, но можно отобразить сразу несколько из них в одном окне в виде закладок. Например, на Рисунок 1.2 показано окно, включающее панели Color Mixer (Миксер цветов), Color Swatches (Образцы цвета) и Components (Компоненты). Только панель Color Swatches доступна к использованию.
Подготовка ролика к публикации
Подготовка ролика к публикации
Независимо от того, является ли ваш ролик простой анимацией или сложным приложением, после окончания работы над ним его необходимо экспортировать в swf-файл. Это можно сделать при помощи команды File Publish (Файл -> Опубликовать).
Перед этим, однако, надо проверить определенные элементы ролика и, воспользовавшись командой File -> Publish Settings (Файл -> Настройки публикации), настроить его соответствующим образом.
Пример кнопки Исходный файл Samplebuttons
Пример кнопки
Исходный файл: Samplebuttons.fla
Давайте рассмотрим пример кнопки. На Рисунок 1.11 показана кнопка прямоугольной формы с надписью. Она была нарисована непосредственно на рабочем поле при помощи инструмента Rectangle (Прямоугольник) и затем преобразована в кнопку при помоши команды Insert -> Convert to Symbol. Ролик с кнопкой находится на Web-сайте в файле Samplebuttons.fla в папке данной главы.
Процесс создания данной кнопки начался с выбора инструмента Rectangle. Два раза щелкнув по инструменту, вы получаете возможность задать значение радиуса для скругленного угла прямоугольника. В нашем примере был использовано значение 2. Для линий был задан черный цвет, для заливки - голубой.
После того как прямоугольник был нарисован, я выбрал инструмент Text (Текст) и напечатал 'PRESS ME!' (НАЖМИ МЕНЯ!). После центровки текста получилось изображение, показанное на Рисунок 1.11.
После использования команды Преобразовать в символ, я получил кнопку и присвоил ей имя "My Button" (Моя кнопка). Новый символ был включен в библиотеку и остался на рабочем поле на прежнем месте.
Два раза щелкнув кнопкой мыши по символу в библиотеке, вы можете отдельно редактировать кнопку на рабочем поле. В верхней части главного окна Flash появятся четыре предустановленных кадра, при этом все кадры, кроме кадра Up, будут пустыми. Кнопка будет работать отлично, однако станет использовать одно и то же изображение для всех своих состояний. Форма области в кадре Hit будет определяться самим изображением кнопки.
Чтобы внести разнообразие, необходимо создать ключевой кадр для каждого из четырех имеющихся кадров. Для этого выберите кадр на временной шкале и нажмите клавишу F6 (вставка ключевого кадра). Затем вернитесь к кадрам Over и Down и внесите в них какие-нибудь изменения. В нашем примере была изменена заливка каждого из кадров. Для кадра Hit текст не обязателен, значение имеет лишь форма изображения.
Публикация
Публикация
Перед тем как применить команду File -> Publish (Файл -> Публиковать), вызовите диалоговое окно Publish Settings (Рисунок 1.22). Это большое диалоговое окно состоит из трех вкладок. Вкладка Formats (Форматы) позволяет вам выбрать формат для экспорта. Однако форматы GIF, JPEG и PNG представляют собой неподвижные изображения, а форматы QuickTime Movie и RealPlayer не поддерживают ActionScript программы Flash 5 или MX.
Поэтому единственной реальной альтернативой остается формат SWF и Projectors. Вы также можете выбрать экспорт HTML-страницы, которая будет использоваться вместе с swf-файлом.
Пункты меню
Пункты меню
Выбор пунктов меню столь же богат, как и выбор панелей. Однако регулярно используется лишь небольшая их часть. Программисту на ActionScript,помимо расположения самих пунктов меню, необходимо знать сочетания "горячих" клавиш для выполнения наиболее часто используемых команд.
Растровые изображения
Растровые изображения
ля импорта растровых изображений во Flash используйте команду File -> Import (Файл -> Импорт). Вы можете импортировать различные графические форматы, включая JPEG, GIF, PICT и BMP. Файл будет добавлен в библиотеку вашего ролика. После импорта изображения в библиотеку с ним мало что можно сделать при помоши ActionScript. Тем не менее вы можете поместить его в клип. Над изображением, импортированным во Flash, можно произвести не так уж много операций. На Рисунок 1.14 показано диалоговое окно Bitmap Properties (Свойства растрового изображения), вызываемое двойным щелчком мыши по изображению в библиотеке.
Размещение Flashролика в сети
Размещение Flash-ролика в сети
Для того чтобы поместить ролик в сети, его необходимо вставить в HTML-страницу. Конечно, вы можете поместить ролик как swf-файл, однако в этом случае он увеличится до размера окна браузера, что вам не нужно.
При помощи двух тэгов вы можете поместить swf-файл на Web-страницу и для Internet Explorer, и для Netscape, Более того, множество настроек позволяют задавать нужный внешний вид ролика. Большинство из них автоматически применяются программой при публикации и могут быть установлены в диалоговом окне Publish Settings, показанном на Рисунок 1.24. Тем не менее вам не помешает знать, как выглядят эти элементы. Не знаю, как вы, а я бы скорее предпочел создать свой собственный HTML, чем использовать шаблон Flash.
Приведенный ниже элемент содержит Flash-ролик размером 550x400 под названием Sample.swf. Воспроизведение ролика начинается сразу, уровень качества - высокий, используются шрифты устройства, фоновый цвет - белый.
<Object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebaso="http://download.macromedia.com/pub/Shockwave/
cabs/flash/swflash.cab#version=5,0,0,0"
WIDTH=550 HEIGHT=400>
<PARAM NAME=movie VALUE=" sample . swf ">
<PARAM NAME=play VALUE=true>
<PARAM NAME=quality VALUE=high>
<PARAM NAME=devicefont VALUE = true>
<PARAM NAME=bgcolor VALUE=#FFFFFF>
Netscape не понимает тэг OBJECT, так как он используется для описания управляющих элементов ActiveX - технологии, предназначенной для встраивания мультимедийных элементов в Internet Explorer. Для Netscape необходим элемент EMBED, который дает команду браузеру использовать плагин Flash для запуска Flash-ролика.
<EMBED src="sample.swf"
play=false
quality=high
devicefont=true
bgcolor=#FFFFFF
WIDTH=550 HEIGHT=400
TYPE="application/x-shockwave-flash"
PLUGINSPAGE=nhttp://www.macromedia.com/go/getflashplayer">
</EMBED>
В отличие от элемента OBJECT элемент EMBED не содержит номер версии Flash, необходимой для воспроизведения вашего ролика. Это значит, что Netscape с Flash 5 попытается воспроизвести ваш ролик, созданный во Flash MX, даже если не сможет понять команды ActionScript. В результате ролик не будет воспроизведен должным образом. Для того чтобы предупредить пользователей, вы можете поместить на страницу предупреждение "Для воспроизведения н еобходим Flash 6 Player". Информацию о новейших технологиях JavaScript для определения версии Flash, установленной у пользователя, вы найдете на сайтах, приведенных в главе "Ресурсы сети Internet для Flash-разработчика".
Однако недостаточно просто включить в код элементы OBJECT И EMBED. Все намного сложнее. Дело в том, что Internet Explorer может также использовать элемент EMBED для отображения мультимедийных элементов. Значит, существует вероятность того, что Internet Explorer использует оба тэга и Flash-ролик будет воспроизведен дважды на одной и той же странице.К счастью, существует простой способ не допустить этого. Если поместить элемент EMBED внутрь элемента OBJECT, Internet Explorer проигнорирует его. Таким образом, окончательная версия кода будет выглядеть следующим образом:
<0BJECT classid="clsid:D27CDB6E-AE6D-llcf-96B8-444553540000"
codebase="hctp: //download.inacromedia.com/pub/shockwave/cabs/
flash/swflash.cab#version=6,0,0,0"
WIDTH=550 HEIGHT=400>
<PARAM NAME=movie VALUE="sample.swf">
<PARAM NAME=play VALUE=true>
<PARAM NAME=quality VALUE=high>
<PARAM NAME=devicefont VALUE=crue>
<PARAM NAME=bgcolor VALUE=#FFFFFF>
<EMBED src="sample.swf"
play=false
quality=high
devicefont=true
bgcolor=#FFFFFF
WIDTH=550 HEIGHT=400
TYPE="application/x-Shockwave-flash"
PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">
</EMBED>
</OBJECT>
Теперь, узнав, как связаны Flash и ActionScript, вы готовы стать программистом на ActionScript. В следующей главе мы начнем изучение Action-Script.
Развернутый каталог в палитре Library
Рисунок 1.18 Развернутый каталог в палитре Library
На Рисунок 1.18 показана полностью развернутая палитра Library. Если вы хотите упорядочить библиотеку по дате последнего изменения (вариант Date Modified), просто щелкните мышью по заголовку столбца. Небольшая кнопка с изображением в форме пирамиды, расположенная справа от заголовков столбцов, позволяет упорядочить содержимое по возрастанию или по убыванию.
Благодаря такой организации вы можете узнать, какие элементы библиотеки используются и как часто. Здесь, конечно, не учитывается их использование в программах ActionScript.
Редактируемый текст Третьей опцией
Редактируемый текст Третьей опцией работы с текстом является Input Text (Редактируемый текст). Внешний вид окна Properties при этом почти не отличается от изображенного на Рисунок 1.13.
Для опции Input Text наряду со значениями Single Line, Multiline и Multiline No Wrap существует четвертое значение - Password (Пароль). Как вы уже, наверное, догадались, вместо символов в данном текстовом окне будут отображаться точки.
Также добавлена настройка Max Chars (Максимальное количество символов), задающая ограничение на количество вводимых символов. Установка значения 0 разрешает ввод неограниченного количества символов.
Во Flash есть замечательное свойство, связанное с однострочным вводом текста. Когда вводимый пользователем текст выходит за границу текстового окна, текст автоматически прокручивается вправо. Вернуть курсор назад можно при помощи стрелки «влево». Эта функция позволяет вводить значительные блоки текста, не создавая большие области для их ввода.
Сцены
Сцены
Сцены являются более высоким уровнем организации роликов во Flash. Каждый Flash-ролик состоит из одной или нескольких сцен. В большинстве примеров, рассматриваемых в данной книге, используется лишь одна сцена, поэтому вы можете просто забыть об их существовании.
Тем не менее, сцены могут служить прекрасным организационным инструментом. Они представляют собой последовательное сочетание нескольких роликов, образующих одно целое. Каждая сцена имеет свою временную шкалу. На Рисунок 1.21 показана панель Scene (Сцена), которая включает три сцены. Они воспроизволятся точно в указанном порядке, хотя ActionScript может игнорировать его и воспроизводить сцены в любой последовательности и даже переходить с кадра одной сцены на кадр другой сцены.
Слои
Слои
Хотя в большинстве случаев программы, написанные на ActionScript, не манипулируют слоями, слои являются ценным инструментом для организации ролика. Вы можете и должны использовать разные слои для меток, кода ActionScript и графических объектов. На Рисунок 1.19 показан пример правильной организации ролика при помощи слоев.
Создание кнопок
Создание кнопок
Во Flash существует три типа символов: графические объекты, кнопки и клипы. В отличие от графических объектов кнопки и клипы могут иметь закрепленные за ними сценарии ActionScript. Программисту на Action-Script приходится создавать и использовать множество кнопок и клипов, поэтому давайте рассмотрим, начиная с кнопки, как это сделать. |
Создание текста
Создание текста
Во Flash имеется три различных типа текстовых окон. Первое, статический текст, - если рассматривать его с точки зрения программиста на АсtionScript, - это не более чем графические объекты в форме текста. Другие два, динамический и редактируемый тексты, могут быть изменены при помощи ActionScript.
Список заключительных проверок
Список заключительных проверок
Вот список элементов, которые необходимо проверить перед публикацией ролика: • имена копий клипов - имена всех клипов, помещенных на рабочее поле, должны совпадать с именами в коде;
• свойства связи - в случае, если клип не используется на рабочем поле, но используется кодом, необходимо настроить его свойства связи в библиотеке таким образом, чтобы он экспортировался с роликом. Имя связи должно соответствовать имени, которое используется в вашем коде. Все вышесказанное относится и к звуковым файлам, содержащимся в библиотеке;
• имя динамического текста - имя динамического текста, используемого на рабочем поле и связанного с переменной ActionScript, должно соответствовать вашему коду;
• шрифты - текстовое окно динамического или редактируемого тек ста должно содержать все символы, которые могут вам понадобиться. В противном случае при воспроизведении на машине, где установлены другие шрифты, текст будет искажен;
• команда stop - команду ActionScript stopo необходимо поместить во все кадры, с которыми может взаимодействовать пользователь. Кадр, не содержащий команды stop О, является не более чем отдельным кадром анимации. Это также относится к клипам вашего ролика. Если они контролируются ActionScript, их первый кадр должен содержать команду stop О. Более подробную информацию об этой команде вы найдете в главе 2 "Введение в ActionScript".
Свойства текста При выделении
Свойства текста При выделении текстового поля окно Properties будет отображать свойства текста (Рисунок 1.12). Наиболее важные свойства находятся в верхнем левом углу панели Properties. На Рисунок 1.12. выбран тип Static Text; вы можете изменить это свойство на Dynamic Text или Input Text.
В диалоговом окне Document Properties
Рисунок 1.10 В диалоговом окне Document Properties задаются наиболее важные свойства ролика
В диалоговом окне Layer Properties можно задать тип слоя
Рисунок 1.20 В диалоговом окне Layer Properties можно задать тип слоя
Применяйте слои для организации не только главной временной шкалы, но и клипов, графических изображений и кнопок.
В диалоговом окне Symbol Properties
Рисунок 1.6 В диалоговом окне Symbol Properties можно указать, что объект должен быть включен в библиотеку для последующего экспорта в Action Script.
В диалоговом окне Trace Bitmap
Рисунок 1.15 В диалоговом окне Trace Bitmap осуществляется преобразование растрового изображения в векторное
Функция Trace Bitmap заменяет растровое изображение набором закрашенных векторных областей. В большинстве случаев это приводит к ухудшению качества рисунка по сравнению с исходным, но, по крайней мере, теперь его можно масштабировать аналогично векторному изображению.
Многие художники преобразуют растровое изображение в векторное на одном из этапов его создания. Например, можно нарисовать что-нибудь на бумаге, отсканировать изображение в файл, а затем трассировать полученный растр в векторное изображение. Многие художники используют для преобразования не Flash, а программы типа Adobe Streamline. Затем изображение импортируется во Flash. После этого художник должен довольно много потрудиться, чтобы изображение выглядело так, как было задумано.
Вкладка Flash диалогового окна
Рисунок 1.23 Вкладка Flash диалогового окна Publish Settings позволяет изменять некоторые важные настройки swf-файла
Опция Omit Trace Actions (Игнорировать трассировку) предназначена для того, чтобы отключать сообщения, выводимые командой trace в окно Output. Вывод сообщений происходит только при проигрывании фильма в редакторе, так что для просмотра в браузере или посредством Flash-плеера эта опция не существенна.
Опция Protect from Import (Зашита от импорта) создает защищенный от импорта фильм. При попытке импортировать такой ролик будет затребован пароль.
Опция Debugging Permitted (Разрешить устранение неполадок) позволяет вам устранять неполадки в ролике во время его воспроизведения. Более подробно об устранении неполадок рассказано в главе 4 "Процесс создания игры".
Следующий ряд настроек дает возможность установить значение сжатия по умолчанию для изображений и звуков. При установке флажка Override Sound Settings (Заменять настройки звука) все звуки будут сжаты с параметрами по умолчанию, независимо от ранее установленной степени сжатия.
Опция Version (Версия) в нижней части окна, похоже, может творить чудеса. Она предлагает сохранить ролик во Flash 1, 2, 3, 4 или 5. Получается, что создаваемые вами ролики со сложным сценарием ActionScript будут работать во Flash 3? Нет. Если ваш ролик содержит хоть какой-нибудь сценарий на ActionScript, скорее всего, его необходимо экспортировать как ролик Flash 5 или MX. Если же вы используете новые команды версии MX, то ничего не остается, кроме как импортировать фильм в этой версии.
Последняя вкладка диалогового окна Publish Settings, изображенная на Рисунок 1.24. позволяет задать внешний вид HTML-файла, экспортируемого с swf-файлом.
Вкладка HTML диалогового окна
Рисунок 1.24 Вкладка HTML диалогового окна Publish Settings позволяет задавать настройки HTML-файла, экспортируемого с swf-файлом
На самом деле опции, показанные на Рисунок 1.24, не контролируют swf-файл, а только задают тэги HTML-страницы. Эти тэги мы рассмотрим в следующем разделе.
Учтите, что настройки Flash Alignment, теоретически позволяющие определять положение swf-файла на странице браузера, реально не работают ни во Flash MX, ни в более ранних версиях.
Временная шкала кнопки Кнопку
Временная шкала кнопки Кнопку можно создать следующими способами: выбрать команду Insert -> New Symbol (Вставить -> Новый символ) или выделить ряд объектов на рабочем поле и выбрать команду Insert -> Convert to Symbol (Вставить -> Преобразовать в символ). Вы также можете выбрать команду New Symbol из всплывающего меню палитры Library.
Создав кнопку, вы можете редактировать прямо на рабочем поле, выбрав ее двойным щелчком мыши, или отдельно, в главном окне Flash, два раза щелкнув по ее имени в окне палитры Library.
В обоих случаях в верхней части главного окна Rash появится специальная временная шкала, которая содержит четыре изображения, необходимые для описания кнопки: Up, Down, Over и Hit.
Вы можете добавлять в кнопку сколько угодно слоев. При отображении кнопки будут использоваться только первые четыре кадра, показанные на Рисунок 1.11.
Временная шкала расположенная
• Over - вид, который принимает кнопка при помещении над ней кур сора МЫШИ;
• Down - вид кнопки, когда пользователь уже нажал, но еще не отпустил ее;
• Hit - определяет область, реагирующую на курсор.
Вначале лучше сосредоточить свое внимание на создании кадра Up. Затем создать варианты кадров Over и Down. В кадре Over кнопка должна каким-то образом выделиться, в то время как в кадре Down ее следует изобразить нажатой или выделить каким-то другим способом. В следующем разделе вы увидите несколько примеров дизайна кнопки.
Вы можете создать кнопку, включающую только кадр Up. Если остальные три кадра останутся пустыми и будет отсутствовать даже ключевой кадр, кадр Up будет применен для всех четырех состояний кнопки.
Отличительной чертой кадра Hit является то, что он никогда не виден. Также не важно, какого цвета расположенный в кадре Hit объект; важна лишь форма. Кадр Hit вместе с кадрами Over и Down вообще можно не создавать. В этом случае все эти кадры заменит кадр Up.Кадр Hit можно представить как невидимую фигуру под кнопкой, определяющую область нажатия кнопки мышью. Эта область может быть больше или меньше видимого графического изображения кнопки.
Вы можете создать невидимую кнопку, оставив кадры Up, Over и Down пустыми, а кадр Hit заполненным. При этом в главном окне Flash кнопка будет выглядеть как светло-голубая фигура. При воcпроизведении ролика ее не будет видно вообще. Несмотря на это, на кнопку можно нажимать, а ее сценарий будет выполняться. Пользователь поймет, что это кнопка, так как при наведении на эту область курсор примет специальный вид. Такой способ применяется для создания различных эффектов.
Звуки
Звуки
Импорт звуковых файлов во Flash осуществляется способом, аналогичным импорту растровых изображений. Flash импортирует стандартные звуковые форматы: AIFF, МРЗ, Sun AU и Wave.
После того как файл импортирован во Flash, двойным щелчком мыши по его имени в библиотеке можно открыть диалоговое окно Sound Properties (Свойства звука) - см. Рисунок 1.16.
Данный ролик состоит из двух слоев
Рисунок 2.8 Данный ролик состоит из двух слоев. Первый слой разделен на четыре части, которые содержатся в четырех кадрах, второй включает один ключевой кадр.
В первом кадре данного ролика будет использоваться та же самая команда stop(), которая остановит воспроизведение ролика сразу после его начала. В нижней части экрана размешены четыре кнопки. Каждой из них будет приписан отдельный сценарий. Первый сценарий изображен на Рисунок 2.8. Первая кнопка выбрана,и в окне ActionScript отображается ее сценарий:
on (press){
gotoAndStop("part1");
}
В нашем примере используется команда gotoAndStop - разновидность команды gotoAndPlay. В отличие от первой команды, задающей переход к новому кадру и остановку воспроизведения ролика, вторая команда переходит к другому кадру и запускает его воспроизведение.
Помимо этого сценария, три подобных приписаны трем другим кнопкам. Единственным их отличием является то, что они задают переход к кадрам "part 2", "part 3" и "part 4".
Исходный файл: Navigation.fla
При запуске данного файла начинается воспроизведение ролика, остановленного в первом кадре. Теперь пользователь может щелкнуть по одной из четырех кнопок для перехода к одному из четырех оставшихся кадров. Попробуйте запустить ролик.Это ваш первый настоящий Flash-ролик. Вместо простого текста "PART 1" - "PART 4", показываемого в каждом ключевом кадре, вы можете поместить презентацию наподобие той, которая создается в PowerPoint или других программах. Здесь демонстрируются возможности Flash, выходящие за рамки простой анимации.
Данный ролик состоит из последовательности
Рисунок 2.7 Данный ролик состоит из последовательности нескольких кадров, однако команда stор() останавливает его воспроизведение на первом кадре
Панель Properties может использоваться
Рисунок 2.11 Панель Properties может использоваться для связи текстового окна с переменной ActionScript
Переменная может также быть связана с редактируемым текстом. В данном случае при изменении переменной соответственно изменяется содержимое текстового окна и наоборот.
В следующем уроке мы рассмотрим функции, а также пример динамического текстового окна.
По сценарию данный клип перемещается вcлед за курсором
Рисунок 2.10 По сценарию данный клип перемещается вcлед за курсором
Теперь, когда вы умеете управлять воспроизведением ролика и перемещением клипа, давайте рассмотрим основные элементы программирования в ActionScript.
Ролик содержит четыре ключевых
Рисунок 2.5 Ролик содержит четыре ключевых кадра и сценарий, помешенный во второй ключевой кадр. Выбран второй ключевой кадр, и в окне Actions отображается соответствующий сценарий
Это единственный код ActionScript в ролике. При воспроизведении ролик начинается с ключевого кадра "part 1" и на экране появится текст "PART 1". Затем ролик будет двигаться по временной шкале до ключевого кадра "part2", где находится код ActionScript. По команде Flash перейдет к ключевому кадру "part4'. При этом текст "PART 2" не успеет появиться на экране1. Ролик будет находиться в кадре "part4", на экране окажется текст "PART 4".
Ролик продолжит движение по временной шкале до конца. Затем возвратится к первому кадру и опять покажет текст "PART 1". Этот цикл повторяется бесконечно.
При помощи ActionScript вы заставили Flash отступить от последовательного воспроизведения анимации. Ролик должен был последовательно проигрываться с кадра "part 1" к "part2", затем к "part3" и к "part4" однако по вашему сценарию он пропустил сразу два кадра - "part 2" и "part З'. С ActionScript вы получаете возможность контролировать порядок воспроизведения кадров Flash-ролика.
Точнее говоря, если в кадре имеется сценарий, программа сначала исполняет сценарий, а потом прорисовывает кадр.
Давайте рассмотрим другой пример. По той же схеме создайте небольшие ключевые кадры в конце каждой части ролика. Мы будем создавать сценарии, воспроизводимые не в начале каждой части, а в ее конце.Исходный файл: Nonlinear.fla
На Рисунок 2.6 показано устройство ролика, включающего четыре маркированных ключевых кадра, как и в предыдущем примере, а также четыре ключевых кадра в конце каждой части ролика. В этих немаркированных кадрах содержится код. Рисунок 2.6 Ролик состоит из четырех частей. Каждая часть начинается с маркированного ключевого кадра и заканчивается немаркированным ключевым кадром, содержащим небольшой сценарийКлючевой кадр, следующий за "part1", содержит код:
gotoAndPlay ("part3");
Ключевой кадр, следующий за "part2", содержит код:gotoAndPlay ("part4");
Ключевой кадр, следующий за "рагtЗ", содержит код:gotoAndPlay ("part2");
Ключевой кадр, следующий за "part4"', содержит код:gotoAndPlay ("part1");
При запуске ролика из файла Nonlinear.fla на экране появляется надпись "PART 1". Затем ActionScript задает переход ролика не к кадру "part2", а к "part3". Таким образом, ролик переходит от надписи "PART 1"к "PART 3". Затем, после кадра "'part3", ролик возвращается к "part2", а после него к "part4". Весь ролик воспроизводится в таком порядке - "PART 1", "PART 3", "PART 2" и "PART 4". Эта последовательность затем повторяется.При помощи ActionScript вы полностью заменили обычную анимационную последовательность на свою собственную.
Приведенные выше примеры дают предсказуемый результат, однако у вас есть возможность использовать команду gotoAndPlay по-другому, например в сочетании с кнопками, чтобы предоставить пользователю контроль над порядком воспроизведения ролика.
Ролик содержит клип и назначенный ему сценарий
Рисунок 2.9 Ролик содержит клип и назначенный ему сценарий
Сценарий, назначенный клипу, использует программу-обработчик подобно сценарию кнопки в предыдущем занятии. Чтобы задать программу обработки, вместо командной строки on введите строку onCIipEvent, которая определяет события для клипов ролика. В данном случае событие будет следующим: enterFrame. Это автоматическое событие, происходящее при каждом обращении к данному кадру. Если ролик должен воспроизводиться со скоростью 12 кадр/с, оно должно посылаться в программу обработки 12 раз в секунду.
Если ролик остановлен командой stop () или просто состоит из одного кадра, то кадр "зацикливается", то есть перерисовывается с той скоростью, которая задана ролику
Подобно программе on (press) в сценарии кнопки, команды реакции на событие onClipEvent (enterFrame) заключаются в фигурные скобки. В данной программе будет только одна команда, перемещающая клип на один пиксель влево. Давайте взглянем на сценарий и проанализируем, какие действия в нем выполняются.
OnClipEvent(enterFrame) {
this._ x -- ;
}
Команда this обозначает обращение команды к объекту, который ее содержит. В данном случае this используется для обращения к клипу, которому назначен этот сценарий.
За командой this следует точка, обозначающая обращение к свойству объекта. В нашем примере _х относится к горизонтальному положению клипа.Итак, this._x определяет горизонтальное положение клипа. Символ -- является декрементом (командой уменьшения значения). Он уменьшает значение стоящей перед ней величины на 1 (пункт). Таким образом, команда this._x -- берет значение горизонтального положение клипа и вычитает 1, благодаря чему клип перемещается влево.
Если клип необходимо переместить вправо, используется команда ++, которая называется инкрементом (это команда увеличения значения). Если вы хотите переместить клип вправо или влево сразу на несколько пикселов, используйте соответственно += или -=:
OnClipEvent(enterFrame) {
this._x -= 5;
}
Ролик состоит из пяти кадров и
Рисунок 2.12 Ролик состоит из пяти кадров и пяти кнопок для перехода к каждому кадру. Текстовое окно отображает имя текущей метки кадра
Преимущество использования одной функции для контроля всей навигации заключается не только в меньшем количестве нажатий на клавиши при программировании. Предположим, что к моменту завершения программы вы 100 раз обратились к функции gotoFrame. Затем вы решили удалить окно textFrameLabel или немного изменить его. Если бы вы не использовали функцию, то вам пришлось бы удалять или изменять код в 100 местах. Но так как все ваши навигационные кнопки используют функцию gotoFrame, то для изменения их поведения достаточно изменить только ее.
Назад |
Содержание |
Вперед |
Сценарии для кнопок
Сценарии для кнопок
Вы также можете задавать сценарии для кнопок. Прежде всего вам следует создать кнопку как элемент библиотеки. Затем, если необходимо, перетащите кнопку на рабочее поле. Выделите ее и нажмите F9 для того, чтобы вызвать диалоговое окно Actions. В случае, если диалоговое окно уже на экране, шенарий кнопки будет отображен при ее выделении.
Теперь окно Actions имеет заголовок Actions - Button (Действия - Кнопка). Любой сценарий, введенный здесь, будет выполнен кнопкой. Однако вы не можете просто ввести набор команд. Вы должны запрограммировать реакцию кнопки на выполнение различных событий, например на ее нажатие, помещение над ней курсора и т.д. Код, обрабатывающий подобные события, называется программой-обработчиком. Сценарий кнопки представляет собой набор из одного или нескольких обработчиков.
Сценарии кадра
Сценарии кадра
Вы можете помешать сценарии в ключевые кадры главной временной шкалы вашего ролика. Для этого выделите ключевой кадр на главной временной шкале и нажмите F9. На экране появится диалоговое окно Actions - Frame (Действия - Кадр).
Сценарии кадра могут содержать два типа элементов. Первый - это набор команд, исполняемых при воспроизведении кадра ролика. Команды исполняются друг за другом, пока не будет достигнут конец сценария.
Вторым типом элемента, включаемого в кадровый сценарий, является функция. Функции - это элементы кода, которые могут быть многократно использованы командами в сценариях кадра, а также другими сценариями ролика.
Сценарии клипов
Сценарии клипов
Вы также можете назначить сценарий клипу. Для этого прежде всего создайте клип и сохраните его как элемент библиотеки. Затем поместите копию клипа на рабочее поле. Выделив копию клипа на рабочем поле, вызовите окно Actions, оно будет иметь заголовок Actions - Movie Clip (Действия - Клип).
Аналогично сценарию кнопки вы не можете просто ввести набор команд. Команды должны быть помешены в программы-обработчики, реагирующие на события клипов. Однако, в отличие от кнопок, клипы реагируют на совершенно другой набор событий. В следующих разделах мы рассмотрим примеры сценариев кадра, сценариев для кнопок, а также сценариев клипов.
Что такое код ActionScript и где его размещать
Урок 1. Что такое код ActionScript и где его размещать
ActionScript - это язык программирования, используемый программой Flash MX. По сравнению с главной временной шкалой, позволяющей создавать лишь линейную анимацию, ActionScript расширяет возможности программирования. При помощи ActionScript ваш ролик будет реагировать, например, на выбор, делаемый пользователем, или на другие события. ActionScript позволяет управлять элементами, которые видит пользователь, и вместо простой анимации показывать нелинейные презентации, интерактивные приложения или игры.
ActionScript, используемый Flash MX, был создан на основе двух источников. Первый - это набор макрокоманд, взятый из предыдущих версий Flash, в основном Flash 4, который содержал схожий, но очень простой язык программирования. Другим источником оказался JavaScript - язык, использующийся для создания небольших программ для HTML-страниц в Internet Explorer и Netscape. Новый язык стал популярен среди разработчиков Web-странии, которые являются основными пользователями Flash MX. Для того чтобы упростить изучение ActionScript, многие новые команды и синтаксис были приведены к виду, напоминающему JavaScript.
Программы ActionScript представляют собой списки инструкций, котoрые выполняются программой Flash и могут быть помешены в различные места Flash-ролика. Если вы знаете, куда поместить сценарий, это уже полдела. Давайте рассмотрим несколько мест, куда может быть помещен сценарий, а также в каких случаях он будет использован программой.Использование окна Actions
Урок 2. Использование окна Actions
Для программирования в ActionScript вы будете использовать окно Action-Script. При выборе команд, функций, операторов и других элементов синтаксиса в левой части окна элемент автоматически помешается в программу ActionScript в правой части окна.
Однострочная программа, содержащая команду gotoAndPlay, была помешена в программу в правой части окна двойным щелчком мыши по ее названию в списке слева. При выборе команды ее описание появляется под указателем мыши. В нашем примере был выбран gotoAndPlay(Frame);. Рис 2.1. В вашем распоряжении имеется список команд левой части окна, которые могут быть добавлены в программу двойным щелчком мыши.
Ваша первая программа на ActionScript
Урок 3. Ваша первая программа на ActionScript
Исходный файл: Helloworld.fla
Первая команда, которую вы изучите, - trace, которая предназначена для передачи информации в окно Flash Output. Окно Output представляет собой небольшое текстовое окно, выводимое на экран во время предварительного просмотра ролика во Flash. Обычно оно используется для вывода отладочных сообщений при разработке программы.Хотя в действительности данная команда не будет применяться в законченном Flash-ролике, приводимый здесь пример наглядно демонстрирует, что при помощи ActionScript вы можете заставить Flash выполнить указанные вами действия.
Для начала создайте новый Flash-ролик. При этом автоматически создается временная шкала с одним слоем и одним ключевым кадром. Выделив его и нажав F9, вызовите окно Actions. Затем при помощи всплывающего меню в правом верхнем углу окна переключите его в экспертный режим.
Теперь вы сможете поместить курсор в пустое программное поле в правой части окна Actions. Введите следующую строку:
trace ("Hello World!");
Точка с запятой ставится в конце каждой команды, как в примере с trace.
Команда trace - это встроенная функция Flash. В круглых скобках указываются параметры функции. Параметры - это входные данные, необходимые функциям для выполнения их задачи. Команда trace использует один параметр: строку, которая помешается в окно Output. Некоторые функции содержат один параметр и более, в то время как другие - ни одного.Ваш экран должен выглядеть примерно так, как изображено на Рисунок 2.3. Здесь вы видите один слой и один кадр на временной шкале. Окно Actions имеет заголовок Actions - Frame. Это обозначает, что содержащийся в окне код ActionScript относится к выбранному в данный момент ключевому кадру. Единственным элементом программного листинга является команда trace. Попробуйте самостоятельно создать данный ролик. Рисунок 2.2 Программа "Hello World" описывает первый и единственный кадр
Для того чтобы запустить программу, выберите команду Control -> Test Movie (Контроль -> Запустить пробное воспроизведение ролика). В течение секунды Flash создаст swf-файл и откроет его в окне предварительного просмотра. Окно останется пустым, так как в ролике нет никакой графики. Затем будет открыто окно Output со словами "Hello World!" (Рисунок 2.4). Это был важный шаг в изучении ActionScript. Мы дали Flash команду. В ответ Flash показал, что он понимает ее и слушается вас. Рисунок 2.3 В окне Output содержится результат выполнения команды trace
Программа "Hello World" появилась вместе с первыми языками программирования и стала традиционной. Это самая элементарная программа, которая обычно приводится как первый пример при обучении любому языку программирования, будь то ассемблер громадной ЭВМ, Basic, Pascal, С, Java или ActionScript. Только что вы прошли по следам миллионов программистов, начинающих изучать свое ремесло.
Контроль воспроизведения ролика
Урок 4. Контроль воспроизведения ролика
В уроке 2 "Использование окна Actions" мы бегло ознакомились с командой ActionScript gotoAndPlay. Эта команда приказывает Flash не принимать во внимание следующий кадр временной шкалы, а вместо этого перейти к совершенно другому кадру. При помощи команды gotoAndPlay вы можете контролировать воспроизведение Flash-ролика.
Создайте новый Flash-ролик. В этот раз он будет содержать несколько кадров. Создайте последовательность из четырех ключевых кадров и присвойте им имена начиная с "parti" и заканчивая "part4". Эти кадры представляют собой четыре части анимации. Кроме этого, в каждый из четырех кадров следует поместить статический текст, сообщающий пользователю о том, какую часть он в данный момент видит на экране.
В примере Gotoandplay.fla в каждый из четырех ключевых кадров был помешен статический текст "PART 1"- "PART 4". Текст "PART 1" появится в ключевом кадре "part1", текст "PART 2" - в ключевом кадре "part2" и т.д.
Ключевые кадры разделены несколькими кадрами, чтобы были видны названия меток на главной временной шкале. На Рисунок 2.5 показана главная временная шкала, содержащая четыре метки. Выбран второй ключевой кадр, поэтому на рабочем поле отображен текст "PART 2".
Выделив второй ключевой кадр, откройте окно Actions. Затем введите в окне следующую команду:
gotoAndPlay ("part4");
Обратите внимание, что после добавления в ключевой кадр кода Action-Script на временной шкале в соответствующем кадре появляется строчная буква "а".Создание кнопок для пользователя
Урок 5. Создание кнопок для пользователя
Исходный файл: Stop.fla
В предыдущем примере мы рассмотрели возможность управления роликом при помощи ActionScript без всякого вмешательства пользователя. Давайте добавим несколько кнопок, щелкнув по которым, пользователь сможет запустить воспроизведение той или иной части ролика.Предоставить пользователю больше контроля над воспроизведением ролика можно, прежде всего лишив этого контроля Flash. Flash начинает воспроизведение анимации с первого кадра, затем переходит к следующему и т.д. При помощи команды stop () вы можете остановить воспроизведение анимации на первом кадре.
На Рисунок 2.7 изображен ролик из файла Stop.fla. Он состоит из четырех кадров, каждому из которых соответствует метка на временной шкале и текст на рабочем поле. В первый кадр включен небольшой сценарий с командой stop(). Воспроизведение ролика начинается и заканчивается в кадре 1.
Теперь мы можем предоставить немного самостоятельности пользователю. Создайте простой эталон кнопки и поместите его на рабочий стол. Не следует выдумывать ничего необычного. В примере кнопка представляет собой маленький кружок.
Следующим вашим шагом будет создание нового слоя с одним кадром. Теперь в ролике будут участвовать одни и те же элементы. В данный слой мы поместили четыре различных копии одной и той же кнопки из библиотеки. Результат изображен на Рисунок 2.8.
Анимация при помощи ActionScript
Урок 6. Анимация при помощи ActionScript.
Исходный файл: Animate.fla
Теперь научимся перемешать предметы по рабочему полю при помощи ActionScript. Необходимо будет назначить клипу сценарий подобно тому, как мы сделали это для кнопки на нашем предыдущем занятии.Сначала создайте новый ролик. Затем поместите клип на рабочее поле. В примере Animate.fla на рабочее поле было помешено изображение лисы. Если хотите, нарисуйте что-нибудь более простое, например круг.
Когда употребляется термин "ролик" (movie), речь идет обо всем файле проекта. Термин "клип" употребляется для символа типа movie clip.
Вы можете поместить на рабочее поле экземпляр любого клипа, имеющегося в библиотеке. На данный момент наш фильм состоит из одного слоя и одного кадра, помешенного на рабочее поле (рис 2.9).Возможность управления клипами пользователем
Урок 7. Возможность управления клипами пользователем
Исходный файл: Usercontrol.fla
А теперь давайте сделаем так, чтобы клип двигался вслед за курсором.В предыдущем занятии мы узнали, как получить доступ к горизонтальной позиции клипа. При помоши параметра _у так же легко оперировать изменением координаты по вертикали. Теперь все, что нам нужно, - это привязать данные координаты к курсору.
Местоположение курсора определяется двумя параметрами: _xmouse и _ymouse, которые представляют собой координаты курсора по вертикали и горизонтали. Возникает следующий вопрос: чьи это параметры?
Это могут быть параметры любого клипа или самого ролика. Например, команда this ._xmouse определяет горизонтальное положение мыши по отношению к центру текущего клипа.
Нам нужно установить положение клипа по отношению к рабочему полю. Для того чтобы получить параметры рабочего поля, вместо идентификатора this следует использовать _root. Так, переменная _root ._xmouse определяет горизонтальное расположение мыши относительно левого верхнего угла рабочего поля.
Для того чтобы привязать координаты клипа к координатам курсора, необходимо изменить параметры _х и _у клипа в соответствии с параметрами _xmouse и _ymouse рабочего поля. Вот как будет выглядеть программа:
On.ClipEvent (enterFrame) {
this._x = _root._xmouse; this._y = _root._ymouse;
}
Использование переменных
Урок 8. Использование переменных
Переменные представляют собой поименованные области памяти, содержащие какую-либо информацию, такую как числа или последовательность символов. Например, вы можете создать переменную и поместить в нее число 5. Если вы прибавите к данной переменной число 2, она будет содержать число 7. Вот как эти действия будут выглядеть в ActionScript:
myVariable = 5;
myVariable += 2;
Очень важно присвоить переменной содержательное имя. Оно должно отражать выполняемую ей задачу. Например, если переменная предназначена для хранения имени пользователя, ее лучше назвать, допустим, "userName". Позднее, просматривая код, вы сразу поймете, для чего используется данная переменная.
В переменную можно также помещать строки. Строка - это последовательность символов наподобие “Hello World”. Так же как и число, строку можно сохранить в переменной при помощи символа =.myVariable = "Hello World";
Переменные во Flash не делятся на типы. Классификация переменных -это ограничение типа данных, хранимых в данной переменной, которое применяется в других языках программирования. Это означает, что если переменная предназначена для хранения чисел, она может использоваться только для хранения чисел, но не для хранения строк. В ActionScript нет такого ограничения, поэтому любая переменная может хранить любые объекты, например числа или строки.Помимо чисел и строк переменные могут содержать другие элементы, например указатель клипа. Вспомните, как в двух предыдущих уроках использовался элемент this для ссылки на текущий клип. Вы можете присвоить значение this переменной и с ее помощью ссылаться на клип.
Использование подобных элементов помогает управлять роликами, где содержится более чем один клип.
Вы будете часто сталкиваться с подобными ситуациями в играх, рассматриваемых в этой книге. На данный же момент вам достаточно знать, что переменные могут содержать числа, строки и ссылки на клипы.
Все переменные, использованные в этом уроке и в остальной книге, это глобальные переменные. Это значит, что после того как вы их задали, к ним можно обращаться из ролика или других клипов. Также с помощью ключевого слова "var" вы можете определить локальные переменные. Локальные переменные, определенные в какой-либо функции, недоступны к использованию в остальном коде. Как локальную переменную, например, удобно определять счетчик цикла, используемого внутри функции.
Выполнение операций
Урок 9. Выполнение операций
Вам наверняка понадобится изменять данные, хранящиеся в переменной. Мы уже рассматривали, как с помощью команд ++ или += изменять значение переменной. В вашем распоряжении также имеется большой набор других операций.
Давайте начнем с переменных, содержащих числа. Вы можете выполнять большое количество математических операций с числами при помощи символов +, -, / и *. Приведем несколько примеров.
Допустим, у вас есть две переменные: а и Ь. Вы можете сложить их и поместить результат в переменную с.
a = 7;
b = 5;
c = a + b;
c = a - b;
c = a * b;
c = a / b;
Вы также можете выполнять более сложные математические операции при помощи специальных функций, встроенных во Flash. Все они содержатся в объекте Math, за которым следует точка и имя функции. Например, при помощи функции Math.sqrt можно вычислить квадратный корень числа:
a = 9;
b = Math.sqrt(a);
Один из важнейших элементов компьютерного языка, позволяющий программистам создавать игры, - генератор случайных чисел. Без случайных чисел игры были бы полностью предсказуемыми и скучными.
Flash генерирует случайные числа при помощи функции Math. random (). При этом генерируются случайные десятичные значения между 0.0 и 1.0. Нужные числа получают, умножая данные значения на целое число, а затем переводя их в целое число при помощи функции int. Например, следующая строка служит для генерации случайного числа от 0 до 9:
myRandomNumber = int(Math.random()*10) ;
Другие математические функции будут рассмотрены по мере их появления в примерах.Функции могут применяться и к строкам. Например, для объединения двух строк может использоваться символ +:
а = "Hello";
Ь = "World";
с = а + b;
а = "Hello";
b = "World";с = а + " " -b; Более простым способом объединения двух строк является использование синтаксических элементов * = :
а = "Hello";
b += "World";
Условные выражения
Урок 10. Условные выражения
Из урока 5 "Создание кнопок для пользователя" вы узнали, как пользователь может использовать кнопки для перехода от одного кадра к другому. Пользователь решает, какую часть ролика он хочет увидеть следующей, щелкает по кнопке, и сценарий, приписанный данной кнопке, отправляет ролик в соответствующий кадр.
ActionScript также может принимать решения. Эти решения основываются на сравнении значений, которое осуществляется при помощи оператора if. Например, могут сравниваться два значения. Если они равны, программа отреагирует на это определенным образом.
Приведем пример программы, которая сравнивает переменную со значением. Если значение удовлетворяет условию, код внутри фигурных скобок выполняется. В противном случае программа пропускает его.
if (a == 7) {
GotoAndPlay("special frame");
}
Вы можете продлить выражение if и задать, что при невыполнении данного условия должно совершаться определенное действие. Используя оператор else после оператора if, вы можете включить еше один набор фигурных скобок, в которых будет задано какое-либо действие при невыполнении условия:
if (a =- 7) {
gocoAndPlay("special frame");
} else {
gotoAndPlay("another frame");
}
if (a == 7) {
gotoAndPlay ("special frame");
} else if (a == 12) {
gotoAndPlay("very special frame");
} else if (a == 15) {
gotoAndPlay(" extremely special frame");
} else {
gotoAndPlay("a not so special frame");
}
if (username == "Gary") {
Кроме символа ==, определить, будет ли одно число соответственно меньше или больше другого, помогут символы < и >, а символы = указывают, будет ли число меньше или равно или больше или равно другому числу. Данные символы могут использоваться и при сравнении строк, в этом случае они производят сравнение исходя из алфавитного порядка.У вас есть возможность одновременно выполнять несколько сравнений. Например, вы можете проверить, равно ли значение а определенному числу, a username определенной строке:
if ((а == 7) and (username == "Gary")) {
Предыдущая строка верна только при выполнении обоих условий. Выполнение одного из условий можно проверить при помощи оператора or:if ((a == 7) or (username == "Gary")) {
Выражения if являются основными элементами всех программ. Они могут использоваться для изменения переменных, перехода к другим кадрам, а также для того, чтобы определить выигрыш или проигрыш игрока. Другим важным элементом программы являются ииклы, которые рассматриваются в следующем разделе.Циклы
Урок 11. Циклы
Условные выражения являются необходимым элементом программирования; не менее важный элемент - циклы.
Компьютеры превосходно выполняют повторяющиеся задания. Во Flash этими заданиями являются циклы. Наиболее распространенная их разновидность - цикл for. Он позволяет выполнять задание определенное количество раз. Приведем пример цикла for:
for(i=0;i
Традиционным для программирования является использование переменной i в качестве счетчика циклов программы. В данном случае i обозначает increment (приращение). Это неплохая идея - всегда давать переменной имя, обозначающее выполняемую ей функцию. В циклах for, как правило, используется именно переменная i.
На первый взгляд цикл for кажется довольно сложным. Он состоит из трех частей, разделенных точкой с запятой. Первая часть позволяет задавать определенное значение переменной. В данном случае переменной i присвоено значение 0.Вторая часть синтаксической структуры for проверяет выполнение условия, аналогично тому, как это делалось в конструкции if. В нашем случае условие ложно, если i меньше 10.
Третья часть синтаксиса for показывает, как должна изменяться переменная в каждом новом цикле. В данном случае i каждый раз увеличивается на 1. Результатом является следующий цикл: в начале переменная i имеет значение 0, в каждом цикле это значение увеличивается на 1, цикл заканчивается, когда переменная достигает значения 10. Таким образом, значение переменной i изменяется с 0 до 9 за 10 шагов. Если запустить вышеописанный код, вы увидите в окне Output цифры от 0 до 9.
Циклы for применяются для обработки данных внутри программ, а не для анимации объектов на экране. Пока выполняется никл, на экране ничего не происходит. Короткие циклы, наподобие предыдущего примера, выполняются настолько быстро, что не оказывают никакого влияния на ролик. Однако длинные циклы могут задерживать воспроизведение ролика на несколько секунд и больше.
Приведем более распространенный пример цикла for. Предположим, у вас есть 10 клипов с именами "fox1" - "fox10", и вы хотите передвинуть их на 1 пиксел влево. Это действие будет выполнено при помощи следующего цикла:for(i=0;i _root["fox"+i]._x++;
}
Есть еще два способа создания циклов в ActionScript. Первый - это цикл while. В отличие от счетчика приращения (например, i), цикл while продолжает выполняться до тех пор, пока условие в начале выражения while верно. В цикле do, наоборот, условие находится в конце цикла. Разница в том, что если применяется вариант while, цикл может ни разу не выполниться, а в случае do он всегда выполняется один раз. Начинающие программисты на ActionScript нечасто используют подобные циклы, однако их необходимо знать.
Текст и строки
Урок 12. Текст и строки
Использовать числа в ActionScript несложно. Вы можете прибавлять, вычитать и выполнять другие операции с числами. Со строками также можно выполнить множество операций. Операции со строками являются важным шагом в изучении программирования.
Одна из простейших операций над строками - их объединение. Мы рассмотрели ее в уроке 9 "Выполнение операций". В уроке 10 "Условные выражения'' вы сравнивали строки для того, чтобы определить их тождественность и порядок следования.
Теперь давайте рассмотрим еще несколько строковых функций. Предположим, вы хотите узнать, включает ли одна строка другую. Для этого существует команда indexOf, определяющая положение первого символа второй строки внутри первой. Если вторая строка не найдена, результатом выполнения команды будет значение -1. Например, следующий код находит строку "World" в строке "Hello World" на шестой позиции, то есть там, где находится буква "W" (считая от 0). Если же вы зададите поиск "Earth", вы получите значение -1, так как этого слова в сочетании "Hello World" нет.
myString = "Hello World.";
myPosition - myString.indexOf("World");
При ссылке на положение символа ActionScript начинает отсчет с 0. Строка "Hello" будет находиться в положении 0 строки "Hello World".
При помощи команды length вы можете узнать количество символов в строке:myString - "Hello World.";
myStringLength = myString.length;
myString = "Hello World,";
mySubstring = myString.substring(3,8);
myString = "Hello World.";
mySubstring = myString.substr(3,5);
Созданный текст вам нужно будет показать пользователю. Это очень легко. В главе 1 "Элементы Flash для создания игр" вы познакомились с динамическим текстовым полем. Когда вы преобразуете текст в динамический в панели Properties, вы можете в поле Var присвоить ему имя.
На Рисунок 2.11 изображена панель Properties, в которой динамическому текстовому полю присвоено имя mySubstring. Пока переменная и текстовое окно находятся на одном уровне Flash, панель будет отображать содержимое переменной mysubstring. Если же эти элементы находятся на разных уровнях, например один из них является частью клипа, они не будут связаны.
Создание функций
Урок 13. Создание функций
Функция - это часть кода, которая может быть использована многократно. Вы можете передавать в нее несколько значений и получать из нее новые. Примером является функция, выдающая сумму двух чисел. Вот как она будет выглядеть в ActionScript:
function sum(a, b) {
с = a + b;
return c;
}
trace (sum (7, 12));
Результатом обращения к функции будет число 19, помещаемое командой trace в окно Output. При обращении к функции sum значение 7 передается в функцию как переменная а, а значение 12 - как переменная b. После выполнения функции команда return посылает значение , с обратно к sum. Таким образом, для выполнения своей функции команда trace использует результат sum (7, 12) - число 19.Функции используются по двум причинам. Первая - это возможность разделить программу на более мелкие части. Программу, состоящую из 30 строк и выполняющую три различные задачи, можно заменить на три функции, состоящие из 10 строк, каждая из которых выполняет свою задачу. Это значительно облегчает работу с кодом.
Другой причиной является возможность их повторного и неограниченного использования. Таким образом, если определенная часть кода используется несколько раз, вы можете поместить ее в функцию, которую затем будете постоянно вызывать, изменяя ее входные параметры.
Исходный файл: Framelabeler.fla
Приведем пример функции, использующей в качестве входного параметра имя метки кадра. Она выполняет две задачи. Во-первых, помещает имя в текстовую переменную textFrameLabel. Это текстовое окно видно пользователю при воспроизведении ролика, оно информирует пользователя о том, в каком кадре он находится в данный момент. Второй задачей функции является выполнение команды gotoAndstop - переход к определенному кадру и остановка воспроизведения. function gotoFrame(frameLabel) {
franeLabelText - frameLabel;
gotoAndStop (frameLabel) ;
}
gotoFrame ("introduction") ;
В примере Framelabeler.fla функция содержится в первом ключевом кадре. К каждому из пяти кадров пользователь может перейти при помощи кнопок, расположенных в нижней части экрана. Вместо команды gotoAndStop все кнопки обращаются к команде gotoFrame. На Рисунок 2.12 показан пример ролика. В верхнем левом углу рабочего поля находится область динамического текста. Временно он содержит слова "frame label". При первом обращении к функции gotoFrame они будут заменены на "introduction".Массивы
Урок 14. Массивы
Никакое введение в язык программирования не было бы полным без рассмотрения массивов. Хотя множество простых операций может быть выполнено без применения массивов, человек, не умеющий работать с массивами, не может считаться настоящим программистом.
Массив является разновидностью переменной. Переменные, которые вы использовали до сих пор, могут содержать одно значение: число или строку. Массив может содержать ни одного, одно и больше значений. Вот как выглядит массив:
myArray - ["Apple", "Orange", "Peach", "Plum"];
Для обращения к элементу массива используется специальный синтаксис:myItem. = myArray [1];
Переменная myItem будет иметь значение "Orange", так как отсчет положений в массивах, так же как и в строках, начинается с 0.Несложно догадаться, что массивы применяются для хранения множества однотипных данных. Для выполнения операций над массивами предназначено несколько функций. Прежде всего, давайте рассмотрим, как создаются массивы. Это можно сделать несколькими способами. До сих пор мы рассматривали только способ, при котором все элементы массива задаются сразу. Вы также можете создать пустой массив и добавлять в него элементы:
myArray = new Array();
myArray.push("Apple");
myArray.push{"Orange");
myArray.push("Peach");
myArray.push("Plum");
Длину массива можно узнать так же, как и длину строки:
myLength = myArray.length;
Вы уже знаете, как получить доступ к отдельному элементу массива при помоши квадратных скобок. Используя команду pop, вы сможете взять из массива значение последнего размешенного там элемента. При этом из массива он удаляется. В нашем примере мы передаем его в окно Output. Следующий сегмент кода добавляет в массив четыре элемента, а затем, используя цикл while, удаляет конечные элементы массива и перемешает их в окно Output:myArray = new Array();
myArray.push("Apple");
myArray.push("Orange");
myArray.push("Peach");
myArray.push("Plum"); while (myArray.length>0) ( trace (myArray.pop());
Массивы можно упорядочить. В случае, если элементами массива являются числа, Flash упорядочит их в цифровой последовательности. Если это строки, они будут упорядочены по алфавиту:
myArray = new Array ();
myArray.push("Peach"};
myArray.push("Orange");
myArray.push{"Apple");
myArray.push("Plum"};
myArray.sort{);
trace(myArray.toString());
myArray = [ "Apple", "Orange", "Peach" "Plurr." ] ;
myArray.splice(2,1);
Функция splice используется также для добавления элементов. Добавляемый элемент задается третьим параметром:
myArray = [ "Apple", "Orange", "Peach" "Plurr." ] ;
myArray.splice(2,1, "Pear");