Getting started: Overview

Начало > Начало: Краткий обзор

Начало: Краткий обзор

ActionScript - язык создания Flash-сценария (скрипта). Вы можете использовать ActionScript для управления объектами в клипах, создавать навигацию, другие интерактивные элементы. В конечном итоге, создавать высоко качественные клипы и сетевые приложения.


What's new in Flash 5 ActionScript

Начало > Что нового во Flash 5 ActionScript > Команды клипу

Команды клипу (Clip actions)

Можно использовать onClipEvent команду, передающую действия непосредственно в образец муви-клипа на сцене. onClipEvent команда имеет такие события, как load, enterFrame, mouseMove и data, которые позволяют создавать новый тип более продвинутой интерактивности.


What's new in Flash 5 ActionScript

Начало > Что нового во Flash 5 ActionScript > Новые команды

Новые команды

Можно использовать новые команды, такие как do..while и for для создания сложных циклов. Другие новые команды выполнены как методы объекта MovieClip. Например, getBounds, attachMovie, hitTest, swapDepths и globalToLocal.


What's new in Flash 5 ActionScript

Начало > Что нового во Flash 5 ActionScript > Интеллектуальные клипы

Интеллектуальные клипы (Smart Clips)

Интеллектуальные (Smart) клипы имеют внутренние скрипты, которые Вы или другие разработчики можете изменять без использования панели команд (Actions panel). Можно передавать значения в смарт-клип через его параметры, определяемые в библиотеке.


What's new in Flash 5 ActionScript

Начало > Что нового во Flash 5 ActionScript > Отладчик

Отладчик

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


What's new in Flash 5 ActionScript

Начало > Что нового во Flash 5 ActionScript > XML поддержка

XML поддержка

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


Using Flash Help for actions

Начало > Использование справки при написании скрипта

Использование справки при написании скрипта

Flash 5 содержит контекстно-зависимую справку для каждой команды, доступной в панели команд (Actions panel). Можно получать информацию о командах, которые используете, прямо во время создания скрипта.

Для получения справки:

1 | В панели команд (Actions panel) выберите нужную команду в списке инструментальных средств.
2 | Нажмите кнопку Help наверху панели.
 | Описание команды появится в окне броузера


What's new in Flash 5 ActionScript

Начало > Что нового во Flash 5 ActionScript

Что нового во Flash 5 ActionScript

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

Flash 5 ActionScript имеет много новых возможностей и особенностей синтаксиса, которые делают его похожим на ядро языка программирования JavaScript. Это руководство объясняет основные программистские концепции, такие как функции, переменные, выражения, операторы, условия и циклы. Глава 7 этого руководства, " ActionScript Словарь, " содержит подробное описание для каждого элемента ActionScript.

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

Европейская Ассоциация Фирм изготовителей Компьютеров /European Computers Manufacturers Association (ECMA)/ разработала документ, называемый ECMA-262 - международный стандарт языка JavaScript. ActionScript базируется на ECMA-262 спецификации, которая доступна на http://www.ecma.ch.

Netscape DevEdge Online имеет JavaScript Developer Central (http://developer.netscape.com/tech/javascript/index.html), содержащий документацию и систему правил, полезную для понимания ActionScript. Наиболее ценный ресурс - Core JavaScript Guide, находящийся на http://developer.netscape.com/docs/manuals/js/core/jsguide/index.htm.


What's new in Flash 5 ActionScript

Начало > Что нового во Flash 5 ActionScript > Различия между ActionScript и JavaScript

Различия между ActionScript и JavaScript

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

ActionScript не поддерживает специфичные для броузеров объекты, такие как Document, Window и Anchor.
ActionScript полностью не поддерживает все JavaScript предопределенные объекты.
ActionScript поддерживает синтаксические конструкции, которые отсутствуют в JavaScript (например tellTarget и ifFrameLoaded команды и слеш ("/") синтаксис.
ActionScript не поддерживает некоторые синтаксические конструкции JavaScript, такие как switch, continue, try, catch, throw и statement метки.
ActionScript не поддерживает JavaScript конструкцию Function
В ActionScript, eval команда может только выполнять ссылки на переменные .
В JavaScript, неопределенное toString есть undefined. Во Flash 5, для совместимости с Flash 4, неопределенное toString есть " ".
В JavaScript, численное undefined результируется в NaN. Во Flash 5, для совместимости с Flash 4, численное undefined является 0.
ActionScript не поддерживает Unicode; поддерживаются ISO-8859-1 и Shift-JIS кодировки.


What's new in Flash 5 ActionScript

Начало > Что нового во Flash 5 ActionScript > Редактирование текста

Редактирование текста

Можно набирать скрипты непосредственно в панели команд (Actions) в экспертном режиме (Expert Mode). Можно также выбирать элементы из всплывающего меню, или списка инструментов, точно так же, как во Flash 4.


What's new in Flash 5 ActionScript

Начало > Что нового во Flash 5 ActionScript > Dot синтакс

Dot (точечный) синтаксис

Можно использовать Dot (точечный) синтаксис, чтобы получать и устанавливать свойства и методы объектов, включая имена муви-клипов и переменных. Можно использовать Dot синтаксис вместо слеш (/) синтаксиса, как во Flash 4. Слеш синтаксис больше не предпочтителен, но еще поддерживается Флеш-Плеером.

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


What's new in Flash 5 ActionScript

Начало > Что нового во Flash 5 ActionScript > Типы данных

Типы данных

Flash 5 ActionScript поддерживает следующие типы данных: string (строка), number (число), boolean (булеан), object (объект) и movie clip (муви-клип). Множественность типов данных позволяют использовать различные типы информации в ActionScript. Например, возможно создание массивов и ассоциативных массивов.


What's new in Flash 5 ActionScript

Начало > Что нового во Flash 5 ActionScript > Локальные переменные

Локальные переменные

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


What's new in Flash 5 ActionScript

Начало > Что нового во Flash 5 ActionScript > Функции определяемые пользователем

Функции определяемые пользователем (User-defined functions)

Можно определять функции с параметрами, которые возвращают значения. Это позволяет многократно использовать одни и те же блоки кода в скриптах. Во Flash 4, можно было многократно использовать код через call команду, но нельзя было передавать туда параметры или возвращать значения.


What's new in Flash 5 ActionScript

Начало > Что нового во Flash 5 ActionScript > Предопределенные объекты

Предопределенные объекты

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

Объект Math - набор встроенных математических констант и функций, таких как E (Константа Эйлера) cos (Косинус), atan (Арктангенс).
Объект Date - позволяет получить информацию о дате и времени системы, на которой запущен Флеш-Плеер.
Объект Sound - позволяет добавлять звуки к клипу и управлять ими во время проигрывания клипа. Например, можно регулировать громкость (setVolume), или баланс (setPan).
Объект Mouse - позволяет скрывать стандартный курсор, чтобы можно было использовать какой-то другой.
Объект MovieClip - позволяет управлять клипом без использования такой команды как tellTarget. Можно вызвать такие методы как play, loadMovie или duplicateMovieClip из имени образца (instance name), используя dot (точечный) синтаксис (например, myMovieClip.play()).


Understanding ActionScript: Overview

Понимание ActionScript > Понимание ActionScript: Обзор

Понимание ActionScript: Обзор

ActionScript, скриптовый Flash-язык, добавляет интерактивность к клипу. Вы можете так настроить свой клип, что в зависимости от действий пользователя, таких как щелчки мышью или нажатия кнопок на клавиатуре, скрипт будет давать указания клипу, какие действия выполнять. Например, можно написать скрипт, который будет указывать Flash'у загружать разные клипы во Flash Player, в зависимости от того, какие навигационные кнопки выбрал пользователь.

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

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

Эта глава также познакомит вас с Actions-панелью, в которой вы можете создавать свои скрипты, выбирая элементы ActionScript или набирая текст в окне скриптов (Script window).


Using the Actions panel

Понимание ActionScript > Использование Actions panel

Использование Actions panel

Actions panel позволяет создавать и редактировать скрипты для объектов и кадров двумя различными способами. Можно выбирать заранее определенные команды из списка команд (Toolbox list), перетаскивать их в правую часть панели и использовать кнопки на панели для удаления и перестановки команд. В Normal Mode (нормальный режим) можно писать команды, используя поля параметров (аргументов), которые запрашивают у вас правильные аргументы. В Expert Mode (экспертный режим) можно писать и редактировать команды прямо в текстовом поле, как в обычном текстовом редакторе.

Включение Actions panel:

Выберите Window > Actions.

Выбрав экземпляр кнопки или муви-клипа вы делаете Actions panel активной. Заголовок Actions panel изменяется на Object Actions, если вы выбрали муви-клип или кнопку или на Frame Actions panel, если выбран кадр.

Выбор режима редактирования:

1 | При активной Actions panel щелкните на стрелке в правом верхнем углу панели. Откроется выпадающее меню.
2 | Выберите Normal Mode или Expert Mode из меню.
 | Каждый скрипт поддерживает свой собственный режим. Например, вы можете редактировать скрипт в одном экземпляре кнопки в Normal Mode, а другой в Expert Mode. При переключении между этими кнопками будет переключаться и режим редактирования.
 | Более детальную информацию смотри Нормальный режим и Экспертный режим.


Using the Actions panel

Понимание ActionScript > Использование Actions panel > Нормальный режим

Нормальный режим

В нормальном режиме вы создаете скрипт путем выбора команд из списка (Toolbox list), находящемся с левой стороны панели. Список команд содержит следующие категории: Basic Actions (Базовые команды), Actions (Команды), Operators (Операторы), Functions (Функции), Properties (Свойства) и Objects (Объекты). Категория Basic Actions содержит простейшие команды Flash, доступна только в нормальном режиме. Выбранные команды отображаются в правой части панели, в Actions list. Вы можете добавлять, удалять или изменять порядок команд, а также вводить параметры (аргументы) команд в соответствующих полях внизу панели.

В нормальном режиме вы можете использовать управляющие кнопки Actions panel для удаления или изменения порядка команд. Эти кнопки особенно полезны для управлением скриптами, которые содержать несколько команд.

Actions panel в нормальном режиме.

Для выбора команды:

1 | Щелкните на нужной категории, для показа команд этой категории.
2 | Дважды щелкните на команде или перетащите ее в окно скриптов.

Для использования полей параметров:

1 | Щелкните на кнопке параметров в нижнем правом углу панели для показа полей.
2 | Выберите команду и введите новые значения в полях для изменения свойств.

Для ввода пути муви-клипа:

1 | Щелкните на кнопке Target Path в нижнем правом углу панели для показа Insert Target Path (панель выбора пути).
2 | Выберите муви-клип из списка.

Для перемещения команд вверх и вниз по списку:

1 | Выберите команду в Actions list.
2 | Щелкните по кнопке Up или Down Arrow.

Для удаления команды:

1 | Выберите команду в Actions list.
2 | Щелкните на кнопке удаления (-).

Для изменения параметров используемой команды:

1 | Выберите команду в Actions list.
2 | Введите новые параметры в поле параметров.

Для изменения размеров Toolbox или Actions list:

Перетяните вертикальную разделяющую полосу между Toolbox и Actions list.
Дважды щелкните по вертикальной разделяющей полосе для того, что бы свернуть Toolbox list, следующий двойной щелчок по полосе развернет Toolbox list.
Щелкните по кнопкам со стрелками влево или вправо на разделяющей полосе, чтобы свернуть или развернуть список.

Когда Toolbox list скрыт, вы все равно можете получить доступ к его элементам, путем нажатия на кнопку добавления (+) в верхнем левом углу Actions panel.


Using the Actions panel

Понимание ActionScript > Использование Actions panel > Экспертный режим

Экспертный режим

В экспертном режиме вы создаете команды путем ввода ActionScript в текстовое поле в правой стороне панели или выбирая команды из Toolbox list слева. Вы редактируете команды, вводите параметры или удаляете команды прямо в текстовом поле, как в обычном текстовом редакторе.

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

Выбор команд при помощи кнопки (+) вводит их в зону редактирования.
Поля параметров не появляются.
Из всех кнопок на панели работает только кнопка (+).
Кнопки со стрелками вверх и вниз неактивны.
Actions panel в экспертном режиме


Using the Actions panel

Понимание ActionScript > Использование Actions panel > Переключение между режимами редактирования

Переключение между режимами редактирования

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

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

Переключение из экспертного режима в нормальный немного сложнее:

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

Для изменения режима редактирования:

Выберите Normal Mode или Expert Mode из выпадающего меню в правом верхнем углу панели. Галочка указывает на текущий режим.

Для установки режима по умолчанию:

1 | Выберите Edit > Preferences.
2 | Выберите General tab
3 | В разделе Actions Panel, выберите Normal Mode или Expert Mode из выпадающего меню.


Using the Actions panel

Понимание ActionScript > Использование Actions panel > Использование внешних редакторов.

Использование внешних редакторов.

Экспертный режим дает вам больше возможностей редактирования ActionScript, вы можете редактировать скрипты вне Flash. Вы можете потом использовать команду include для добавления скриптов, созданных во внешнем редакторе, к скриптам во Flash.

Например, следующая команда импортирует файл скрипта:

#include "externalfile.as"

Текст скрипта заменяет команду include. Текстовый файл должен существовать в момент экспорта клипа.

Для добавления скрипта из внешнего редактора:

1 | Перетащите команду include из Toolbox list в окно скриптов.
2 | Введите путь к внешнему файлу.
 | Путь должен быть родительским по отношению к FLA файлу. Например, если myMovie.fla и externalfile.as лежат в одном каталоге, путь будет такой: externalfile.as. Если externalfile.as лежит в подкаталоге, который называется Scripts, то путь будет таким: scripts/externalfile.as.


Using the Actions panel

Понимание ActionScript > Использование Actions panel > Выбор опций Actions panel

Выбор опций Actions panel

Actions panel позволяет работать со скриптами различными путями. Вы можете изменить размер шрифта в окне скриптов, можете импортировать текстовый файл, содержащий ActionScript в Actions panel и экспортировать команды как текстовый файл, искать и заменять фрагменты текста в скрипте, использовать подсветку синтаксиса для облегчения чтения скрипта и обнаружения ошибок. Actions panel предупреждающе подсвечивает ошибки и несовместимости с Flash Player'ом. Также подсвечиваются нерекомендованные или менее предпочтительные команды.

Эти опции Actions panel доступны как в нормальном, так и в экспертном режимах редактирования, если это специально не оговорено.

Для изменения размера шрифта в окне скриптов:

1 | Из выпадающего меню в правом верхнем углу панели выберите Font Size (размер шрифта).
2 | Выберите Small (маленький), Normal (нормальный) или Large (большой).

Для импорта текстового файла содержащего ActionScript:

1 | Из выпадающего меню в правом верхнем углу панели выберите Import from File (импорт из файла).
2 | Выберите текстовый файл, содержащий ActionScript и нажмите Open.

Примечание: Скрипты с синтаксическими ошибками можно импортировать только в экспертном режиме. В нормальном режиме вы получите сообщение об ошибке.

Для экспорта команд в текстовый файл:

1 | Из выпадающего меню в правом верхнем углу панели выберите Export as File (экспорт в файл).
2 | Выберите место расположения файла и нажмите Save.

Для печати команд:

1 | Из выпадающего меню в правом верхнем углу панели выберите Print.
 | Появится диалоговое окно печати.
2 | Выберите опции и нажмите Print.

Примечание: Напечатанный файл не будет содержать информацию об оригинальном Flash-файле. Можно включить эту информацию в команду comment .

Для поиска текста в скрипте, выберите из выпадающего меню в правом верхнем углу панели:

Goto Line для перехода к определенной строке скрипта.
Find для поиска текста.
Find Again для дальнейшего поиска.
Replace для поиска и замены текста.
В экспертном режиме Replace сканирует все тело скрипта. В нормальном режиме Replace ищет и заменяет только значения в полях параметров. Например, вы не сможете заменить все команды gotoAndPlay на gotoAndStop в нормальном режиме.

Примечание: Используйте Find и Replace для поиска в текущей Actions list. Для поиска во всех скриптах клипа, используйте Movie Explorer. Для более детальной информацией смотри Flash Help.


Using the Actions panel

Понимание ActionScript > Использование Actions panel >Подсветка и проверка синтаксиса

Подсветка и проверка синтаксиса

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

Ключевые слова и предопределенный идентификаторы (например gotoAndStop, play и stop) подсвечиваются синим цветом.
Свойства подсвечиваются зеленым цветом.
Комментарии подсвечиваются фиолетовым цветом.
Строки, окруженные кавычками, подсвечиваются серым цветом.

Для включения и выключения подсветки:

Выберите Colored Syntax из выпадающего меню в правом верхнем углу Actions panel. Маркер показывает, что эта опция включена. Все скрипты будут подсвечены.

Неплохой идеей является проверка синтаксиса скрипта на наличие ошибок перед экспортом клипа. Ошибки сообщаются в Output window. Вы можете экспортировать клипы, в которых есть ошибки. Однако будете предупреждены о том, что скрипты с ошибками при этом не будут экспортированы.

Для проверки текущего скрипта на наличие ошибок:

Выберите Check Syntax из выпадающего меню в правом верхнем углу Actions panel.


Using the Actions panel

Понимание ActionScript > Использование Actions panel >О подсвечивании ошибок

О подсвечивании ошибок

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

В нормальном режиме все несовместимые команды подсвечиваются сплошным желтым фоном в окне скриптов. Например, если для экспорта клипа установлена четвертая версия Flash Player'а, то команды ActionScript, поддерживаемые только пятой версией, будут подсвечены желтым цветом. Версия экспорта устанавливается в Publish Settings.

Все устаревшие команды подсвечиваются зеленым фоном. Это происходит в случае установления пятой версия Player'а для экспорта.

Для установки версии Flash Player'а при экспорте:

1 | Выберите File > Publish Settings.
2 | Нажмите на закладку Flash.
3 | Выберите версию экспорта из выпадающего меню Version.

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

Для включения подсветки несовместимых команд:

Выберите Show Deprecated Syntax из выпадающего меню Actions panel.

Полный список всех сообщений об ошибках смотри Таблица сообщений об ошибках.


Assigning actions to objects

Понимание ActionScript > Назначение команд объектам

Назначение команд объектам

Вы можете назначать команды кнопкам или муви-клипам, которые будут выполняться при нажатии пользователем на кнопку или при наведении на нее курсора мыши, или когда муви-клип загружается или достигает определенного кадра. Вы можете назначить команды экземпляру муви-клипа или кнопки и это не будет оказывать никакого влияния на другие экземпляры. (О назначении команд кадрам, смотри Назначение команд кадрам.)

При назначении команды кнопке, вы должны поместить команды внутри обработчика on(mouse event) и определить события мыши или клавиатуры, на которые кнопка будет реагировать. При назначении команды кнопке в нормальном режиме, обработчик on(mouse event) добавится автоматически.

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

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

После того, как вы добавили команды, используйте Control > Test Movie для тестирования работы клипа. Большинство команд не работает в режиме редактирования.

Для назначения команд кнопке или муви-клипу:

1 | Выделите экземпляр кнопки или муви-клипу и выберите Window > Actions.
 | Если вы выделили не кнопку, муви-клип или кадр или выбрали сразу несколько объектов, то Actions panel будет тусклой (недоступной).
2 | Выберите Normal Mode из выпадающего меню в правом верхнем углу Actions panel.
3 | Чтобы добавить команды сделайте одно из следующего:
 | Дважды щелкните на команде в Toolbox list в левой половине Actions panel чтобы добавить команду в список команд в правой половине Actions panel.
 | Перетащите команду из Toolbox list в список команд.
 | Нажмите кнопку (+) и выберите команду из выпадающего меню.
 | Используйте клавиши быстрого доступа для каждой команды, список которых есть в выпадающем меню.
 | Выбор команд из Toolbox list в нормальном режиме редактирования.
4 | В полях параметров в нижней части панели, выберите нужные параметры для команды.
 | Для разных команд нужны разные параметры. Для более детальной информации о необходимых параметрах для каждой команды, смотри Словарь ActionScript: Обзор. Для ввода пути муви-клипа в поле параметров, щелкните на кнопку Target Path в нижнем правом углу Actions panel. Для более детальной информацией, смотри Работа с муви-клипами:Обзор..
5 | Повторите шаги 3 и 4 для назначения дополнительных команд, если это необходимо.

Для тестирования:

Выберите Control > Test Movie.


Assigning actions to frames

Понимание ActionScript > Назначение команд кадрам

Назначение команд кадрам

Чтобы заставить клип делать что-либо при достижении определенного кадра, вы назначаете команды кадру. Например, для того что бы сделать цикл на линейке между 10 и 20 кадрами, необходимо в кадр 20 поместить следующую команду:

gotoAndPlay (10);

Хорошим тоном является размещение команд в отдельном слое. Кадры содержащие команды помечаются маленькой буквой "a" на линейке.

Буква "a" в кадре обозначает кадр с командами.

После того, как команды назначены, используйте Control > Test Movie для тестирования работы клипа. Большинство команд не работает в режиме редактирования.

Следующие инструкции описывают, как назначить команды кадру в Actions panel в нормальном режиме. (Подробную информацию о назначении команд кнопкам или муви-клипам смотри Добавление команд или методов.)

Для назначения команд кадру:

1 | Выберите кадр в линейке и выберите Window > Actions.
 | Если выбранный кадр не является ключевым, команды будут назначены предыдущему ключевому кадру. Если кадр не выбран или выбрано несколько кадров, Actions panel будет тусклой (недоступной).
2 | Выберите Normal Mode из выпадающего меню в правом верхнем углу Actions panel.
3 | Чтобы назначить команды сделайте одно из следующего:
 | Дважды щелкните на команде в Toolbox list в левой половине Actions panel чтобы добавить команду в список команд в правой половине Actions panel.
 | Перетащите команду из Toolbox list в список команд.
 | Нажмите кнопку (+) и выберите команду из выпадающего меню.
 | Используйте клавиши быстрого доступа для каждой команды, список которых есть в выпадающем меню.
 | В полях параметров в нижней части панели, выберите нужные параметры для команды.
4 | Для назначения дополнительных команд, выберите другой ключевой кадр и повторите шаг 3.

Для тестирования::

Выберите Control > Test Movie.


About scripting in ActionScript

Понимание ActionScript. > Написание скриптов на ActionScript

Написание скриптов на ActionScript

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

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

1 | Выберите Window > Common Libraries > Buttons, затем выберите Window > Common Libraries > Movie Clips. Разместите кнопку и муви-клип на сцене.
2 | Выделите этот муви-клип и выберите Window > Panels > Instance Properties.
3 | В поле Name введите testMC.
4 | Выделите кнопку на сцене и выберите Window > Actions для того что бы открыть Actions panel.
5 | На панели Object Actions щелкните на категории Actions, чтобы открыть ее.
6 | Дважды щелкните на команде setProperty, чтобы добавить ее в список команд (Actions list).
7 | Из выпадающего меню Property (свойства) выберите _visible (видимость).
8 | В поле Target (цель) введите testMC.
9 | В поле Value (значение) введите 0.
Код должен выглядеть примерно так:
on (release) {
    setProperty ("testMC", _visible, false);
}
10 | Выберите Control > Test Movie и нажмите на кнопку, чтобы увидеть как исчезнет муви-клип.

ActionScript - объектно-ориентированный скриптовый язык. Это означает, что команды влияют на объект тогда, когда происходит определенное событие. В данном скрипте событием является отпускание кнопки мыши, объект - муви-клип с именем testMC, команда - setProperty. Когда пользователь отпускает кнопку мыши над кнопкой на экране, происходит событие release и скрипт переключает свойство _visible объекта MC в состояние false, из-за чего объект становиться невидимым.

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


About scripting in ActionScript

Понимание ActionScript > Написание скриптов на ActionScript > Планирование и отладка скриптов

Планирование и отладка скриптов

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

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

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

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

Чтобы заставить скрипты работать так, как вам хочется, может потребоваться некоторое время — часто большее чем один цикл написания, тестирования и отладки. Лучший подход - начать с простого и тестировать свою работу как можно чаще. Когда вы завершили одну часть вашей работы, выберите Save As, чтобы сохранить версию файла (например myMove01.fla) и приступайте к написанию следующей части. Такой подход облегчит поиск возможных ошибок и даст вам навык в написании более сложных скриптов.


About scripting in ActionScript

Понимание ActionScript > Написание скриптов на ActionScript > Об объектно-ориентированном программировании

Об объектно-ориентированном программировании

В объектно-ориентированном программировании информация организуется путем ее объединения в группы, называемые classes (классы). Можно создать множество экземпляров класса, которые называются objects (объекты). Вы можете использовать встроенные классы ActionScript или создавать свои.

При создании класса, вы устанавливаете все properties (свойства, характеристики) и methods (методы, поведение) каждого созданного объекта точно также как и у каждого реального объекта. Например, человек имеет такие свойства как: пол, рост и цвет волос, такие методы как: говорить, ходить и бросать. В этом примере "человек" это класс, а каждый индивидуум - объект или instance (экземпляр) этого класса.

Объекты в ActionScript могут содержать данные или они могут быть графически представлены на сцене в качестве муви-клипов. Все муви-клипы являются экземплярами предустановленного класса MovieClip. Каждый муви-клип содержит все свойства (например _height, _rotation, _totalframes) и методы (например gotoAndPlay, loadMovie, startDrag) класса MovieClip.

Чтобы определить класс, вы должны создать специальную функцию, называемую constructor function (конструктор класса), предустановленные классы уже имеют конструкторы. Например, если вы хотите иметь информацию об велосипедисте в вашем клипе, можете создать конструктор класса Biker, со свойствами time и distance и методом rate, который сообщает как быстро движется велосипедист:

function Biker(t, d) {
    this.time = t;
    this.distance = d;
}
function Speed() {
    return this.time / this.distance;
}
Biker.prototype.rate = Speed;

Затем можете копировать экземпляры класса. Следующий код создает экземпляры объекта Biker, которые называются emma и hamish.

emma = new Biker(30, 5);
hamish = new Biker(40, 5);

Экземпляры также могут взаимодействовать друг с другом. Для объекта Biker вы можете создать метод shove, который позволит велосипедистам толкать друг друга. (Экземпляр emma может вызвать метод shove если hamish подъедет слишком близко.) Чтобы передать информацию методу, используются параметры (аргументы): например, метод shove может иметь параметры who и howFar. В следующем примере emma толкает hamish на 10 пикселей:

emma.shove(hamish, 10);

В объектно-ориентированном программировании классы могут получать свойства и методы один от другого в определенном порядке. Этот порядок называется inheritance (наследование). Вы можете использовать наследование для расширения или переопределения свойств и методов класса. Класс, который наследуется от другого класса называется subclass (подкласс, потомок). Класс, который дает свойства и методы называется superclass (надкласс, родитель). Класс может быть одновременно и потомком и родителем.


About scripting in ActionScript

Понимание ActionScript > Написание скриптов на ActionScript > Об объекте MovieClip

Об объекте MovieClip

Предопределенные классы ActionScript называются objects (объектами). Каждый объект дает вам возможность получить доступ к определенному типу информации. Например, объект Date имеет методы (например, getFullYear,getMonth), позволяющие получать информацию от системных часов. Объект Sound имеет методы (например, setVolume, setPan), позволяющие контролировать звук в клипе. Объект MovieClip имеет методы, позволяющие управлять экземплярами муви-клипов (например play, stop, и getURL), получать и назначать информацию об их свойствах (например _alpha, _framesloaded, _visible).

Муви-клипы - наиболее важные объекты во Flash, так как у них есть хронометрические линейки (Timeline), действующие независимо друг от друга. Например, если главная линейка содержит только один кадр, а муви-клип в этом кадре содержит десять кадров, будет воспроизведен каждый кадр этого муви-клипа. Это позволяет экземплярам существовать как автономным объектам, которые могут взаимодействовать друг с другом.

Каждый экземпляр мувиклипа имеет свое уникальное имя (instance name), по которому можно к нему обращаться. Например, вы можете иметь множество экземпляров клипа на сцене (например, leftClip и rightClip) и хотите проиграть только один из них. Для команды, запускающей воспроизведение одного определенного экземпляра, необходимо использовать его имя, как это сделано в следующем примере:

leftClip.play();

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

onClipEvent(load) {
    do {
        duplicateMovieClip("cartItem", "cartItem" + i, i);
        i  = i + 1;
    } while (i <= numberItemsPur);
}

У муви-клипов есть свойства, значения которых можно устанавливать или считывать динамически при помощи ActionScript. Изменением и чтением этих свойств можно изменить вид клипа. Например, в следующем примере скрипт использует команду setProperty, для того что бы установить прозрачность муви-клипа с именем navigationBar в значение 10:

setProperty("navigationBar", _alpha, 10);

За более детальной информацией об предопределенных типах объектов смотри Использование предопределенных объектов.


About scripting in ActionScript

Понимание ActionScript > Написание скриптов на ActionScript > Как выполняются скрипты

Как выполняются скрипты

ActionScript следует логической структуре. Flash исполняет команды ActionScript начиная с первой и последовательно до последней, если ему не встретится оператор, переводящий исполнение куда-либо в другое место.

Некоторые команды, такие как if - условные переходы, do...while - циклы и команда return, переводят исполнение ActionScript куда-либо в другое место, а не на следующую команду.

Логическая структура команды if..else

Логическая структура команды do..while

Оператор if называется условным оператором или "логическим ветвлением", так как он управляет исполнением скрипта в зависимости от соблюдения некоторого условия. Например, следующий код проверяет условие - значение переменной number должно быть меньше или равно 10. Если проверка возвращает true (например, значение number равно 5), переменной alert присваивается соответствующее значение, которое можно вывести, в качестве сообщения пользователю:

if (number <= 10) {
    alert = "The number is less than or equal to 10";
}

Для создания более сложного условного оператора можно добавить оператор else, как показано в следующем примере. Если условие возвращает true (например значение number равно 3), то выполняется вторая строка, если false (например значение переменной number равно 117649) первый блок кода пропускается и выполняется второй, следующий после оператора else:

if (number <= 10) {
    alert = "The number is less than or equal to 10";
} else {
    alert = "The number is greater than 10";
}

За более детальной информацией обращайтесь Использование оператора "if".

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

i = 0;
do {
    duplicateMovieClip ("myMovieClip", "newMovieClip" + i, i);
    newName = eval("newMovieClip" + i);
    setProperty(newName, _x, getProperty("myMovieClip", _x) + (i * 5));
    i = i + 1;
} while (i <= 5);

За более детальной информацией обращайтесь Повторение команд.


About scripting in ActionScript

Понимание ActionScript > Написание скриптов на ActionScript > Управление во время работы ActionScript

Управление во время работы ActionScript

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

Flash выполняет команды в разное время, в зависимости от их местонахождения (присоединения):

Команды назначенные кадру выполняются когда воспроизведение доходит до этого кадра.
Команды назначенные кнопкам, включаются в команду-обработчик on.
Команды назначенные муви-клипу, включаются в команду-обработчик onClipEvent.

Команды onClipEvent и on называются обработчиками, так как они "обрабатывают" события. (События - это то что происходит на сцене, например движение мыши, нажатие кнопки на клавиатуре, загрузка мувиклипа). Команды муви-клипов и кнопок выполняются тогда, когда случаются события, описанные в обработчике. Вы можете присоединять более одного обработчика к объекту, если хотите чтобы команды выполнялись при различных событиях. Для более детальной информации смотри Главу 3 Создание интерактивности при помощи ActionScript: Обзор.

Мувиклипу на сцене назначено несколько обработчиков onClipEvent.


ActionScript terminology

Понимание ActionScript > Терминология ActionScript

Терминология ActionScript

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

Actions (Команды) - операторы, которые дают инструкции клипу, что ему делать во время воспроизведения. Например, gotoAndStop переводит воспроизведение на определенный кадр или метку.

Arguments (Аргументы), также называются параметрами, позволяют передавать значения функциям. Например, следующая функция welcome, использует два значения, которые получает с помощью аргументов firstName и hobby:

function welcome(firstName, hobby) {
    welcomeText = "Hello, " + firstName + "I see you enjoy " + hobby;
}

Classes (Классы) - типы данных, которые можно создавать для определения новых типов объектов. Для определения класса объектов, создаются функции-конструкторы.

Constants (Константы) - неизменяемые элементы. Например, константа TAB всегда имеет определенное значение. Константы полезны для сравнения значений.

Constructors (Конструкторы) - функции, используемые для определения свойств и методов класса. Например, следующий код создает новый класс Circle с помощью конструктора Circle:

function Circle(x, y, radius){
    this.x = x;
    this.y = y;
    this.radius = radius;
}

Data types (Типы данных) - набор значений и операций, могущих производиться над ними. Строки, числа, true и false (Булевые) значения, объекты и муви-клипы - типы данных ActionScript. Для более детальной информации об этих элемента языка смотри О типах данных.

Events (События) - действия, происходящие во время воспроизведения клипа. Например, различные события происходят при загрузке клипа, когда плеер воспроизводит кадр, пользователь щелкает на кнопке в муви-клипе или нажимает кнопку на клавиатуре.

Expressions (Выражения) - любые части операторов, имеющих значения. Например, 2 + 2 это выражение.

Functions (Функции) блоки многократно используемого кода, которым могут быть переданы аргументы (параметры) и которые могут вернуть значения. Например, функции getProperty передаются имя свойства и имя клипа, а возвращается значение этого свойства. Функция getVersion возвращает версию Flash Player, воспроизводящего клип.

Handlers - специальные команды, управляющие событиями, такими как mouseDown или load. Например, on (onMouseEvent) и onClipEvent - ActionScript handlers.

Identifiers (Идентификаторы) - имена, используемые для обозначения переменных, свойств, объектов, функций и методов. Первый символ должен быть буквой, знаком подчеркивания (_) или знаком доллара ($). Любой следующий символ должен быть буквой, знаком подчеркивания (_), цифрой или знаком доллара ($). Например, имя переменной firstName.

Instances (Экземпляры) - объекты, принадлежащие к определенному классу. Каждый экземпляр класса содержит все свойства и методы этого класса. Все муви-клипы - экземпляры со свойствами (например, _alpha и _visible) и методами (например, gotoAndPlay и getURL) класса MovieClip.

Instance names - уникальные имена, позволяющие указывать экземпляр муви-клип в скриптах. Например, исходный символ в Библиотеке может быть назван counter, а его два экземпляра могут иметь имена scorePlayer1 и scorePlayer2. Следующий код назначает переменной score внутри каждого экземпляра при помощи instance names:

_root.scorePlayer1.score += 1
_root.scorePlayer2.score -= 1

Keywords (Ключевые слова) - зарезервированные слова, имеющие специальное значения. Например, var - ключевое слово, используемое для объявления локальных переменных.

Methods (Методы) - функции, присущие объекту. После того, как функция определена, она может быть вызвана, как метод этого объекта. Например, в следующем коде clear становиться методом объекта controller.

function Reset(){
    x_pos = 0;
    x_pos = 0;
}
controller.clear = Reset;
controller.clear();

Objects (Объекты) - коллекции свойств, каждый из которых имеет свое имя и значение. Объекты обеспечивают доступ к различным типам данных. Например, предопределенный объект Date предоставляет информацию от системных часов.

Operators (Операторы) - вычисляют новые значения из одного или более значений. Например, оператор сложения (+) складывает два или более значения для получения нового значения.

Target paths (Пути) иерархические адреса имен экземпляров муви-клипов, переменных, объектов в клипе. Вы можете назвать муви-клип в его Instance panel. Главная линейка всегда имеет имя _root. Можно использовать путь для указания команды муви-клипа, для получения или назначения переменных. Например, следующий оператор - путь к переменной volume которая находится внутри муви-клипа stereoControl:

_root.stereoControl.volume

Properties (Свойства) - атрибуты, определяющие объект. Например, _visible - свойство всех клипов, которое определят видим клип или нет.

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

x = 5;
name = "Lolo";
customer.address = "66 7th Street";
c = new Color(mcinstanceName);


Deconstructing a sample script

Понимание ActionScript > Разбор простого скрипта

Разбор простого скрипта

В этом простом клипе, при переносе мухи в ловушку, муха чернеет и падает вниз ловушки. Клип имеет продолжительность в один кадр и содержит два объекта: мувик с мухой и мувик с ловушкой. Каждый из мувиков также содержит по одному кадру.

Муха и ловушка находятся на сцене в первом кадре

В этом клипе всего один скрипт. Он назначен клипу с именем bug, см. в Object Actions panel:

Object Actions panel со скриптом, назначенным клипу bug

Так как оба объекта являются мувиками, можно назначить каждому из них уникальное имя в Instance panel и управлять ими при помощи ActionScript. Имя мувика с мухой будет bug, с ловушкой - zapper. В скрипте, к мувику с мухой обращаются как к this, так как скрипт назначен непосредственно этому клипу, а зарезервированное слово this адресует к объекту, в котором вызывается скрипт.

В скрипте находятся два обработчика onClipEvent с двумя разными событиями: load и enterFrame. Команды, в блоке onClipEvent(load) выполняются только один раз при загрузке клипа. Команды в блоке onClipEvent(enterFrame) выполняются каждый раз, когда player входит в этот кадр. Так как у нас клип состоит только из одного кадра, то эти команды повторяются постоянно. Следующие команды происходят при наступлении этих событий.

onClipEvent(load). Команда startDrag делает клип с мухой перетаскиваемым. Создается экземпляр объекта Color при помощи оператора new и конструктора Color. Этому экземпляру назначается имя zap:

onClipEvent (load) {
    startDrag (this, true);
    zap = new Color(this);
}

onClipEvent(enterFrame). Условный оператор if использует команду hitTest для проверки соприкосновения клипа с мухой (this) и клипа с ловушкой (_root.zapper). Возможны два результата проверки, true или false:

onClipEvent (enterFrame) {
    if (this.hitTest(_root.zapper)) {
        zap.setRGB(0);
        setProperty (_target, _y, _y+50);
        setProperty (_root.zapper, _alpha, 50);
        stopDrag ();
    } else {
        setProperty (_root.zapper, _alpha, 100);
    }
}

Если команда hitTest возвращает true, объект zap, созданный в блоке load, используется для перекрашивания мухи в черный цвет. К свойству мухи (_y) прибавляется 50, таким образом кажется, что муха упала (переместилась на 50 пикселов вниз). Прозрачность ловушки (_alpha) становиться равной 50, кажется что ловушка мигнула. Команда stopDrag отключает перетаскивание клипа с мухой.

Если команда hitTest возвращает false, выполняются команды в блоке else. При этом значение _alpha ловушки становится равным начальному значению (100), а если оно до этого было равно 50, то покажется, что ловушка мигнула. Эти действия произойдут после того, как муха будет поймана и упадет.


Creating interaction with ActionScript: Overview

Создание интерактивности на ActionScript > Создание интерактивности на ActionScript: Краткий обзор

Создание интерактивности на ActionScript: Краткий обзор

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

Интерактивные клипы создаются путем написания скриптов, которые выполняются, когда происходят определенные события. События, которые могут запускать скрипт, происходят в тот момент, когда клип достигает определенного кадра, когда муви-клип загружаться или выгружается, когда пользователь нажимает на кнопку или клавишу на клавиатуре и т.п. Команды ActionScript, используемые для создания скриптов, сообщают флеш-плееру, что делать, когда данное событие происходит.

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

Запускать и останавливать клип
Изменять качество вывода клипа на экран
Отключать все звуки
Переходить на другой кадр или сцену
Переходить на другой URL
Проверять загружен ли какой-то кадр
Подгружать и выгружать дополнительные клипы

Для более детализированной информации об этих действиях, см. Flash Help.

Чтобы создавать более сложное взаимодействие, необходимо освоить следующие приемы:

Создание собственного курсора
Определение позиции мыши
Перехват нажатий клавиш
Создание текстового поля со скроллингом
Установка значений цвета муви-клипа
Создание средств управления звуком
Обнаружение пересечений


Creating a custom cursor

Создание интерактивности на ActionScript > Создание собственного курсора

Создание собственного курсора

Чтобы скрыть стандартный курсор (указатель мыши), используется hide метод предопределенного объекта Mouse. Для использования муви-клипа как собственного курсора, применяется команда startDrag.

Чтобы видеть анимированную демонстрацию такого курсора подвигайте мышь в клипе.

Создание собственного курсора:

1 | Создать муви-клип для использования его в качестве собственного курсора.
2 | Выделить его на рабочем поле.
3 | Выбрать Window > Actions для открытия панели команд (Object Actions panel).
4 | В открывшемся списке выбрать Objects, затем Mouse и переместить команду hide в окно скрипта (Script window).
Код будет выглядеть следующим образом:
onClipEvent(load){
    Mouse.hide();
}
5 | В списке выбрать раздел Actions затем перетащить startDrag в окно скрипта (Script window).
6 | Включить опцию Lock Mouse to Center.
Код будет выглядеть следующим образом:
onClipEvent(load){
    Mouse.hide()
    startDrag("this", true);
}
7 | Выбрать Control > Test Movie для использования собственного курсора.

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

Для подробной информации о методах объекта Mouse, см. ActionScript словарь.


Getting the mouse position

Создание интерактивности на ActionScript > Определение позиции мыши

Определение позиции мыши

Можно использовать _xmouse и _ymouse свойства для определения местонахождения позиции курсора в клипе. Каждая монтажная линейка (Timeline) имеет _xmouse и _ymouse свойство, возвращающее значение позиции мыши в собственной системе координат.

См. _xmouse и _ymouse свойства в основной линейке (Timeline) и линейке муви-клипа, перемещая курсор по клипу.

Следующее выражение можно поместить в любую линейку (Timeline) в _level0 клипа для получения _xmouse позиции в основной линейке:

x_pos = _root._xmouse;

Для определения позиции курсора внутри муви-клипа, используется его имя (instance name). Например, следующее выражение может быть помещено в любое место _level0 клипа для получения _ymouse позиции в муве-клипе myMovieClip:

y_pos = _root.myMovieClip._ymouse

Можно также определять позицию мыши внутри муви-клипа, используя _xmouse и _ymouse свойства в команде клипа, как это сделано ниже:

onClipEvent(enterFrame){
    xmousePosition = _xmouse;
    ymousePosition = _ymouse;
}

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

onClipEvent(mouseMove){
    x_pos = _root._xmouse;
    y_pos = _root._ymouse;
}

Для большей информации о _xmouse и _ymouse свойствах, см. соответствующие подразделы ActionScript Словаря.


Capturing keypresses

Создание интерактивности на ActionScript > Перехват нажатий клавиш

Перехват нажатий клавиш

Можно использовать методы предопределенного объекта Key для определения последней клавиши, которая была нажата пользователем. Чтобы использовать его методы, просто вызывайте объект, как сделано в следующем примере:

Key.getCode();

Можно получать любые десятичные (Dec) 1 коды или ASCII-значения нажатых клавиш:

Для получения Dec-кода последней нажатой клавиши, используется getCode метод.
Для получения ASCII-значения последней нажатой клавиши, используется getAscii метод.

Dec-код имеется у каждой физической клавиши на клавиатуре. Например, клавиша стрелки "влево" имеет Dec# 37. Используя Dec-код, можно гарантировать, что средства управления клипа будут одинаковыми на любой клавиатуре, независимо от языка или платформы.

ASCII (American Standard Code for Information Interchange) значения связаны с первыми 127 символами каждой кодовой таблицы. Они обеспечивают информацию о символе на экране. Например, символ "A" и символ "a" имеют различные значения ASCII.

Общее место для использования Key.getCode в параметрах onClipEvent. При прохождении через keyDown как параметр, скрипт получает команду проверить значение последней нажатой клавиши (фактически, нажатой в данный момент). В этом примере использовано Key.getCode для управления перемещением НЛО. Нажимайте на курсорные клавиши для передвижения НЛО внутри клипа.

Для создания управления клипом с клавиатуры:

1 | Решите какие клавиши использовать и определите их Dec-коды, используя один из следующих подходов:
См. список клавишных кодов на Клавиши клавиатуры и их кодовые значения: Краткий обзор.
Используйте константу объекта Key. (В списке инструментов, выбрать Objects (объекты), затем выбрать Key (клавиша). Константы перечислены заглавными буквами.)
Назначить следующее команды, затем выбрать Control > Test Movie и нажать нужную клавишу:
onClipEvent(keyDown) {
    trace(Key.getCode());
}
2 | Выделить муви-клип на рабочем поле.
3 | Выбрать Window > Actions.
4 | Дважды щелкнуть на onClipEvent команде в Actions категории списка.
5 | В окне параметров выбрать Key down событие.
6 | Дважды щелкнуть на if команде в Actions категории списка.
7 | Щелкнуть внизу окна в строке ввода условия (Condition), выбрать Objects; затем выбрать Key и getCode.
8 | Дважды щелкнуть на операторе эквивалентности (==) в категории Operators (Операторы) списка.
9 | Справа от оператора эквивалентности ввести Dec-код клавиши.
Ваш код будет выглядеть следующим образом:
onClipEvent(keyDown) {
    if (Key.getCode() == 32) {
    }
}
10 | Выбрать действие, которое будет выполняться, если нажата нужная клавиша.
Например, следующая команда при нажатии на клавишу пробела (Dec# 32), заставит сделать переход на следующий кадр основной линейки (Timeline):
onClipEvent(keyDown) {
    if (Key.getCode() == 32) {
        nextFrame();
    }
}

Для получения большей информации о методах объекта Key, см. соответствующий подраздел ActionScript Словаря.

Oт переводчика:

  1. Почему-то в родном доке Макромедия называет эти коды виртуальными, я заменил на более привычные десятичные (Decimal или Dec), чем они по сути и являются


Creating a scrolling text field

Создание интерактивности на ActionScript > Создание скроллинга в текстовом поле

Создание скроллинга в текстовом поле

Возможно использование scroll и maxscroll свойств для перемещения (скроллинга) текста в текстовом поле (ТП).

На панели Text Options (опции текста), можно назначать переменную любому текстовому полю и установить режим Вводимый или Динамический Текст. ТП действует как окно, в котором отображается значение этой переменной.

Каждая переменная, связанная с ТП, имеет свойства scroll и maxscroll. Можно использовать эти свойства для скроллинга текста в ТП. Свойство scroll возвращает номер наивысшей видимой в настоящий момент строки ТП, допускается как установка, так и считывание текущего значения свойства. Свойство maxscroll возвращает номер наивысшей видимой строки ТП, когда самая нижняя строка станет видимой. Значение этого свойства можно только считывать, но не задавать.

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

Вы можете обращаться к этим свойствам, используя dot (точечный) синтаксис:

textFieldVariable.scroll
myMovieClip.textFieldVariable.scroll
textFieldVariable.maxscroll
myMovieClip.textFieldVariable.maxscroll

Для создания скроллинга в текстовом поле:

1 | Создать ТП на рабочем поле.
2 | Выбрать Window > Panels > Text Options.
3 | Выбрать Input Text из всплывающего меню.
4 | Ввести имя переменной text в поле Variable (переменная).
5 Чтобы изменить размеры ТП, взять его нижнюю часть за правый угол и перетащить на новое место.
6 | Выбрать Window > Actions.
7 | Выделить первый кадр на основной линейке (Timeline) и назначить команду set variable, которая установит значение переменной text.
Никакой текст не появится в поле, пока не будет задано значение переменной. Поэтому, хотя Вы можете назначать эту команду любому кадру, кнопке или муви-клипу, это хорошая идея дать команду первому кадру на главной линейке, как показано здесь:
8 | Выбрать Window > Common Libraries > Buttons и перетащить кнопку на рабочее поле.
9 | Нажать Alt (Windows) или Option (Macintosh) и протащить эту кнопку, чтобы сделать ее копию.
10 | Выделить верхнюю кнопку и выбрать Window > Actions.
11 | Перетащить команду set variables из списка команд в окно скрипта на панели команд (Actions panel).
12 | Ввести text.scroll в строку Variable (переменная).
13 | Ввести text.scroll -1 в строку Value (значение) и включить Expression check box.
14 | Выделить нижнюю кнопку и назначить следующую команду set variables:
text.scroll = text.scroll+1;
15 | Выбрать Control > Test Movie для тестирования полученного результата.

Для большей информации о scroll и maxscroll свойствах, см. соответствующие подразделы ActionScript Словаря.


Setting color values

Создание интерактивности на ActionScript > Установка значений цвета муви-клипа

Установка значений цвета муви-клипа

Можно использовать методы предопределенного объекта Color для корректировки цвета муви-клипа. Метод setRGB задает шестнадцатеричное RGB (red, green, blue) значение цвета объекта, а метод setTransform устанавливает процент и значения смещений для красного, зеленого, синего и степень прозрачности альфа канала. В этом примере, setRGB изменяет цвет объекта на введенный пользователем.

Для изменения цвета футболки, введите шестнадцатеричное значение нового цвета (например, cc66ff, или 0033cc) в текстовом поле внизу и нажмите на кнопку.

Для использования объекта Color создайте объект муви-клип.

Устанавить значение цвета муви-клипа:

1 | Выделить муви-клип на рабочем поле, и выбрать Window > Panels > Instance.
2 | Ввести имя colorTarget в строке Name.
3 | Создать текстовое поле.
4 | Выбрать Window > Panels > Text Options и присвоить ему имя переменной input.
5 | Расположить кнопку на рабочем поле и выделить ее.
6 | Выбрать Window > Actions.
7 | Перетянуть команду set variable из левого списка в окно скрипта (Script window).
8 | В строке Variable (переменная), ввести c.
9 | В списке выбрать Objects, затем Color и перетянуть new Color в строку Value (значение).
10 | Включить Expression check box.
11 | Нажать на кнопку Target Path (находится в правом нижнем углу панели в виде перекрестия) и выбрать colorTarget. Нажать OK.
Код в окне скрипа будет выглядеть так:
on(release) {
    c = new Color(colorTarget);
}
12 | Перетянуть команду evaluate из списка в окно скрипта.
13 | Ввести c в строку Expression (выражение).
14 | В Objects категории списка выбрать Color; затем перетащить setRGB в строку Expression.
15 | Выбрать Functions и перетащить parseInt в строку Expression.
Код будет выглядеть так:
on(release) {
    c = new Color(colorTarget);
    c.setRGB(parseInt(string, radix));
}
16 | Для string аргумента команды parseInt, введите input.
Строка, которую нужно анализировать - значение переменной, введенное в доступное для редактирования текстовое поле.
17 | Для radix аргумента команды parseInt, введите 16.
radix - основание системы счисления, анализируемого аргумента string. В нашем случае - шестнадцатеричная (значения RGD для объекта Color). Код скрипта будет таким:
on(release) {
    c = new Color(colorTarget);
    c.setRGB(parseInt(input, 16));
}
18 | Выбрать Control > Test Movie для тестирования результата.

Для большей информации о методах объекта Color, см. соответствующие подразделы ActionScript Словаря.


Creating sound controls

Создание интерактивности на ActionScript > Создание средств управления звуком

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

Для управления звуком во флеш-клипе существует предопределенный объект Sound. Чтобы использовать его методы, сначала необходимо создать новый объект Sound, затем при помощи метода attachSound из библиотеки в клип вставляется звук.

Метод setVolume объекта Sound управляет уровнем (громкостью) звука, а метод setPan корректирует баланс правого и левого каналов. Следующий пример использует setVolume и setPan для управления уровнем громкости и балансом.

Изменение громкости и баланса осуществляется перемещением соответствующих ползунков 1.

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

1 | Выбрать File > Import для импорта звука в проект.
2 | Выделить звук в библиотеке и в меню библиотеки выбрать Options > Linkage.
3 | Выбрать опцию Export This Symbol и присвоить ей идентификатор mySound.
4 | Выделить первый кадр на основной линейке (Timeline) и выбрать Window > Actions.
5 | Перетащить команду set variable из левого списка в окно скрипта.
6 | Ввести s в строку Variable (переменная).
7 | Выбрать в списке Objects, затем Sound и перетащить new Sound в строку Value (значение).
В результате должен получиться следующий код:
s = new Sound();
8 | Дважды щелкнуть на команде evaluate из раздела Action, чтобы перейти на новую строку в окне скрипта.
9 | Ввести s в строке Expression (выражение).
10 | Из списка Objects выбрать Sound и перетащить attachSound в строку Expression (выражение).
11 | Ввести "mySound" в качестве аргумента-идентификатора (ID argument) команды attachSound.
12 | Опять дважды щелкнуть на команде evaluate для перехода на новую строку в окне скрипта.
13 | Ввести s в строке Expression (выражение).
14 | Из списка Objects выбрать Sound и перетащить команду start в строку Expression (выражение).
В результате должен получиться следующий код:
s = new Sound();
s.attachSound("mySound");
s.start();
15 | Выбрать Control > Test Movie для тестирования результата.

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

1 | Перетащить кнопку из библиотеки на рабочее поле.
2 | Выделить ее и выбрать Insert > Convert to Symbol. Создать элемент типа муви-клип.
Этот вновь созданный муви-клип, в своем первом кадре, будет содержать нашу кнопку.
3 | Выделить этот мувик и выбрать Edit > Edit Symbol.
4 | Выделить кнопку и выбрать Window > Actions.
5 | Ввести следующие команды:
on (press) {
    startDrag ("", false, left, top, right, bottom);
    dragging = true;
}
on (release, releaseOutside) {
    stopDrag ();
    dragging = false;
}
В команде startDrag параметры left, top, right и bottom являются переменными.
6 | Выбрать Edit > Edit Movie для возврата на основную линейку (Timeline).
7 | Выделить этот муви-клип в рабочем поле.
8 | Ввести следующие команды:
onClipEvent (load) {
    top=_y;
    left=_x;
    right=_x;
    bottom=_y+100;
}

onClipEvent(enterFrame){
    if (dragging==true){
        _root.s.setVolume(100-(_y-top));
    }
}
9 | Выбрать Control > Test Movie для тестирования результата.

Создание ползунка для управления балансом:

1 | Перетащить из библиотеки в рабочее поле новую кнопку.
2 | Выделить ее и выбрать Insert > Convert to Symbol. Создать еще один муви-клип.
3 | Выделить вновь созданный мувик и выбрать Edit > Edit Symbol.
4 | Выделить кнопку и выбрать Window > Actions.
5 | Ввести следующие команды:
on (press) {
    startDrag ("", false, left, top, right, bottom);
    dragging = true;
}
on (release, releaseOutside) {
    stopDrag ();
    dragging = false;
}
Как и в предыдущем случае команда startDrag имеет параметры left, top, right и bottom являющиеся набором переменных клипа.
6 | Выбрать Edit > Edit Movie для возврата к основной линейке.
7 | Выделить этот новый мувик.
8 | Ввести следующие команды:
onClipEvent(load){
    top=_y;
    bottom=_y;
    left=_x-50;
    right=_x+50;
    center=_x;
}

onClipEvent(enterFrame){
    if (dragging==true){
        _root.s.setPan((_x-center)*2);
    }
}
9 | Выбрать Control > Test Movie и наслаждаться полученным результатом.

Для большей информации о методах объекта Sound, см. соответствующие подразделы ActionScript Словаря.

Oт переводчика:

  1. В исходном доке не оказалось примера, пришлось сделать свой :)


Detecting collisions

Создание интерактивности на ActionScript > Обнаружение пересечений

Обнаружение пересечений

Можно использовать hitTest метод объекта MovieClip для обнаружение пересечений в клипе. Метод hitTest определяет пересекается ли объект с другим муви-клипом и возвращает булеановское (Boolean) значение true или false. Можно использовать параметры метода hitTest для определения x и y hit-координат (области нажатия) или использовать target path (путь до цели - прямее ничего не придумалось) другого муви-клипа как hit-область.

Каждый муви-клип во флеш-клипе есть копия (instance - образец) объекта MovieClip. Это позволяет вызывать методы объекта из любого мувика, как указано ниже:

myMovieClip.hitTest(target);

Возможно использование метода hitTest для проверки пересечения муви-клипа с отдельной точкой.

Подвигайте мышом по поверхности клипа. Результат работы hitTest смотрите в текстовом поле.

Также можно использовать метод hitTest для проверки пересечения двух мувиков.

Потаскайте сферу, результат работы hitTest см. в текстовом поле.

Проверка на пересечение муви-клипа и отдельной точки:

1 | Выделить мувик на рабочем поле.
2 | Выбрать Window > Actions для открытия панели команд.
3 | Дважды щелкнуть на команде trace расположенной в категории Actions списка команд.
4 | Поставить галочку в Expression check box и ввести следующее выражение в строку Expression (Выражение):
trace (this.hitTest(_root._xmouse, _root._ymouse, true);
Этот пример использует _xmouse и _ymouse свойства как x и y координаты hit-области и в режиме теста клипа отсылает полученный результат в окно Output. Можно положить в клип текстовое поле и отображать результаты в нем или анализировать их при помощи if оператора.
5 | Выбрать Control > Test Movie и подвигать мышом по клипу, чтобы увидеть результат теста.

Проверка на пересечение двух муви-клипов:

1 | Расположить два мувика на рабочем поле и присвоить им имена mcHitArea и mcDrag.
2 | Создать текстовое поле и в строке Variable (переменная) панели Text Options, присвоить ему имя status.
3 | Выделить mcHitArea и выбрать Window > Actions.
4 | Дважды щелкнуть на команде evaluate в списке команд.
5 | Ввести следующий код в строку Expression (выражение), выбирая нужные составляющие из верхнего списка: 1
_root.status=this.hitTest(_root.mcDrag);
6 | Выбрать команду onClipEvent и задать ей enterFrame как событие.
7 | Выделить mcDrag и выбрать Window > Actions.
8 | Дважды щелкнуть startDrag в списке команд.
9 | Включить опцию Lock Mouse to Center.
10 | Выбрать команду onClipEvent и задать ей событие Mouse down.
11 | Дважды щелкнуть stopDrag в списке команд.
12 | Выбрать onClipEvent и задать ей событие Mouse up.
13 | Запустить в режиме теста Control > Test Movie и подвигать мышом, чтобы посмотреть на результат.

Для получения большей информации о методе hitTest, см. соответствующий подраздел ActionScript Словаря.

Oт переводчика:

  1. Можно просто напечатать эту строку на клавиатуре, еще лучше скопировать с этой страницы и вставить через буфер обмена :)
    Совет: если вставлять через буфер, то не следует копировать закрывающие выражение точку с запятой (";"). Скриптовый флеш-редактор вставляет их автоматом.


Working with movie clips: Overview

Работа с мувиклипами > Работа с мувиклипами. Краткий обзор

Работа с мувиклипами. Краткий обзор

Мувиклип - это миниатюрный Flash-фильм: он имеет свои собственные свойства и временную шкалу (Timeline), помещённый в библиотеку (Library) в качестве символа, может многократно использоваться во Flash-клипе, каждая такая вставка называется элементом клипа. Мувиклипы могут вкладываться друг в друга. Чтобы различать такие элементы между собой, вы можете дать каждому своё имя.

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

Вы можете контролировать поведение мувиклипов, используя соответствующие команды (actions) и объектные методы MovieClip. Команды и методы могут относиться к каким-либо кадрам или кнопкам клипа (frame and button actions) или к определённым клипам-элементам (clip actions). Команды в клипе могут управлять любой временной линейкой во всём фильме. Чтобы реализовать эту возможность, следует указать соответствующий путь (target path). Он отражает местоположение интересующей Timeline в ролике.

Вы также можете превратить мувиклип в модуль со встроенным "интеллектом" ("smart" clip). Смарт-клип — мувиклип с ActionScript, который может быть перепрограммирован без использования панели Actions. Такие мувиклипы упрощают передачу объектов со сложной логикой на основе ActionScript от программиста дизайнеру.


Using actions and methods to control Timelines

Работа с клипами > Использование команд и методов для управления линейками > Привязка команд и методов

Привязка команд и методов

Команды и методы могут назначаться кнопке, кадру или клипу.

Чтобы привязать команду или метод к элементу мувиклип, необходимо использовать обработчик событий onClipEvent. Все команды, применённые к элементу, находятся внутри onClipEvent и выполняются после того, как он инициируется (срабатывает). Команда onClipEvent может быть инициирована событием линейки (например, загрузка ролика) либо событиями со стороны пользователя (например, щелчок мыши или нажатие клавиши). Например, onClipEvent(mouseMove) инициирует команду каждый раз при движении мыши.

Команда onClipEvent назначается элементу на сцене. Её события перечислены в ее вспомогательном окне параметров Event панели Actions.


Using actions and methods to control Timelines

Работа с клипами > Использование команд и методов для управления линейками > Загрузка и выгрузка дополнительных клипов

Загрузка и выгрузка дополнительных клипов

Вы можете использовать команду или метод loadMovie для воспроизведения дополнительных роликов, не закрывая Flash-плейер или для переключения клипов без загрузки нового HTML-документа. Можно использовать loadMovie и для посылки переменных CGI-скрипту, который генерирует SWF-файл в результате своего выполнения. Если фильм загружен, вы можете указать уровень или клип, в которые будет загружаться дополнительный ролик.

Команда и метод unloadMovie удаляют ролик, предварительно загруженный с помощью loadMovie. Выгрузка ролика посредством unloadMovie обеспечивает плавный переход между роликами и может освободить память, требуемую для Flash-плейера. Используйте команду loadMovie для решения следующих задач:

Воспроизведение последовательности рекламных баннеров в виде SWF-файлов с помощью вызова команды loadMovie в конце каждого из них для загрузки следующего
Разработка разветвлённого интерфейса, позволяющего пользователю выбирать среди нескольких различных SWF-файлов
Построение навигационного интерфейса с элементами управления в слое 0, загружающие другие слои. Загрузка слоёв позволяет осуществить более плавные переходы, чем тот же механизм, реализованный на основе смены HTML-страниц.


Using actions and methods to control Timelines

Работа с клипами > Использование команд и методов для управления линейками > Изменение позиции клипа и его вида

Изменение позиции клипа и его вида

Для изменения свойств клипа во время его воспроизведения можно использовать команду setProperty или написать выражение, присваивающее какое-либо значение требуемому свойству. Если вы загружаете клип в объект (target), загруженный клип наследует свойства указываемого клипа. Как только ролик загружен, вы можете изменить его свойства.

Некоторые свойства, называемые read-only (только чтение), имеют значения, которые можно только считывать, но не устанавливать. Вы можете задавать любые свойства, не входящие в эту группу. Следующее выражение управляет свойством _alpha символа wheel, являющегося потомком элемента car:

car.wheel._alpha = 50;

Кроме этого, можно записывать выражения, получающие значение того или иного свойства. Например, следующая строка получает значение свойства _xmouse на главной линейке и присваивает это значение свойству _x элемента customCursor:

onClipEvent(enterFrame){
    customCursor._x = _root._xmouse;
}

Можете также использовать функцию getProperty для получения свойств клипов.

Свойства _x, _y, _rotation, _xscale, _yscale, _height, _width, _alpha и _visible изменяются вместе с преобразованиями родительского клипа, также трансформируют клип и любой его дочерний клип. Свойства _focusrect, _highquality, _quality и _soundbuftime являются глобальными, они принадлежат только линейке в слое 0. Все остальные принадлежат каждому клипу или загруженному слою. Таблица, приведённая ниже, содержит все свойства клипа:
Свойства |  |  |
_alpha | _highquality | _totalframes | _xscale
_currentframe | _name | _url | _y
_droptarget | _quality | _visible | _ymouse
_focusrect | _rotation | _width | _yscale
_framesloaded | _soundbuftime | _x |
_height | _target | _xmouse |


Using actions and methods to control Timelines

Работа с клипами > Использование команд и методов для управления линейками > Перемещение клипов

Перемещение клипов

Можно использовать команду или метод startDrag для того, чтобы сделать клип перемещаемым во время воспроизведения. Например, использовать этот эффект для игр, функции drag-and-drop, настраиваемых интерфейсов, полос прокрутки и движков (sliders).

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

Для создания более сложных механизмов drag-and-drop можно обрабатывать у перемещаемого клипа свойство _droptarget. Например, необходимо проверить свойство _droptarget для того, чтобы убедится, что ролик был перемещён в какой-либо другой клип (например, клип "мусорная корзина"), и затем инициировать другую команду. См. Использование оператора "if" и Использование операторов для манипулирования величинами в выражениях.


Using actions and methods to control Timelines

Работа с клипами > Использование команд и методов для управления линейками > Дублирование и удаление клипов

Дублирование и удаление клипов

Можно создать или удалить элементы в виде мувиклипов во время воспроизведения вашего Flash-клип, используя duplicateMovieClip или removeMovieClip соответственно. Команда и метод duplicateMovieClip динамически создают новый элемент клипа, присваивая ему новое имя и задавая его глубину (depth) местонахождения. Скопированный таким образом клип всегда стартует с кадра 1, даже если клип-оригинал находился на другом кадре во время дублирования, и всегда расположен поверх всех определённых заранее клипов на текущей линейке. Переменные не копируются в клип-дубликат.

Чтобы удалить клип, созданный посредством duplicateMovieClip, воспользуйтесь removeMovieClip. Все копии будут также уничтожены, если удалить родительский клип.


Using actions and methods to control Timelines

Работа с клипами > Использование команд и методов для управления линейками > Присоединение мувиклипа

Присоединение мувиклипа

Можно взять копию мувиклипа из библиотеки и воспроизвести её в качестве части вашего клипа, используя метод attachMovie. Этот метод присоединяет (загружает) мувиклип из библиотеки к вашему и позволяет управлять им в дальнейшем по мере необходимости.

Для использования метода attachMovie присоединяемому клипу следует дать уникальное имя в окне диалога Symbol Linkage Properties.

Идентификация мувиклипа при присоединении:

1 | Выберите клип, который хотите присоединить, в соответствующем разделе библиотеки (movie's Library).
2 | В окне библиотеки выберите Linkage (связь) из меню Options.
3 | Далее в появившемся окне установите Linkage в положение Export This Symbol (экспорт символа).
4 | В окне диалога Symbol Linkage Properties в поле Identifier (идентификатор) введите имя клипа. Оно должно отличаться от имени символа в библиотеке. (IMHO не обязательно, может и совпадать, криминала в этом никакого нет - Прим.редактора)
5 | Нажмите OK.

Присоединение мувиклипа к другому клипу:

1 | В панели Actions задайте объект, к которому вы хотите присоединить клип.
2 | В списке доступных возможностей выберите объект MovieClip и затем метод attachMovie.
3 | Установите следующие аргументы:
В качестве idName укажите имя, введенное вами в поле Identifier диалогового окна Symbol Linkage Properties.
В качестве newName введите новое имя элемента для присоединяемого клипа; таким образом, вы сможете ссылаться на него в дальнейшем.
В качестве depth, введите номер слоя, на котором клип-дубликат будет подключаться к ролику. Каждый такой клип имеет свой порядковый номер загрузки в стек, начиная со слоя 0 как слоя с текущей линейкой. Присоединённые клипы всегда находятся поверх основного.
Например:
myMovieClip.attachMovie("calif", "california", 10 );


Creating smart clips

Работа с клипами > Создание смарт-клипов

Создание смарт-клипов

"Смарт" (умным) клипом называется клип с определёнными параметрами, которые могут быть изменены. Такие параметры затем передаются командам смарт-клипа, что влечёт изменение его поведения (работы).

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

Смарт-клипы очень полезны для передачи сложных Flash-элементов от программиста дизайнеру. Программист может писать команды в таком клипе с переменными, управляющими клипом и роликом. Дизайнер может затем изменять значения этих переменных в панели Clip Parameters без открытия панели Actions.

Вы можете использовать смарт-клипы для создания элементов интерфейса, таких как кнопок выбора (radio buttons), выпадающих меню (pop-up menus), tooltips, surveys, игр и avatars. Любой клип, который вы хотите использовать повторно, но найти ему другое применение без изменения скриптов, будет хорошим смарт-клипом.

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


Creating smart clips

Работа с клипами > Создание смарт-клипов > Определение параметров клипа

Определение параметров клипа

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

Определение параметров для клипа:

1 | Выберите символ клипа в вашей библиотеке клипов и сделайте одно из следующих действий для появления окна диалога Clip Parameters:
 | Щелчок по правой кнопке мыши (Windows) или Control-click (Macintosh), затем выберите Define Clip Parameters из контекстного меню.
 | Выберите Define Clip Parameters из меню Options справа вверху окна Library.
2 | Используйте управление в диалоговом окне Clip Parameters следующим образом:
 | Нажмите кнопку Плюс (+), чтобы добавить новую пару имя/значение или дополнительные параметры для выбранной пары.
 | Нажмите кнопку Минус (-), чтобы удалить пару имя/значение.
 | Используйте кнопки со стрелками для изменения порядка следования параметров в списке.
 | Выберите поле с помощью двойного щелчка мыши на нём и введите затем значение.
3 | В качестве Name (имя) введите уникальный идентификатор для параметра.
4 | В качестве Type (тип) выберите из выпадающего меню тип данных, которые будет содержать параметр:
 | Выберите Default (по умолчанию), чтобы использовать строковую или численную величину.
 | Выберите Array (массив) для динамического списка элементов, которые могут возрастать или уменьшаться.
 | Выберите Object (объект), чтобы декларировать несколько связанных элементов с именами и значениями, например, объект Point с элементами x и y.
 | Выберите List (список), чтобы ограничить выбор несколькими возможными вариантами, например, true или false, Красный, Серый или Синий.
5 | В качестве Value (значение) выберите из выпадающего меню значение параметра по умолчанию.
6 | Если вы хотите использовать настраиваемый интерфейс для панели Clip Parameters, сделайте одно из следующих действий:
 | Введите относительный путь к SWF-файлу настраиваемого интерфейса в поле Custom UI.
 | Нажмите на папку Custom UI и выберите SWF-файл интерфейса.
 | См. Создание настраиваемого интерфейса.
7 | В качестве описания (Description) введите примечания, которые будут появляться в панели Clip Parameters и описывать назначение параметра.
 | Вы можете включить любую информацию, которую считаете нужной, в поле Description. Например, объяснение используемых методов.
8 | Выберите Lock in Instance (закрыть символ) во избежание переименования параметров пользователем в панели Clip Parametersl.
 | Рекомендуется оставлять имена параметров закрытыми.
9 | Нажмите OK.


Creating smart clips

Работа с клипами > Создание смарт-клипов > Настройка параметров

Настройка параметров

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

onClipEvent(load){
    gotoAndStop(Frame);
}

Затем вы можете установить значение параметра Frame в панели Clip Parameters, чтобы изменить воспроизводимый кадр.

Установка параметров смарт-клипа:

1 | Выберите элемент смарт-клипа на сцене.
 | Смарт-клипы — это мувиклипы. Таким образом, только первый кадр будет отображён в момент создания исходника.
2 | Выберите Window > Panels > Clip Parameters, чтобы появилась панель Clip Parameters.
3 | В этой панели сделайте одно из следующих действий:
 | Двойной щелчок мыши на поле Value для выбора и введения значений для каждого параметра.
 | Если параметр был определён как List, появиться выпадающее меню.
 | Если был определён настраиваемый интерфейс, используйте его предусмотренные элементы.
4 | Выберите Control > Test Movie, чтобы увидеть изменение в поведении смарт-клипа.


Creating smart clips

Работа с клипами > Создание смарт-клипов > Создание настраиваемого интерфейса

Создание настраиваемого интерфейса

Настраиваемый интерфейс — это Flash-клип, позволяющий вам вводить значения, которые будут передаваться смарт-клипу. Такой интерфейс заменяет панель Clip Parameters.

Панель Clip Parameters с роликом настраиваемого интерфейса.

Тот же смарт-клип без настраиваемого интерфейса в панели Clip Parameters

Любые величины, вводимые вами с использованием настраиваемого интерфейса, передаются из панели Clip Parameters смарт-клипу через клип-посредник в таком интерфейсе. Позволяющий совершить такой обмен клип должен иметь имя элемента xch. Если настраиваемый интерфейс выбран в диалоговом окне Define Clip Parameters, элемент смарт-клипа передаёт заданные параметры клипу xch и любые новые величины, введённые с помощью такого интерфейса, копируются в xch и передаются обратно смарт-клипу.

Вам следует разместить клип xch на главной линейке ролика интерфейса и xch должен быт всегда загружен. Клип xch должен содержать только те значения, которые необходимо передать смарт-клипу. Он не может содержать графики, других клипов или выражений ActionScript, xch — это просто контейнер, через который передаются значения. Через клип xch вы можете предавать объекты верхнего уровня, например, Arrays (массивы) и Objects (объекты), но не вложенные массивы или объекты.

Создание настраиваемого интерфейса для смарт-клипа:

1 | Выберите File > New, чтобы создать новый Flash-ролик.
2 | Выберите Insert > New Symbol, чтобы создать клип для обмена данными.
3 | Создайте новый слой и назовите его "Exchange Clip" (клип для обмена данными).
4 | Выберите слой с "Exchange Clip" и переместите сам клип-посредник из окна библиотеки на сцену в кадр 1.
5 | Выберите этот клип на сцене, затем Window > Panels > Instance и введите имя xch.
6 | Создайте элементы интерфейса, которые будет использовать автор для настройки параметров. Например, выпадающее меню, кнопки выбора (radio buttons) или перемещаемые меню.
7 | Используйте команду set variable, чтобы копировать переменные и объектные значения в элемент xch.
Например, если кнопка используется в качестве элемента интерфейса, она может вызывать команду, которая устанавливает значение переменной vertical и передаёт его в xch:
on (release){
    _root.xch.vertical = true;
}
8 | Экспорт ролика в SWF-файл.

Чтобы использовать настраиваемый интерфейс SWF со смарт-клипом, вам необходимо связать их в диалоговом окне Define Clip Parameters библиотеки, которая содержит смарт-клип. Отличная идея сохранять SWF-файл в той же директории, что и FLA, содержащий смарт-клип. Если вы многократно используете смарт-клип в другом файле или передаёте смарт-клип другому разработчику, он и настраиваемый интерфейс SWF должны оставаться в таком же относительном друг-друга расположении.


About multiple Timelines

Работа с клипами > Иерархия линеек

Иерархия линеек

Любой Flash-клип имеет основную монтажную линейку (Timeline), расположенную на уровне 0 (level 0) во Flash-плейере. Можно использовать команду loadMovie для загрузки других Flash-клипов (SWF-файлов) во Flash-плейер на любой уровень над нулевым (например, уровень 1, уровень 2, уровень 15). Любой такой загружаемый клип имеет свою линейку.

Flash-клипы на любом уровне могут содержать на своей линейке мувиклипы (movie clips). Каждый такой клип, в свою очередь, имеет свою временную шкалу и также может включать в себя другие клипы, также имеющие свою собственную линейку. Все линейки клипов и уровни во Flash-плейере образуют иерархическую структуру, что позволяет легко манипулировать ими и управлять объектами вашего клипа.

Иерархия уровней и клипов во Flash-плейере

Во Flash, такая иерархия называется display list. Этот список можно просматривать в Movie Explorer (проводник) во время создания исходного файла (FLA) во Flash. Он отображается также и в Debugger (отладчик), если вы воспроизводите клип в режиме Test Movie, в автономном Flash-плейере или в Web-браузере.

Movie Explorer показывает иерархическую структуру линеек, называемую "display list"

Линейки во Flash-ролике - это объекты, имеющие свойства (properties) и методы (methods) встроенного объекта MovieClip. Все они связаны между собой в зависимости от их местоположения в display list. На вложенные линейки влияют изменения, применяемые к родительским линейкам. Например, если объект portland является дочерним по отношению к объекту oregon и вы измените характеристику _xscale объекта oregon, portland также претерпит изменения в масштабе.

Линейки могут обмениваться данными. Например, команда в последнем кадре одного клипа может вызвать воспроизведение другого клипа.


About multiple Timelines

Работа с клипами > Иерархия линеек > Иерархические связи линеек

Иерархические связи линеек

Когда вы размещаете элемент мувиклип на линейке другого клипа, возникает ситуация, в которой один клип, содержит в качестве элемента другой клип — в том случае первый мувик будет родительским (parent), второй дочерним (child). Главная линейка Flash-клипа является родительской для всех клипов на данном слое.

Взаимосвязи клипов по схеме parent-child образуют иерархическую структуру. Для лучшего её понимания рассмотрим подобную структуру на примере компьютера: жесткий диск имеет корневую директорию (или папку) и поддиректории. Корневая директория аналогична основной Timeline Flash-клипа: она является родительской для всех последующих структур. Поддиректории соответствуют мувиклипам (movie clips). Можно использовать подкаталоги для создания связанного контента (содержимого).

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

Например, можете создать Flash-ролик в виде машины, перемещающейся по сцене. Вы можете использовать символ клипа, представляющий автомобиль, и настроить анимацию движения (motion tween) для его перемещения.

Анимация перемещает клип машины на основной линейке

Перед нами изображение автомобиля сбоку, видны лишь два колеса. Если уж вы заставили автомобиль двигаться, стоит подумать о вращении его колёс. Вы делаете клип для колеса и создаёте два элемента этого клипа, называющиеся соответственно frontWheel и backWheel. Теперь вы помещаете колёса на линейку машины — не на главную линейку. Как потомки car, frontWheel и backWheel подвержены всем изменениям, вносимым в car. Это означает, что они будут двигаться вместе с автомобилем.

Элементы frontWheel и backWheel размещаются на линейке клипа car.

Чтобы заставить колёса вращаться, вы можете настроить анимацию на вращение символа колеса и, таким образом, заставить крутиться оба элемента (переднее и заднее колёса). Даже если вы измените frontWheel и backWheel, они будут продолжать находиться под влиянием анимации их родительского клипа car, колёса будут вращаться, а также двигаться вместе с родительским клипом car.

Символ колеса в режиме редактирования — Edit Symbol


About multiple Timelines

Работа с клипами > Иерархия линеек > Обмен сообщениями между линейками

Обмен сообщениями между линейками

Вы можете посылать сообщения между линейками. При этом одна линейка содержит команду (action), называемую controller (диспетчер), а вторая — команду, называемую target (цель). Вы можете назначить эту команду какому-либо кадру или кнопке на линейке, а если линейка является мувиклипом (movie clip), то непосредственно ему.

Для того чтобы указать определённую линейку, вы можете использовать команды из категории Actions или методы объекта MovieClip из категории Objects в панели Actions. Например, вы можете использовать команду duplicateMovieClip для указания и копирования мувиклипа в качестве элемента во время воспроизведения вашего ролика.

Для указания линейки используйте команды из категории Actions.

Для указания линейки используйте методы объекта MovieClip.

Для выполнения нескольких команд по отношению к выбранному объекту можете использовать команду with. Подобно состоянию with в JavaScript, команда with позволяет при однократной ссылке на определённую линейку, применить к ней несколько команд, при этом нет необходимости указывать каждый раз (в каждой команде) интересующую вас линейку.

Также можете использовать команду tellTarget для достижения этой цели.

Для того чтобы осуществить взаимодействие между линейками, сделайте следующее:

Введите имя элемента для клипа, который вы хотите указать.
Чтобы присвоить имя клипу-элементу, используйте панель Instance (Window > Panels > Instance). Линейка, загруженная на соответствующий уровень, использует номер этого уровня в качестве имени элемента, например, _level6.
Введите путь (target path) к выбранному элементу в панели Actions.
Вы можете сделать это вручную или использовать диалоговое окно Insert Target Path. См. Определение пути.

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


About multiple Timelines

Работа с клипами > Иерархия линеек > Абсолютные и относительные пути

Абсолютные и относительные пути

Путь (target path) — это указатель на интересующую вас линейку. Список (disply list) линеек во Flash очень похож на иерархию файловой структуры Web-сервера.

Movie Explorer отображает список клипов во время создания исходного FLA-файла (Authoring Mode).

Как и в примере с Web-сервером, каждая линейка во Flash может быть адресована двумя способами: с помощью абсолютного или относительного путей. Абсолютный путь каждого элемента никогда не меняется, независимо от того, какая линейка вызывает текущую команду; например, абсолютный путь к элементу california всегда _level0.westCoast.california. Относительный путь всегда зависит от того, откуда он строится; например, относительный путь к california из sanfrancisco будет _parent, но из portland, он станет _parent._parent.california.

Замечание: Для более подробной информации о Movie Explorer, см. Flash Help.

Абсолютный путь начинается с имени слоя, на который загружен клип. Его продолжение можно проследить с помощью выводимого списка (display list) вплоть до достижения указанного элемента.

Первый открываемый ролик во Flash-плейере загружается на нулевой слой (level 0). Необходимо назначать каждому дополнительно загружаемому ролику номер слоя. Указывающее имя (target name) для слоя: _levelX, где X — номер слоя, на который загружается клип. Например, первый открываемый во Flash-плейере ролик называется _level0, ролик загруженный на третий слой — _level3.

В следующем примере два ролика загружены в плейер: TargetPaths.swf на слой 0 и EastCoast.swf на слой 5. Слои указываются в отладчике (Debugger), слой 0 имеет обозначение _root.

Отладчик показывает абсолютные пути всех линеек в листе в режиме Test-Movie.

Элемент всегда имеет один и тот же абсолютный путь, вызывается ли он командой от элемента того же слоя или командой из другого слоя. Например, элемент bakersfield в слое 0 всегда имеет следующий абсолютный путь в дот-синтаксисе:

_level0.california.bakersfield

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

_level0/california/bakersfield

Для взаимодействия между роликами на разных слоях нужно указывая путь, использовать имя слоя. Например, элемент portland будет адресовать элемент atlanta следующим образом:

_level5.georgia.atlanta

В точечном синтаксисе можно использовать ключевое слово _root для ссылки на главную линейку текущего уровня. Для главной линейки или _level0, обозначение _root соответствует _level0, если указывается клипом, также расположенном на _level0. Для ролика, загруженного в _level5, _root соответствует _level5 , если указывается клипом, также размещённом в слое 5. Например, команда вызываемая элементом southcarolina может использовать следующий абсолютный путь для указания элемента florida:

_root.eastCoast.florida

В слэш-синтаксисе можете использовать / для ссылки на главную линейку текущего слоя, так, как сделано в этом случае:

/eastCoast/florida

В дот-синтаксисе либо в режиме Absolute либо в Relative можно использовать те же правила формирования пути, чтобы идентифицировать переменную на линейке или свойство объекта. Например, в следующем выражении имени элемента form присваивается значение "Gilbert":

_root.form.name = "Gilbert";

В слэш-синтаксисе либо в режиме Absolute либо в Relative идентификация переменной осуществляется с помощью двоеточия (:) перед её именем:

/form:name = "Gilbert";

Относительный путь зависит от взаимосвязей между управляющей и указываемой линейками. Можете использовать относительный путь для повторного использования команд, потому что одна и та же команда может указывать на разные линейки, в зависимости от расположения команды. Относительные пути могут адресовать объекты только внутри одного определённого уровня во Flash-плейере; они не могут адресовать ролики загруженные в другие уровни. Например, нельзя использовать относительный путь в команде в слое _level0, указывающей на уровень _level5.

В дот-синтаксисе можете использовать ключевое слово this в относительном пути для адресации текущей линейки. Также можно использовать _parent для обозначения родительской линейки по отношению к текущей линейке. _parent может использоваться многократно для того, чтобы подняться на одну ступень вверх в иерархии клипов внутри одного уровня Flash-плейера. Например, _parent._parent управляет клипом, расположенным на две ступени выше в иерархической структуре.

В следующем примере каждый город (charleston, atlanta и staugustine) является дочерним по отношению к элементу "штат" и каждый штат (southcarolina, georgia и florida) — потомок элемента eastCoast.

Movie Explorer показывает отношения клипов "родители-дети".

Команда на линейке элемента charleston может использовать следующий путь для указания элемента southcarolina:

_parent

Чтобы указать элемент eastCoast из команды в charleston, возможен следующий относительный путь:

_parent._parent

В слэш-синтаксисе для перехода на одну ступень иерархии вверх, используется две точки (..). Чтобы указать eastCoast из команды в charleston, относительный путь примет вид:

../..

Чтобы указать на элемент atlanta из команды на линейке charleston, в дот-синтаксисе относительный путь будет следующим:

_parent._parent.georgia.atlanta

Относительные пути полезны для многократного использования скриптов. Например, можете подключить к клипу скрипт, увеличивающий до 150% геометрические размеры клипа, расположенного на одну ступень выше текущего:

onClipEvent (load) {
    _parent._xscale = 150;
    _parent._yscale = 150;
}

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

Для более подробной информации об адресации и точечном синтаксисе см. Главу 2, "Написание скриптов с помощью ActionScript".

Для более подробной информации о дот-синтаксисе (Dot) и слэш-синтаксисе (Slash) см. Использование синтаксиса ActionScript.


About multiple Timelines

Работа с клипами > Иерархия линек > Определение пути

Определение пути

Чтобы управлять клипом или подгруженным роликом, необходимо задать путь к нему. При этом клип, как элемент, должен иметь имя. Указать на объект и задать к ему путь можно несколькими способами:

Путь можно ввести посредством кнопки Insert Target Path и окна диалога в панели Actions.
Путь можно указать вручную непосредственно в вашем скрипте.
Ещё одной возможностью является создание определённого выражения, используя ссылку на клип или предопределённые функции targetPath и eval.

Использование окна диалога Insert Target Path:

1 | Выберите клип, кадр или кнопку, к которым хотите привязать действие или команду.
2 | Выберите Window > Actions для отображения панели Actions.
3 | В списке доступных возможностей выберите команду из раздела Actions или метод из категории MovieClip в разделе Objects.
4 | Введите путь в поле Target или Location данного скрипта.
5 | Нажмите на кнопку Insert Target Path (в виде перекрестья) в правом нижнем углу панели Actions, откроется окно диалога Insert Target Path.
6 | В окне диалога Insert Target Path выберите режим синтаксиса: Dots (точки, по умолчанию) или Slashes (слэши).
7 | Выберите Absolute (абсолютный) или Relative (относительный) способ задания пути.
 | См. Абсолютные и относительные пути.
8 | Задайте требуемый путь одним из следующих способов:
 | Выберите клип в списке Insert Target Path.
 | Введите путь вручную в поле Target, используя абсолютный или относительный способы его указания и дот-синтаксис.
9 | Завершите операцию нажатием кнопки OK.

Ввод пути вручную:

Выполните п.п. 1-4, описанные выше и введите абсолютный или относительный путь непосредственно в панели Actions.

Использование выражения в качестве пути:

1 | Выполните п.п. 1-4, описанные выше.
2 | Выполните одно из следующих действий:
Введите вручную ссылку в качестве пути. Ссылка обрабатывается для определения необходимого пути. Вы можете использовать ссылку в качестве параметра для команды with. В примере ниже переменная index обрабатывается и умножается на 2. Полученный результат используется как имя клипа внутри элемента Block, вызванного для воспроизведения:
with (Board.Block[index*2]) {
    play();
}
В разделе Functions в списке доступных инструментов, выберите функцию targetPath.
Функция targetPath преобразует ссылку на клип в строку, которая может использоваться такими командами, как tellTarget.
Ниже приведён пример, в котором функция targetPath преобразует ссылку Board.Block[index*2+1] в строку:
tellTarget (targetPath (Board.Block[index*2+1])) {
    play();
}
Предыдущий пример эквивалентен следующему с использованием слэш-синтаксиса:
tellTarget ("Board/Block:" + index*2+1)) {
    play();
}
В разделе Functions выберите функцию eval.
Функция eval преобразует строку в ссылку на клип, которая может быть использована в качестве пути такими командами, как with.
Следующий скрипт обрабатывает переменную i, добавляет её к строке "cat" и присваивает полученное значение переменной x. В этом случае x — ссылка на клип-элемент, которая может вызвать объектные MovieClip:
x = eval ("cat" + i);
x.play();
Вы также можете использовать функцию eval для непосредственного вызова методов, как здесь:
eval ("cat" + i).play();.


Using actions and methods to control Timelines

Работа с клипами > Использование команд и методов для управления линейками

Использование команд и методов для управления линейками

Вы можете использовать определённые команды и методы объекта MovieClip, чтобы указать (target) клип или загруженный слой, или провести необходимые действия по отношению к ним. Например, команда setProperty присваивает свойству (например, _width) линейки какое-либо значение (например, 100). Некоторые объектные методы MovieClip дублируют функцию всех команд, указывающих ту или иную линейку. Существуют также дополнительные методы, такие как hitTest и swapDepths. В случае использования вами команды или метода, адресуемая линейка должна быть загружена во Flash-плейер, когда эта команда или метод вызываются.

Следующие команды могут адресовать клипы: loadMovie, unloadMovie, setProperty, startDrag, duplicateMovieClip и removeMovieClip. Чтобы использовать эти команды, вы должны ввести путь в параметр Target используемой команды для указания объекта, к которому данная команда применяется. Некоторые из этих команд могут адресовать клипы или слои, остальные же — только клипы.

Ниже перечисленные объектные методы MovieClip могут управлять клипами или загруженными слоями и не имеют эквивалентных команд: attachMovie, getBounds, getBytesLoaded, getBytesTotal, globalToLocal, localToGlobal, hitTest и swapDepths.

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

Для более подробной информации о методах объекта MovieClip и информации о каждой команде см. Главу 7 "Словарь ActionScript".


Using actions and methods to control Timelines

Работа с клипами > Использование команд и методов для управления линейками > Методы или команды?

Методы или команды?

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

myMovieClip.play();
parentClip.childClip.gotoAndPlay(3);

В первой строке метод play включает воспроизведение элемента myMovieClip. Во второй строке метод gotoAndPlay переносит "воспроизводящую головку" элемента childClip (дочерний по отношению к элементу parentClip) в третий кадр и продолжает воспроизведение с этого места.

Команды, управляющие линейкой, имеют параметр Target, в котором указывается путь. Например, в следующем скрипте команда startDrag указывает на элемент customCursor и делает возможным его перемещение (draggable):

on(press){
    startDrag("customCursor");
}

Если вы используете метод, он вызывается после указания пути к элементу. Например, следующее выражение реализует эту же возможность (startDrag) :

customCursor.startDrag();

Выражения, записанные с помощью методов MovieClip обычно более краткие, потому что не требуют команды tellTarget. Не рекомендуется использовать команду tellTarget по причине её несовместимости со стандартом ECMA-262.

Например, для того чтобы начать воспроизведение клипа myMovieClip посредством объектных методов MovieClip, вы используете следующий код:

myMovieClip.play();

Приведённый ниже код проделывает ту же операцию с помощью команды tellTarget:

tellTarget ("myMovieClip") {
    play();
}


Using actions and methods to control Timelines

Работа с клипами > Использование команд и методов для управления линейками > Использование нескольких методов или команд для определённой линейки

Использование нескольких методов или команд для определённой линейки

Вы можете использовать команду with для однократной адресации того или иного клипа и затем выполнять целые серии команд по отношению к этому клипу. Действие команды with распространяется на все объекты ActionScript (например, Array (массив), Color (цвет) и Sound (звук)) за исключением клипов (movie clips). Команда tellTarget похожа на команду with. Однако tellTarget не работает со всеми объектами ActionScript и несовместима с ECMA-262.

В качестве параметра команды with выступает объект. Заданный вами объект добавляется в конец пути. Все команды внутри тела команды with выполняются только по отношению указанного пути или области (scope). Например, в приведённом ниже скрипте на основной линейке команде with передаётся объект donut.hole , чтобы изменить характеристику hole:

with (donut.hole){
    _alpha = 20;
    _xscale = 150;
    _yscale = 150;
}

Это то же самое, как если бы выражения внутри команды with вызывались непосредственно с линейки элемента hole.

В следующем примере заметьте "экономичность" использования команды with и методов MovieClip для выполнения нескольких инструкций:

with (myMovieClip) {
    _x -= 10;
    _y += 10;
    gotoAndPlay(3);
}

Для более подробной информации о команде tellTarget см. Flash Help.


Интеграция Flash с веб-приложениями: Обзор

Интеграция Flash с веб-приложениями > Интеграция Flash с веб-приложениями: Обзор

Интеграция Flash с веб-приложениями: Обзор

Flash-клипы могут обмениваться (отсылать и получать) информацией с удаленными файлами. Для отсылки и получения переменных используется команда loadVariables или, если требуется только отослать данные - getURL. Для загрузки другого Flash-клипа в текущий, используется команда loadMovie. Для отсылки и получения XML данных, используются XML или XMLSocket объекты. Можно также организовывать XML данные при помощи разнообразных методов XML объекта.

Кроме того, можно создавать Flash-формы, собранные из обычных интерфейсных элементов, таких как тестовые поля (text fields) и всплывающие окошки (pop-up menus), и использовать их для сбора информации и отсылки данных серверным приложениям.

Если же вспомнить про все возможности Flash, мы увидим что он позволяет обмениваться данными не только с удаленными файлами и серверными приложениями, но и с HTML окружением (ява скриптом) на клиентской машине. Позднее мы рассмотрим способы отсылки и получения данных из яваскрипта, причем рассмотрим не только устаревший метод fscommand, но и прямые вызовы яваскрипта из Flash-клипа c помощью команды getURL. 1

От редактора:

  1. Насчет устаревшего метода и прямых вызовов переводчик добавил от себя и я с ним согласен :)


Creating forms

Интеграция Flash с веб-приложениями > Создание форм > Проверка введенных данных

Проверка введенных данных

Бывают случаи, когда следует проверять информацию, которую вводят пользователи. Например, вы не хотите чтобы пользователи вводили текст в окне ввода телефонного номера. Используйте ряд команд set variable в комбинации с for и if, чтобы проверять корректность введенных данных.

Следующий пример проверяет является ли введенная строка номером, и, если она оказалась номером, скрипт проверяет, записан ли этот номер в формате ###-###-#### или нет. Если данные правильные, появляется сообщение "Good, this is a valid phone number!" (это верный номер) а если неправильная, то скрипт выводит сообщение "This phone number is invalid!" (этот номер не верен!).

Чтобы использовать этот скрипт в ролике, создайте два текстовых поля и укажите "Input" в панели Text Options для каждого из полей. Назначьте переменную phoneNumber одному текстовому полю, а переменную message другому. Назначьте следующие команды кнопке рядом с текстовыми полями:

on (release) {
    valid = validPhoneNumber(phoneNumber);
    if (valid) {
        message = "Good, this is a valid phone number!";
    } else {
        message = "This phone number is invalid!";
    }
    function isdigit(ch) {
        return ch.length == 1 && ch >= '0' && ch <= '9';
    }
    function validPhoneNumber(phoneNumber) {
        if (phoneNumber.length != 12) {
            return false;
        }
        for (var index = 0; index < 12; index++) {
            var ch = phoneNumber.charAt(index);
            if (index == 3 || index == 7) {
                if (ch != "-") {
                    return false;
                }
            } else if (!isdigit(ch)) {
                return false;
            }
        }
        return true;
    }
}

Чтобы отослать данные, создайте кнопку, которая выполняет команды подобные этим: (Замените аргументы getURL аргументами соответствующими вашему ролику

on (release) {
    if (valid) {
        getURL("http://www.webserver.com", "_self", "GET");
    }
}

Для дополнительной информации смотрите команды set, for и if в Главе 7, "Словаря ActionScript"


Sending messages to и from the Flash Player

Интеграция Flash с веб-приложениями > Отсылка и прием сообщений Flash Player'ом.

Отсылка и прием сообщений Flash Player'ом.

Чтобы посылать сообщения из Flash-ролика среде, в которой он находится (например, Веб-броузеру или автономному Flash-Player), вы можете использовать команду fscommand. Это позволяет вам расширить возможности вашего ролика используя возможности хоста. Например, вы можете послать команду fscommand некоторой функции JavaScript, на HTML странице, которая откроет новое окно броузера с указанными свойствами. 1

Для контроля ролика в Flash Player'e из скриптовых языков броузера, как например JavaScript, VBScript и MicroSoft JScript вы можете использовать методы и функции Flash Player'a которые отсылают сообщения из среды хоста в Ролик Flash. Например, вы можете сделать ссылку на HTML странице, которая переводит воспроизведение вашего клипа на определенный кадр.

От переводчика:

  1. На данный момент существует альтернатива fscommand, которая работает в большем числе браузеров и позволяет передать среде окружения более одного параметра за один раз- это прямые вызовы яваскриптовых функций командой getURL с синтаксисом

     getURL ("javascript:functionname(params,morepareams)");

    или

     getURL ("javascript:functionname()");

    Для использования прямых вызовов яваскрипта не нужно использовать шаблон публикации от fscommand. HTML код обеспечивающий работу прямых вызовов яваскрипта отличается от Flash Only (default) (файл Default.html в папке HTML) только присутствием swLiveConnect=true и NAME=movieID внутри тега Embed. Можно создать собственный шаблон публикации для таких случаев, просто скопировав все содержимое Default.html и добавив swLiveConnect=true NAME=$TI в тег embed (хотя в принципе еще можно слегка изменить строку $TTFlash Only (Default) к примеру на $TTFlash and JavaScript чтобы не путаться :)


Sending messages to и from the Flash Player

Интеграция Flash с веб-приложениями > Отсылка и прием сообщений Flash Player'ом. > Использование fscommand и взаимодействие Flash c JavaScript

Использование fscommand и взаимодействие Flash c JavaScript.

Использование команды fscommand позволяет послать сообщение к среде окружения Flash фильма. В случае исполнимых (.exe для PS и .hqx для MAC) файлов созданных во Flash (обычно их называют прожекторами) средой окружения является операционная система, а в случае .swf файлов вставленных в HTML страницу, средой окружения является Ява-Скрипт. И если применение действия fscommand в прожекторах вполне оправданно (ему просто нет альтернативы), то использование fscommand для общения с яваскриптом является не более, чем никому не нужным пережитком прошлого, который Макромедия использует по инерции еще со времен Flash2 и делает вид что не замечает существования более простой и функциональной альтернативы - прямого вызова яваскрипта через команду GetURL. Команда fscommand имеет два параметра: command и arguments. При посылке сообщений из прожектора, можно использовать только несколько предопределенных значений параметра command. Кроме того, все значения параметра arguments (кроме случая использования command "exec") тоже предопределены. Например, после нажатия кнопки, следующая команда разворачивает окошко прожектора на полный экран:

on(release){
    fscommand("fullscreen", "true");
}

В таблице указаны значения, которые вы можете использовать в качестве параметров команды fscommand для управления воспроизведением клипа в автономном Flash Player. (запущен прожектор)

Команда | Аргументы | Результат
quit | Нет | Закрывает прожектор.
fullscreen | true или false | Если true, то прожектор разворачивается на полный экран Если false, то прожектор сворачивается обратно к стандартному размеру.
allowscale | true или false | Если false, то прожектор воспроизводит ролик всегда в стандартном размере и не изменяет его масштаб. Если true, то прожектор будет проигрывать ролик в масштабе 100% от своего собственного размера.
showmenu | true или false | Если true, то в контекстном меню отображаются все пункты. Если false, то убираются все пункты меню, кроме "About Flash Player".
exec | Путь к приложению | Выполняет приложение внутри прожектора. Для вызова исполнимых файлов с параметром, например file.exe /s -e нужно войти в "expert mode" и заменить все пробелы в выражении табуляцией (кнопка TAB :)

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

Команда fscommand вызывает JavaScript-функцию moviename_DoFSCommand в HTML странице которая включает ролик, где moviename это имя ролика. Если Flash Player назначен имени myMovie, вызванная JavaScript функция будет myMovie_DoFSCommand.

Чтобы использовать команду fscommand для открытия окна сообщения между роликом и HTML страницей через JavaScript, надо:

1 | На HTML странице, которая содержит ролик добавить следующий JavaScript-код:
function theMovie_DoFSCommand(command, args) {
    if (command == "messagebox") {
        alert(args);
    }
}
Если вы публикуете ваш ролик, используя Flash с FSCommand-шаблоном, то этот код вставляется автоматически. Имя ролика и ID атрибуты будут именем файла. Например, для файла myMovie.fla, атрибуты будут установлены в myMovie.
Для дополнительной информации смотрите Help к Программе Flash.
2 | В ролике, добавьте команду fscommand кнопке:
fscommand("messagebox", "This is a message box invoked from within Flash.")
Вы также можете использовать выражения в качестве параметров команды fscommand, например:
fscommand("messagebox", "Hello, " & name & ", welcome to our Web site!")
3 | Выберите File > Publish Preview > HTML чтобы протестировать ролик.

Команда fscommand также может посылать сообщения программе Macromedia Director, которые представлены как строки, события или выполнимый lingo-код. Если сообщение является строкой или событием, вы должны написать Lingo-код для получения указаний из команды fscommand и выполнения их. Для дополнительной информации смотрите сайт Direct Support Center.

В Visual Basic, Visual C++ и других программах, которые используют ActiveX, fscommand посылает VB-событие в виде двух строк и оно может быть обработано этими языками программирования. Для дополнительной информации смотрите сайт Flash Support Center.


Sending messages to и from the Flash Player

Интеграция Flash с веб-приложениями > Отсылка и прием сообщений Flash Player'ом > О методах Flash Player'a

О методах Flash Player'a.

Вы можете использовать методы Flash Player'a для управления клипом с помощью скриптовых языков броузера, например JavaScript и VBScript. Так же как и с другими методами, вы можете использовать эти методы для отправки вызовов в ролики из скриптовой среды (не ActionScript). Каждый метод имеет свое имя, а в большинстве методов можно указывать параметры. В параметре указывается значение, с которым работает метод. Вычисление, выполняемое некоторыми методами возвращает значение, которое может быть использовано скриптовой средой.

Существуют две технологии, которые обеспечивают взаимодействие между броузером и Flash Player'ом : LiveConnect (Netscape Navigator 3.0+ на системе Windows 95/98/2000/NT или Power Macintosh) и ActiveX (Microsoft Internet Explorer 3.0+ на системе Windows 95/98/2000/NT). Хотя технологии скриптования для разных броузеров и языков похожи, существуют дополнительные свойства и события, доступные для использования только в технологии ActiveX.

Дополнительную информацию, включая полный список методов скриптования смотрите на сайте Flash Support Center.


Обмен (отсылка и получением) информацией с удаленными файлами

Интеграция Flash с веб-приложениями > Обмен информацией с удаленными файлами

Обмен (отсылка и получением) информацией с удаленными файлами

Flash-клип это окно для сбора и отображения информации и он во многом похож на HTML страницу. Но Flash-клипы, в отличие от HTML страниц, могут постоянно обновляться, оставаясь загруженными в браузер, без необходимости обновления окна браузера. Вы можете использовать Flash-команды и методы объектов для отсылки и получения информации от серверных скриптов, текстовых файлов и XML-файлов.

Серверные скрипты могут запрашивать разнообразную информацию из баз данных что позволяет производить обмен информацией между базой данных и Flash-клипом (например, в настоящее время на http://polar-lights.com/en/ производится разработка расширения Flash2Databases для общения флеша с базами данных - Прим. переводчика). Серверные скрипты могут быть написаны на разных языках, причем наиболее предпочтительными и современными языками являются PHP (прямой наследник Perl) и ASP (Microsoft Active Server Pages) несколько более устаревший, но могучий Perl все еще не теряет актуальности, а более редкими но мощными и интересными языками являются JSP (Java Server Pages) и особенно удобный и простой для разработчика CFM (Allare ColdFusion).

Хранение информации в базах данных и динамическая подгрузка ее во Flash-клип позволяет создавать Flash-страницы с динамическим и персонализированным содержанием. Например, можно создать доску объявлений, чат, персональный профайл для пользователя или "shopping cart" (корзину покупок), которая будет помнить все покупки клиента, что может помочь в определении его предпочтений.

Вы можете использовать некоторые команды Actionscript и методы объектов для передачи информации внутрь и за пределы Flash-клипа. Каждая команда и метод могут использовать свой протокол для передачи информации, каждый из которых, в свою очередь, может требовать определенной разметки (формата) передаваемой информации.

Команды getURL, loadVariables и loadMovie используют HTTP или HTTPS протокол для посылки информации в кодированном формате URL.

Методы XML.send, XML.load и XML.sendandLoad используют HTTP или HTTPS протокол для посылки информации, как XML.

Методы XMLSocket.connect и XMLSocket.send создают и используют a TCP/IP сокет и соединение для посылки информации, как XML.

О безопасности

Во время воспроизведения Flash-клипа в браузере, можно загрузить данные в этот клип только из файла на сервере в том же субдомене. (Это, по замыслу Макромедии, должно было запретить Flash-клипам даже думать о попытках загрузить информацию с чужих серверов. Тем не менее все существующие на данный момент (21.09.2000) Flash-плееры для всех браузеров позволяют загружать во Flash-клип SWF-файлы с любого другого сервера по команде Load Movie. - Прим.переводчика)

Для определения субдомена URL состоящего из одного или двух компонентов, используется имя домена:
Domain | Subdomain
http://macromedia | macromedia
http://macromedia.com | macromedia.com

Для определения субдомена URL состоящего из более чем двух компонентов, удаляют верхний уровень:
Domain | Subdomain
http://x.y.macromedia.com | y.macromedia.com
http://www.macromedia.com | macromedia.com

Следующий график показывает как Flash плеер определяет разрешить или нет HTTP запрос:

Используя XMLSocket объект для создания сокет-соединения с сервером, нужно использовать порт с номером 1024 или выше. (Порты с меньшими номерами обычно используются стандартными вещами типа Telnet, FTP, World Wide Web или Finger.)

Flash-клипам доступны все стандартные возможности браузеров в части HTTP и HTTPS защищенных соединений. По существу, Flash предоставляет ту же защищенность, что доступна при применении стандартного HTML протокола. Нужно следовать тем же правилам, которым обычно следуют при создании страниц с функцией защищенного соединения. Проще говоря команда LoadVariables произведенное из Flash-клипа (безразлично с передачей переменных или нет) оказывает точно такое же воздействие на сервер как и загрузка соответствующего скрипта или файла в стандартное окно браузера (с передачей тех же переменных и тем же методом).

Для защиты паролем чего-либо, используйте текстовое поле для запроса пароля от пользователя. Введенное значение можно отправить на сервер командой loadVariables или методом XML.sendandLoad, указав в свойствах HTTPS URL и метод POST. И уже на сервере можно будет проверить пароль и произвести соответствующие действия - чаще всего применяется генерация ответа от сервера в виде понятном для Flash (например var=something&var2=another& для случая LoadVariables). Полученные от сервера данные можно обработать внутри Flash-клипа и произвести какие-либо действия в зависимости от полученной информации. Другие методы обработки паролей (например проверка внутри Flash-клипа) не могут обеспечить сколько-нибудь стойкой защиты.

Проверка загруженности данных

Каждая команда и метод загружающие данные во Flash-клип (кроме XMLSocket.send) является асинхронным, т.е. результаты этого действия возвращаются через неопределенное время.

Перед тем как использовать полученные из удаленного источника данные во Flash-клипе, необходимо проверить, загружены ли эти данные или еще нет. Например, нельзя использовать команду LoadVariables и манипулировать полученными значениями в одном ключевом кадре. В следующем примере нельзя использовать переменную lastFrameVisited, если она загружается из файла myData.txt. Более того, ее нельзя использовать и в последующих кадрах до тех пор пока не будет полной уверенности в том, что загрузка данных из файла myData.txt завершилась. Короче говоря, этот скрипт написан неправильно.

loadVariables("myData.txt", 0);
gotoandPlay(lastFrameVisited);

Каждая команда и метод требуют использования специфической техники проверки загруженности данных. При использовании команд loadVariables или loadMovie можно загрузить информацию в символ типа movie clip и использовать событие data в контейнере действия onClipEvent. Замечательным свойством Flash5 является тот факт, что команда loadVariables при загрузке переменных в Target (в Movie clip, а не в Level), событие onClipEvent(data) происходит только после окончания загрузки последней переменной. Если же загружать переменные из отдельного .swf файла командой loadMovie (например при загрузке данных с другого домена), событие onClipEvent(data) происходит после загрузки каждого фрагмента этого .swf файла (т.е. обычно несколько раз).

Например, кнопка со следующей командой загружает переменные из файла myData.txt в символ типа movie clip с именем (Name в окошке Instance/Instance) loadTargetMC (причем этот movie clip расположен в основной Timeline):

on(release){
    loadVariables("myData.txt", _root.loadTargetMC);
}

Если какая-либо команда внутри символа loadTargetMC использует переменную lastFrameVisited, загруженную из внешнего файла myData.txt, то следующее действие будет выполнено только после окончания загрузки всех переменных из этого файла, включая lastFrameVisited:

onClipEvent(data) {
    gotoandPlay(lastFrameVisited); 1
}

При использовании методов XML.load и XMLSocket.connect можно определить программу обработки (XML handler) данных, которая будет обрабатывать данные после их появления. Программа обработки это свойство XML и XMLSocket объектов, к которому привязаны определенные вами (набитые на клавиатуре в окошке "Actions") функции. Программы обработки вызываются автоматически сразу после получения информации. Для XML объекта используйте XML.onLoad, а для XMLSocket объекта - XMLSocket.onConnect.

Для более подробной информации, щелкайте мышкой сюда Использование XML объекта и Использование XMLSocket объекта.

От переводчика:

  1. Cудя по всему, переменная "lastFrameVisited" это что-то вроде вручную созданной переменной с именем подобным "КадрНаКоторыйВыХотитеПерейти". Она не имеет никакого отношения к стандартным функциям и свойствам Flash и не связана с проверкой загруженности данных. Так что не советую забывать дописывать в конец файлов предназначенных для загрузки в основную Timeline Flash-клипов что-то вроде

    &finishloading=1&

    и каким-либо циклом ожидать появления во Flash-клипе переменной "finishloading" равной 1. И только после появления этой переменной делать вывод об окончании загрузки данных. Для этого случая можно сказать в каком-либо кадре

    loadVariables("myData.txt", 0);

    в следующем кадре

    play ();

    и в третьем кадре

    if (finishloading!=1) {
    prevFrame ();
}


Sending и loading variables to и from a remote file

Интеграция Flash с веб-приложениями > Обмен информацией с удаленными файлами > Использование команд loadVariables, getURL и loadMovie

Использование команд loadVariables, getURL и loadMovie

Команды loadVariables, getURL и loadMovie взаимодействуют с серверными скриптами используя протокол HTTP. Каждая из этих команд посылает все переменные из Timeline туда, куда она направлена; каждая команда обрабатывает ответ следующим образом:

getURL возвращает любую информацию в окно броузера, не во Flash Player
loadVariables загружает переменные в заданную линейку (Timeline) во Flash Player.
loadMovie загружает ролик в заданный уровень во Flash Player.

Когда вы используете команды loadVariables, getURL или loadMovie, можете указать некоторые параметры:

URL файла, в котором находятся удаленные переменные
Местоположение (Location) - уровень или место в ролике, которое получает переменные. Для дополнительной информации об уровнях и местах смотрите О множестве линеек
Примечание: в команде getURL нельзя указывать местоположение.
Переменные могут быть отосланы разными HTTP методами - GET или POST.

Например, если хотите использовать таблицу достижений (high scores) в игре, можете положить таблицу на сервер и использовать команду loadVariables чтобы загружать её в ролик каждый раз, когда кто-то поиграл в игру. Команда будет похожей на эту:

loadVariables("http://www.mySite.com/scripts/high_score.php", _root.scoreClip, GET);

Здесь команда loadVariables загрузит переменные из PHP-скрипта high_score.php в мувик с именем scoreClip, используя GET HTTP метод.

Все переменные используемые с командой loadVariables должны быть в стандартном MIME формате application/x-www-urlformencoded (стандартный формат используемый в CGI скриптах). Скрипт, который вы указываете в URL-параметре команды loadVariables, должен выдать в виде ответа переменную и пары значений тоже в этом формате, чтобы Flash мог прочитать их.

Файл может содержать любое количество переменных; переменные и пары значений разделяются амперсандом (&), а слова с пробелами внутри, разделяются плюсом (+) (формат url-кодирования). Например, это выражение определяет несколько переменных:

highScore1=54000&playerName1=rockin+good&highScore2=53455&playerName2=bonehelmet&highScore3=42885&playerName3=soda+pop

Дополнительную информацию о командах loadVariables, getURL и loadMovie, смотрите в ActionScript словаре.
Информация по url-кодированию спец-символов доступна на сайте Макромедии.


Sending и loading variables to и from a remote file

Интеграция Flash с веб-приложениями > Обмен информацией с удаленными файлами > О XML

О XML

XML (Расширяемый язык разметки - Extensible Markup Language) стал стандартом обмена структурированными данными в Интернет-Приложениях. Вы можете объединять данные из Flash с серверами, которые используют XML технологию для создания сложных приложений, как например чата или банковской системы .

В XML, так же как и в HTML, вы можете использовать тэги для разметки текста. В HTML вы можете использовать предопределенные тэги чтобы указать каким должен быть показан текст в броузере (например, тэг <b> выделяет текст жирным начертанием). В XML вы указываете тэги которые выделяют тип части данных (например, <password>VerySecret</password>). XML разделяет структуру данных в зависимости от способа их отображения. Это позволяет многократно использовать один и тот же документ в различных средах.

Каждый XML тэг называется узлом (node) или элементом (element). Узлы бывают 2х типов (1-XML элемент, или 3-text узел). Элементы так же могут иметь атрибуты. Узел вложенный в узел (а node nested in a node) называется child или childNode. Эта иерархическая структура узлов называется XML DOM (Document Object Model). Она во многом похожа на JavaScript DOM, являющимся структурой элементов в броузере.

В следующем примере, <PORTFOLIO> является главным узлом (parent node), он не имеет атрибутов и содержит childNode <HOLDING>, который имеет атрибуты SYMBOL, QTY, PRICE и VALUE:

<PORTFOLIO>
    <HOLDING SYMBOL="RICH"
        QTY="75"
        PRICE="245.50"
        VALUE="18412.50" />
</PORTFOLIO>


Sending и loading variables to и from a remote file

Интеграция Flash с веб-приложениями > Обмен информацией с удаленными файлами > Использование XML объекта

Использование XML объектов

Вы можете использовать команды ActionScript XML объекта (например, appendChild, removeNode и insertBefore) для упорядочивания XML-данных перед отправкой на сервер и для управления загруженными данными.

Вы можете использовать следующие методы XML-объекта для посылки и загрузки XML-данных на сервер, используя HTTP POST метод:

load загружает XML из сети и размещает его в ActionScript XML объекте.
send отсылает XML объект по указанному URL. Вся возвратившаяся информация помещается в другом окне броузера.
sendAndLoad отсылает XML объект по указанному URL. Вся возвратившаяся информация помещается в ActionScript XML объект.

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

Серверный скрипт, который пропускает информацию между Flash и базой данных, читает и записывает данные в XML формате. Можете использовать ActionScript для конвертирования данных собранных во Flash-ролике (например, имя пользователя и пароль) в XML объект, а затем отправлять их на серверный скрипт в качестве XML документа. Так же можете использовать ActionScript для загрузки XML документа, который сервер возвращает в XML объект, используемый в ролике.

Поток и преобразование данных между Flash-роликом, серверным скриптом и базой данных.

Проверка подлинности пароля для брокерской системы требует 2 скрипта: функция, определенная в первом кадре, и скрипт, который создает и отсылает объекты XML, нажатием кнопки Submit в форме.

Когда пользователи вводят информацию в текстовые поля в Flash-ролике в переменные username и password, перед отправкой на сервер эти переменные должны быть сконвертированы в XML. Первая секция скрипта загружает переменные в только что созданный XML объект, который называется loginXML. Когда пользователь нажимает кнопку Submit, объект loginXML конвертируется в XML строку и отсылается на сервер.

Следующий скрипт прописывается в кнопку Submit. Для облегчения понимания, в скрипт вставлены комментарии начинающиеся с символов //:

on (release) {
    // A. Конструируем XML документ с элементом LOGIN
    loginXML = new XML();
    loginElement = loginXML.createElement("LOGIN");
    loginElement.attributes.username = username;
    loginElement.attributes.password = password;
    loginXML.appendChild(loginElement);

    // B. Конструируем XML объект для сбора информации полученной от сервера
    loginReplyXML = new XML();
    loginReplyXML.onLoad = onLoginReply;

    // C. Отсылаем элемент LOGIN на сервер,
    //    помещаем ответ в loginReplyXML
    loginXML.sendandLoad("https://www.imexstocks.com/main.cgi",
                            loginReplyXML);
}

Первая секция скрипта генерирует следующий XML, когда пользователь нажимает кнопку Submit:

<LOGIN USERNAME="JeanSmith" PASSWORD="VerySecret" />

Сервер получает XML, создает XML ответ и посылает его обратно в ролик. Если пароль верен, то сервер ответит следующим образом:

<LOGINREPLY STATUS="OK" SESSION="rnr6f7vkj2oe14m7jkkycilb" />

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

<LOGINREPLY STATUS="FAILED" />

XML узел (XML node) LOGINREPLY должен быть загружен в чистый XML объект в ролике. Следующие строчки создают XML-объект loginreplyXML чтобы получить XML узел:

// B. Конструируем XML объект для сбора информации полученной от сервера
loginReplyXML = new XML();
loginReplyXML.onLoad = onLoginReply;

Вторая часть назначает функцию onLoginReply обработчику loginReplyXML.onLoad.

XML-элемент LOGINREPLY появляется асинхронно, как данные из команды loadVariables и загружается в loginReplyXML объект. Когда данные прибывают, вызывается метод onLoad объекта loginReplyXML. Вы должны определить функцию onLoginReply и назначить ее обработчику loginReplyXML.onLoad, чтобы он мог обработать элемент LOGINREPLY. Функция onLoginReply назначается на фрейм, который содержит кнопку Submit.

Функция onLoginReply вызывается в первом кадре ролика.

function onLoginReply() {
    // Получаем первый XML элемент
    var e = this.firstChild;
    // Если первый XML элемент это LOGINREPLY со статусом OK,
    // переходим к экрану "portfolio". В противном случае,
    // оповещаем посетителя, что пароль ему отгадать не удалось
    // и предоставляем ему еще одну попытку .
    // Кстати хотел бы я посмотреть на сайт с запароленным разделом
    // "portfolio" :)
    if (e.nodeName == "LOGINREPLY" && e.attributes.status == "OK") {
// Сохраняем ID сессии для дальнейшего общения с сервером
    sessionID = e.attributes.session;
// переходим к экрану просмотра "portfolio"
        gotoAndStop("portfolioView");
    } else {
        // Опс :) Пароль не угадан! Переходим к метке "loginFailed"
        gotoAndStop("loginFailed");
    }
}

Первая строка этой функции, var e = this.firstChild использует ключевое слово this чтобы обратиться к XML-объекту loginReplyXML, который только что был загружен с сервера. Вы можете использовать this потому, что onLoginReply был вызван как loginReplyXML.onLoad, так что хотя onLoginReply кажется вроде бы простой функцией, он фактически ведет себя как метод loginReplyXML.

Чтобы послать username и password как XML на сервер и загрузить XML ответ назад в ролик, можно использовать метод sendAndLoad, например как в этом примере:

    // C. Отсылаем элемент LOGIN на сервер,
    //    помещаем ответ в loginReplyXML
    loginXML.sendandLoad("https://www.imexstocks.com/main.cgi", loginReplyXML);

Дополнительная информация о методах XML имеется в словаре ActionScript.

ПРИМЕЧАНИЕ: Эти примеры очень просты, мы не даем никаких гарантий об уровне защиты, который они предоставляют. Если вы создаете охранную систему, сначала удостоверьтесь что у вас хороший уровень знаний о сетевой безопасности прежде чем создавать её!


Sending и loading variables to и from a remote file

Интеграция Flash с веб-приложениями> Обмен информацией с удаленными файлами > Использование объекта XMLSocket

Использование объекта XMLSocket

ActionScript предоставляет предопределенный XMLSocket объект, который позволяет открывать продолжительное соединение с сервером. Это позволяет отправлять информацию клиенту сразу по мере ее поступления. Без продолжительного соединения сервер должен ждать HTTP запрос. Так же продолжительное соединение позволяет избежать задержек в приложениях, работающих в реальном времени, как например ЧАТы. Данные посылаются по Socket-соединению, как одна строка в XML формате. Вы так же можете использовать XML объект для структурирования данных.

Чтобы установить Socket-соединение, необходимо создать приложение на сервере, которое будет ждать запрос на Socket-соединение и посылать ответ обратно Flash-клипу. Это серверное приложение можно написать на каком-либо языке программирования, например на Java.

Методы connect и send XMLSocket объектов используются для передачи XML-данных серверу и для возвращения их с сервера во время Socket-соединения. Метод connect устанавливает Socket-соединение с портом сервера. Метод send посылает XML объект на сервер, который указан в Socket-соединении.

При использовании метода connect, Flash Player открывает TCP/IP соединение с сервером и не закрывает его до тех пор, пока не произойдет одно из следующих событий:

Вызван метод close XMLSocket объекта.
Ссылок на XMLSocket объект больше не существует.
Flash Player прекратил работу.
Соединение прервано (например, отключился модем)

Следующий пример создает XML сокет-соединение и отсылает данные из XML объекта myXML. Для облегчения понимания, в скрипте встречаются комментарии, начинающиеся с символов //:

//Создаем новый XMLSocket объект
sock = new XMLSocket();
//Вызываем его метод соединения чтобы законнектиться с портом 1024
//сервера по этому урл
sock.connect("http://www.myserver.com", 1024);
//Определяем функцию назначенную для этого sock объекта, которая будет обрабатывать
//ответ сервера. Если соединение произошло, отсылаем myXML объект.
//Если что-то не получилось, выводим сообщение об ошибке в текстовом поле "msg"
function onSockConnect(success){
    if (success){
        sock.send(myXML);
    } else {
        msg="There has been an error connecting to "+serverName;
    }
}
//назначаем onSockConnect функцию для свойства onConnect
sock.onConnect = onSockConnect;

Дополнительную информацию смотрите в ActionScript словаре.


Creating forms

Интеграция Flash с веб-приложениями > Создание форм

Создание форм

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

Простым элементом формы является, например, поле для ввода текста. Стандартным типом форм, использующим этот интерфейс элементов, являются ЧАТы, бланки-заявки и поисковые формы. Например, Flash-форма может собирать адреса и посылать их другому приложению которое в свою очередь преобразует информацию в E-mail письмо или запись базы данных. Даже одиночное текстовое поле рассматривается как форма и может использоваться для получения информации вводимой пользователем и отображения результата.

Форма состоит из двух главных компонентов: элементы Flash-интерфейса, которые составляют форму, а также серверного приложения или скрипта на стороне клиента, для обработки информации, вводимой пользователем. Следующие шаги описывают основные этапы создания формы в Flash.

Для составления формы необходимо:

1 | Поместить элементы интерфейса в ролик. (Можете использовать элементы интерфейса из библиотеки или создать свои).
2 | В панели Text Options установите РАЗНЫЕ имена переменных для текстовых полей для ввода и подтверждения. (Для дополнительной информации о создании изменяемых текстовых полей смотрите Help файл Flash.)
3 | Назначьте команду, которая будет отсылать и загружать данные.


Creating forms

Интеграция Flash с веб-приложениями > Создание Форм > Создание поисковой формы

Создание поисковой формы

Примером простейшей поисковой формы может служить поле ввода строки поиска с кнопкой "ОК". Следующий пример содержит указания для создания поискового интерфейса с использованием команды getURL.

Для создания простой поисковой формы необходимо:

1 | Создать кнопку, которая подтверждает введенную информацию для поиска.
2 | Создать чистое текстовое поле и пояснительную надпись.
 | Ваш экран будет примерно таким:
3 | Выделить текстовое поле и выбрать в Window > Panels> Text Options.
4 | В панели Text Options установить следующие параметры:
 | Выбрать Input Text из всплывающего меню
 | Включить Border/Bg.
 | Указать имя переменной.
 | ПРИМЕЧАНИЕ: Некоторые поисковые машины могут требовать специальное имя переменной. Для дополнительной информации смотрите сайт поисковой машины..
5 | Нажать на правую кнопку в рабочей области и выбрать Window > Actions.
 | Появится панель действий объектов.
 | ПРИМЕЧАНИЕ: галочка рядом с Actions в меню Window показывает, что панель открыта.
6 | Удерживая кнопку мыши, перетащить команду getURL из окна со списком команд в окно скрипта.
7 | В области Параметров действия, установить следующие опции:
 | В строку URL, ввести URL поисковой машины.
 | Для Window, выбрать _blank. Это откроет новое окно с результатами поиска.
 | Для Variables, выбрать Send using GET.
8 | Для проверки формы выбрать File > Publish Preview > HTML.


Creating forms

Интеграция Flash с веб-приложениями > Создание Форм > Использование переменных в формах

Использование переменных в формах

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

Когда вы посылаете/получаете информацию серверному скрипту и от него, переменные в ролике должны совпадать с переменными в скрипте. Например, если скрипт ожидает переменную с именем pаssword, текстовое поле в котором пользователи вводят пароль тоже должно иметь имя переменной password.

Некоторые скрипты требуют скрытых переменных. Это такие переменные, которые пользователь не видит. Чтобы создать скрытую переменную в Flash, вы можете назначить переменную на кадр в ролике, который содержит другие элементы формы. Скрытые переменные отсылаются серверному скрипту наряду с любыми другими переменными из линейки

Примечание: Встроенные Flash-методы GET и POST отсылают все переменные из текущей линейки, включая разные $version. Поэтому, если хочется отослать только то, что необходимо, обычно создают отдельный символ с текстовыми полями и кнопкой "send" и помещают этот символ в основную линейку.


Ошибки в ActionScript: Overview

Ошибки в ActionScript > Ошибки в ActionScript: Обзор

Ошибки в ActionScript: Обзор

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

Flash имеет несколько инструментов, помогающих проверить создаваемый клип в режиме теста или в броузере. Отладчик (Debugger - Дебагер) показывает иерархический список клипов, загруженных в настоящее время во Flash Player. Здесь также можно просматривать текущие значения всех переменных и свойств и изменять их во время воспроизведения клипа. В режиме теста в окно Output выводятся сообщения об ошибках и списки переменных и объектов. Можно также в скриптах использовать команду trace для вывода своих комментариев, значений переменных и выражений в окно Output.


Using the Output window

Ошибки в ActionScript > Использование окна Output

Использование окна Output

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

Если в скриптах используется команда trace, во время воспроизведения клипа в окно Output выводится специфическая информация. Она может содержать примечания о состоянии клипа или значение выражения. См. Использование trace.

Вывод окна Output:

1 | Если клип не запущен в режиме теста, выбрать Control > Test Movie.
2 | Выбрать Window > Output.
 | Откроется окно Output.

Замечание: Если в скрипте есть ошибки синтаксиса, окно Output открывается автоматически.

3 | Для работы с содержанием окна Output, используется его меню:
 | Выбрать Options > Copy для копирования содержания окна Output в буфер обмена.
 | Выбрать Options > Clear для очистки окна.
 | Выбрать Options > Save to File для записи содержания окна в текстовый файл.
 | Выбрать Options > Print для распечатки его содержимого.


Using the Output window

Ошибки в ActionScript > Использование окна Output > Использование списка объектов

Использование списка объектов

В режиме теста команда List Objects показывает уровень, кадр, тип объекта (шейп, мувиклип или кнопка) и путь к мувиклипу в иерархическом списке. Это особенно полезно для нахождения правильного пути и имени мувика. В отличие от Отладчика, список не обновляется автоматически во время воспроизведения клипа, каждый раз, когда требуется выдать очередную информацию в окне Output, необходимо повторно выбрать команду List Objects.

Вывод списка объектов в клипе:

1 | Если клип не запущен в режиме теста, выбрать Control > Test Movie.
2 | Выбрать Debug > List Objects.

Список всех текущих объектов на сцене будет показан в окне Output, как в следующем примере:

Layer #0: Frame=3
Movie Clip: Frame=1 Target=_root.MC
        Shape:
    Movie Clip: Frame=1 Target=_root.instance3
        Shape:
    Button:
        Movie Clip: Frame=1 Target=_root.instance3.instance2
            Shape:

Замечание: Команда List Objects не вносит в список все ActionScript data objects. В этом контексте, объект является формой или символом на сцене.


Using the Output window

Ошибки в ActionScript > Использование окна Output > Использование списка переменных

Использование списка переменных

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

Вывод списка переменных в клипе:

1 | Если клип не запущен в режиме теста, выбрать Control > Test Movie.
2 | Выбрать Debug > List Variables.

Список всех текущих переменных клипа будет показан в окне Output, как в следующем примере:

Level #0:
    Variable _root.country = "Sweden"
    Variable _root.city = "San Francisco"
Movie Clip:  Target=""
Variable _root.instance1.firstName = "Rick"


Using the Output window

Ошибки в ActionScript > Использование окна Output > Использование trace

Использование trace

Когда в скрипте используется команда trace, в окно Output выводится информация, являющаяся аргументом этой команды. Например, при тестировании клипа или сцены, можно выводить специальные программные комментарии или какие-то данные, как результат нажатия кнопки или воспроизведения определенного кадра. Команда trace аналогична JavaScript оператору alert.

Когда в скрипте используется команда trace в качестве ее аргумента можно использовать выражение. Его значение будет выведено в окно Output в режиме теста, как это сделано в следующем примере:

onClipEvent(enterFrame){
    trace("onClipEvent enterFrame " + enterFrame++)
}

Команда trace возвращает значение, которое выводится в окне Output.


Authoring and troubleshooting guidelines

Ошибки в ActionScript > Основные принципы поиска ошибок

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

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

Использование хороших авторских методов

Сохраняйте разные версии клипа во время работы над ним. Выберите File > Save As для сохранения текущей версии под новым именем каждые пол-часа. Это позволит легко локализовать начало возникшей проблемы или, при необходимости, начать работу снова с той версии, в которой ее еще не было.

Тестируйте свою работу постоянно и делайте это как можно чаще и всякий раз, когда Вы вносите какие-то изменения или перед сохранением очередной версии клипа. Выберите Control > Test Movie, чтобы запустить клип в режиме теста.

В некоторых ситуациях (например при разработке intranet site) Вы можете заранее знать тип броузера и платформу Вашего клиента. Если же Ваш клип предназначен для демонстрации в сети, важно проверить его в различных броузерах на всех доступных Вам платформах 1.

Возьмите за практику следовать этим методам:

Используйте команду trace для вывода каких-то своих комментариев в окне Output. См. Использование trace.
Используйте команду comment для включения комментариев в свои скрипы. См. Comments.
Выработайте и используйте единые принципы в написании имен при идентификации элементов в скриптах. Например, хорошая идея не использовать символ пробела в именах 2. Начинайте имена переменных и функций с символов в нижнем регистре и используйте заглавную букву для каждого нового слова, включаемого в имя (myVariableName, myFunctionName). Начинайте имена функции конструктора с заглавной буквы (MyConstructorFunction). Важно выбрать стиль, имеющий для Вас смысл и следовать ему в своей работе.
Назначайте переменным осмысленные имена, в зависимости от их содержания. Например, переменная с информацией о последней нажатой кнопке могла бы быть названа lastButtonPressed. Имя типа foo затруднит запоминание того, что содержит переменная.
Используйте редактируемые текстовые поля на guide слоях для слежения за значениями переменных, как альтернативу использования Отладчика.
В режиме редактирования используйте Movie Explorer для просмотра списка объектов и всех команд в клипе. См. Using Flash. Flash Help
Используйте команду for...in для прогона в цикле свойств мувиклипов, включая дочерние мувиклипы. Можно использовать команду for...in с командой trace для отсылки списка свойств в Output окно. См. Повторение команды.

Использование контрольного списка поиска ошибок

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

Удостоверитесь, что находитесь в режиме теста.
Только простая кнопка и команды расположенные в кадре (frame actions), например, gotoAndPlay и stop будут работать в режиме редактирования. Выберите Control > Enable Simple Frame Actions или Control > Enable Simple Buttons для включения исполнения этих команд.
Удостоверитесь, что у Вас не конфликтуют между собой скрипты прописанные в кадрах на разных слоях клипа. 3
Если вы работаете с панелью Actions в нормальном режиме (Normal Mode), удостоверитесь, что опция expression имеет соответствующее значение для каждого конкретного выражения.
Если она не включена, значение будет передаваться как строка. См. Использование операторов для управления значениями в выражениях.
Удостоверитесь, что ActionScript элементы не имеют одинаковых имен.
Хорошая идея называть каждую переменную, функцию, объект и свойство уникальным именем. Исключением могут быть локальные переменные, хотя внутри области их действия они тоже должны быть уникальны, и многократно используемые в качестве счетчиков. См. Область действия переменной.

Для получения большего количества советов о поиске ошибок в клипе, см. Flash Support Center.

От редактора:

  1. Конечно это полезно, но не всегда возможно, особенно со всякими экзотическими броузерами и платформами, но здесь может успокаивать мысль, что в процентном отношении всех "прочих" не так уж и много. В то же время проверить работу клипа в двух основных комбинациях NC+Win и IE+Win, не просто хороший тон и признак профессионального поведения, а крайняя необходимость!..

  2. Так же не следует использовать символ дефиса ("-") в именах, например, my-Cool-Movie. Flash Player воспримет дефис в качестве оператора "минус" и результат работы скрипта, содержащего такое имя, будет непредсказуем. В этих случаях лучше использовать символ подчеркивания, например, my_Cool_Movie.

  3. Хорошим стилем является выделение отдельного слоя для помещения в него всех кадровых команд (frame actions), а не разносить их по всем слоям клипа.


Using the Debugger

Ошибки в ActionScript > Использование Отладчика

Использование Отладчика

Отладчик позволяет находить ошибки в клипе, во время его воспроизведения во Flash Player. Можно просматривать всю внутреннюю структуру основного и подгружаемых клипов и изменять значения переменных и свойств, чтобы определить их правильные значения. Затем можно вернуться к скриптам и отредактировать их с учетом результатов, полученных при отладке. Для использования Отладчика, необходимо запустить Flash Debug Player, специальную версию Flash Player.

Flash Debug Player устанавливается автоматически при инсталляции пакета Flash 5. Он позволяет в своем окне просматривать список объектов и пары: переменные - их значение и свойства - из значения.

Для включения Отладчика:

Выбрать Window > Debugger.

Это открывает Отладчик в неактивном состоянии. Никакая информация не появится в его окне, пока не будет выдана команда от Flash Player.

Для активизации Отладчика в режиме тестирования:

Выбрать Control > Debug Movie.

Это откроет Отладчик в активном состоянии.


Using the Debugger

Ошибки в ActionScript > Использование Отладчика > Включение режима отладки в клипе

Включение режима отладки в клипе

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

Как JavaScript или HTML, ActionScript являются клиентскими скриптами, поэтому они потенциально доступны для просмотра пользователем. Чтобы сохранять переменные более надежно, необходимо хранить и обрабатывать их на сервере, а не во Flash-клипе.

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

Включение режима отладки и установка пароля:

1 | Выбрать File > Publish Settings.
2 | Перейти на закладку Flash.
3 | Включить опцию Debugging Permitted.
4 | Для установки пароля, ввести его в поле Password.
 | Без знания этого пароля, Вы не сможете запустить Отладчик. Если при экспорте пароль не будет введен, то включить Отладчик можно будет без пароля.

Активизация Отладчика в окне броузера:

1 | Right-click (Windows) или Control-click (Macintosh) откроет контекстное меню Flash Debug Player 2.
2 | Выбрать Debugger.

Замечание: Можно использовать Отладчик для контроля только одного клипа одновременно, при этом Flash должен быть открыт.

Контекстное меню Flash Debug Player

От редактора:

  1. На мой взгляд совершенно надуманная ситуация, т.к. во-первых своим друзьям я могу и так все рассказать и показать, во-вторых, с появлением таких мощных сторонних дебагеров, как Action Script Viewer ( http://www.buraks.com/asv/ ), все секреты, скрываемые внутри SWF-файла, стали секретами Полишенеля...

  2. У меня не получилось включить эту опцию в Netscape Communicator под Windows, в Internet Explorer все сработало, как здесь описано. Возможно Netscape Flash Plug-in 5.0 r30 для Windows ее не поддерживает, хотя однозначно утверждать этого не берусь. На других платформах не тестировал.


Using the Debugger

Ошибки в ActionScript > Использование Отладчика > О строке состояния

О строке состояния

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

Test-movie mode
Stand-alone player
Netscape plug-in
Netscape plug-in используется с Netscape Navigator под Windows и Macintosh, и Microsoft Internet Explorer под Macintosh.
ActiveX control
ActiveX control используется с Internet Explorer под Windows.


Using the Debugger

Ошибки в ActionScript > Использование Отладчика > Окно списка

Окно списка

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


Using the Debugger

Ошибки в ActionScript > Использование Отладчика > Отображение и изменение переменных

Отображение и изменение переменных

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

Показ переменных:

1 | Выберите мувиклип, содержащий переменную, в окне со списком объектов.
2 | Нажмите на вкладку Variables.

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

Изменение значения переменной:

Выделите значение и введите новое.

Значение должно быть постоянным значением (например, "Hello", 3523 или "http://www.macromedia.com"), не выражением (например, x + 2 или eval("name:" +i)). Значение может быть строкой (любое значение, заключенное в кавычки ("")), числом или булеаном (true или false).

Переменные Object (Объекта) и Array (Массива) отображаются во вкладке Variables. Нажмите на Add (+) кнопку, чтобы видеть их свойства и значения. Однако, вводить значения объекта или массива (например, {name: "I am an object"} или [1, 2, 3]) в полях их значений нельзя.

Замечание: Для вывода значения выражения в режиме теста, используйте команду trace. См. Использование trace.


Using the Debugger

Ошибки в ActionScript > Использование Отладчика > Использование списка Watch

Использование списка Watch

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

Только переменные могут быть добавлены в список Watch, свойства или функции не могут.

Переменные замаркированные для списка Watch и переменные в списке Watch

Для добавления переменных в список Watch, сделайте одно из следующего:

Во вкладке Variables, right-click (Windows) или Control-click (Macintosh) на нужной переменной и выбрать Watch в открывшемся контекстном меню. Рядом с переменной появится синяя точка.
Во вкладке Watch, right-click (Windows) или Control-click (Macintosh) и выбрать Add в открывшемся контекстном меню. Ввести имя переменной и ее значение в соответствующие ячейки.

Удаление переменной из списка Watch:

Во вкладке Watch, right-click (Windows) или Control-click (Macintosh) и выбрать Remove в открывшемся контекстном меню.


Using the Debugger

Ошибки в ActionScript > Использование Отладчика > Отображение свойств клипа и их редактирование

Отображение свойств клипа и их редактирование

Вкладка Properties (Свойства) Отладчика отображает все значения свойства любого мувиклипа. Если изменить значение свойства, то это изменение в реальном времени отразится в воспроизводимом в данный момент клипе. Некоторые свойства клипа предназначены только для чтения и не могут быть изменены.

Показ свойств мувиклипа:

1 | Выберите мувиклип в окне со списком объектов.
2 | Нажмите на вкладку Properties.
 | Вкладка Properties в Отладчике.

Изменение значения свойства:

Выделите значение и введите новое.

Значение должно быть константой (например, 50 или "clearwater"), а не выражение (например, x + 50). Значение может быть строкой (любое значение, заключенное в кавычки ("")), числом или булеаном (true или false). Нельзя ввести значение объекта или массива (например, {id: "rogue"} или [1, 2, 3]) в Отладчик.

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

Замечание: Для вывода значения выражения в режиме теста, используйте команду trace. См. Использование trace.


Operator List

Старшинство операторов и ассоциативность > Список операторов

Список операторов

Эта таблица содержит список всех операторов Action Script и их ассоциативность в порядке убывания.
Оператор | Описание | Ассоциативность
Высший приоритет
+ | Унарный плюс | Справа на лево
- | Унарный минус | Справа на лево
~ | Побитовое НЕ | Справа на лево
! | Логическое НЕ | Справа на лево
not | Логическое НЕ (Flash 4 style) | Справа на лево
++ | Пост-инкримент | Слева на право
-- | Пост-декримент | Слева на право
( ) | Функциональное обращение | Слева на право
[ ] | Элемент массива | Слева на право
. | Элемент Структуры | Слева на право
++ | Пре-инкримент | Справа на лево
-- | Пре-декримент | Справа на лево
new | Создание объекта | Справа на лево
delete | Удаление объекта | Справа на лево
typeof | Тип объекта | Справа на лево
void | Возвращает значение undefined (неопределено) | Справа на лево
* | Умножение | Слева на право
/ | Деление | Слева на право
% | Модуль | Слева на право
+ | Сложение | Слева на право
add | Строковая конкатенация (бывшее &) | Слева на право
- | Вычитание | Слева на право
<< | Побитовое смещение влево | Слева на право
>> | Побитовое смещение вправо | Слева на право
>>> | Побитовое смещение вправо (Без знака) | Слева на право
< | Меньше чем | Слева на право
<= | Меньше чем или равно | Слева на право
> | Больше чем | Слева на право
>= | Больше чем или равно | Слева на право
lt | Меньше чем (строковое) | Слева на право
le | Меньше чем или равно (строковое) | Слева на право
gt | Больше чем (строковое) | Слева на право
ge | Больше чем или равно (строковое) | Слева на право
== | Эквивалентно | Слева на право
!= | Не эквивалентно | Слева на право
eq | Эквивалентно (строковое) | Слева на право
ne | Не эквивалентно (строковое) | Слева на право
& | Побитовое И | Слева на право
^ | Побитовое исключающее ИЛИ | Слева на право
| | Побитовое ИЛИ | Слева на право
&& | Логическое И | Слева на право
and | Логическое И (Flash 4) | Слева на право
|| | Логическое ИЛИ | Слева на право
or | Логическое ИЛИ (Flash 4) | Слева на право
?: | Условие | Справа на лево
= | Присвоение | Справа на лево
"*=, /=, %=, +=, -=, &=, |=, ^=, <<=, >>=, >>>=" | Составное присвоение | Справа на лево
, | Множественная оценка | Слева на право
Низший приоритет


Keyboard keys and key code values: Overview

Клавиши клавиатуры и их коды > Клавиши клавиатуры и их коды. Обзор

Клавиши клавиатуры и их коды. Обзор

Последующие таблицы перечисляют все клавиши на стандартной клавиатуре и соответствующие значения их кода, которые используются для идентификации клавиш в ActionScript. Подробнее см. описание объекта Key в Action Script словаре.


Letters A to Z and standard numbers 0 to 9

Клавиши клавиатуры и их коды > Символы от A до Z и стандартные числа от 0 до 9

Символы от A до Z и стандартные числа от 0 до 9
Символ или число | Код
A | 65
B | 66
C | 67
D | 68
E | 69
F | 70
G | 71
H | 72
I | 73
J | 74
K | 75
L | 76
M | 77
N | 78
O | 79
P | 80
Q | 81
R | 82
S | 83
T | 84
U | 85
V | 86
W | 87
X | 88
Y | 89
Z | 90
0 | 48
1 | 49
2 | 50
3 | 51
4 | 52
5 | 53
6 | 54
7 | 55
8 | 56
9 | 57


Keys on the numeric keypad

Клавиши клавиатуры и их коды > Клавиши цифровой клавиатуры

Клавиши цифровой клавиатуры
Клавиша цифровой клавиатуры | Код
0 | 96
1 | 97
2 | 98
3 | 99
4 | 100
5 | 101
6 | 102
7 | 103
8 | 104
9 | 105
* (умножение) | 106
+ (сложение) | 107
Enter | 108
- (вычитание) | 109
. (десятичная точка) | 110
/ (деление) | 111


Function keys

Клавиши клавиатуры и их коды > Функциональные клавиши

Функциональные клавиши
Функциональные клавиши | Код
F1 | 112
F2 | 113
F3 | 114
F4 | 115
F5 | 116
F6 | 117
F7 | 118
F8 | 119
F9 | 120
F10 | 121
F11 | 122
F12 | 123


Other keys

Клавиши клавиатуры и их коды > Другие клавиши

Другие клавиши
Клавиша | Код
Backspace | 8
Tab | 9
Clear | 12
Enter | 13
Shift | 16
Control | 17
Alt | 18
Caps Lock | 20
Esc | 27
Spacebar | 32
Page Up | 33
Page Down | 34
End | 35
Home | 36
Left Arrow | 37
Up Arrow | 38
Right Arrow | 39
Down Arrow | 40
Insert | 45
Delete | 46
Help | 47
Num Lock | 144
; : | 186
= + | 187
- _ | 189
/ ? | 191
\Q ~ | 192
[ { | 219
\ | | 220
] } | 221
'' ' | 222


Table of error messages

Сообщения об ошибках > Таблица сообщений об ошибках

Таблица сообщений об ошибках

В таблице приведен список сообщений об ошибках, возвращаемых Flash-компилятором. Объяснение каждого сообщения поможет вам в разрешении проблем, возникших в вашем клипе.
Сообщение об ошибке Описание

Property <property> does not exist
Свойство <property> не существует

Попытка обращения к несуществующему свойству. Например, x = _green неправильно, т.к. свойства _green не существует.

Operator <operator> must be followed by an operand
Оператор <operator> должен сопровождаться операндом

Попытка действия с оператором без операнда. Например, x = 1 + требует наличия операнда после оператора +.

Оператор сопровождается недопустимым операндом. Например, trace(1+); является синтаксически неправильным.

Syntax error
Синтаксическая ошибка

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

Expected a field name after '.' operator
Ожидается имя поля после оператора '.'

Вы должны определить допустимое имя поля при использовании синтаксиса object.field.

Expected <token>
Должно быть <token>

Обнаружена недопустимая или непредвиденная лексема. Например, в представленном ниже синтаксисе лексема foo неправильна. Должно быть while.

do {

trace (i)

} foo (i < 100)

Initializer list must be terminated by <terminator>
Инициализированный список должен быть завершен <terminator>

В списке инициализированного объекта или массива пропущена закрывающая скобка "]" или "}".

Identifier expected
Должен быть идентификатор

Вместо идентификатора обнаружена непредвиденная лексема. Например, 3 является неправильным идентификатором.

var 3 = 4;

The JavaScript '<construct>' construct is not supported
JavaScript '<construct>' не поддерживается

Обнаружен JavaScript-конструктор, который не поддерживается ActionScript. Это сообщение выводится при использовании любого из следующих конструкторов: void, switch, try, catch или throw.

Left side of assignment operator must be variable or property
Левая часть оператора присвоения должна быть переменной или свойством

Использован оператор присвоения, но его левая часть не является переменной или свойством.

Statement block must be terminated by '}'
Блок операторов должен быть завершен '}'

Группа выражений была объявлена внутри фигурных скобок, но отсутствует закрывающая фигурная скобка.

Event expected
Должно быть событие

Объявлен обработчик On(MouseEvent) или onClipEvent, но никакого события не было определено или вместо события обнаружена непредвиденная лексема.

Invalid event
Недопустимое событие

Скрипт содержит недопустимое событие для мыши или клипа. Список допустимых событий, см. в разделах MouseEvent и OnClipEvent словаря ActionScript.

Key code expected
Должен быть код клавиши

Необходимо определить код клавиши. См. список клавишных кодов в Приложение B.

Invalid key code
Недопустимый код клавиши

Указанный код клавиши не существует.

Trailing garbage found
В конце найден мусор

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

Illegal function
Запрещенная функция

Имя декларируемой функции было использовано как выражение. Имя декларируемой функции должны быть утверждением.

Правильно: function sqr (x) { return x * x; }

Неправильно: var v = function sqr (x) { return x * x; }

Function name expected
Должно быть имя функции

Имя, определенное для этой функции, является недопустимым.

Parameter name expected
Должен быть параметр

В объявлении функции должно быть имя параметра (аргумента), но обнаружена непредвиденная лексема.

'else' encountered without matching 'if'
Обнаружен 'else' без соответствующего 'if'

Оператору else не предшествует соответствующий if. else можно использовать только совместно с оператором if .

Scene type error
Ошибка типа Сцены

Параметр сцены в командах gotoAndPlay, gotoAndStop или ifFrameLoaded имеет неправильный тип. Этот аргумент должен быть строковой константой.

Internal error
Внутренняя ошибка

Произошла внутренняя ошибка в ActionScript-компиляторе. Пожалуйста пошлите FLA-файл, генерирующий эту ошибку Макромедии, с подробным описанием того, как воспроизвести это сообщение.

Hexadecimal digits expected after 0x
После 0x должно стоять шестнадцатеричное число

Обнаружена последовательность 0x не сопровождаемая допустимым шестнадцатеричным числом.

Error opening #include file
Ошибка открытия файла #include

Ошибка открытия файла по директиве include. Возможная причина - отсутствие файла или сбой диска.

Malformed #include directive
Некорректная директива #include

Директива include написана не правильно. В ней должен быть использован следующий синтаксис:

#include "somefile.as"

Multi-line comment was not terminated
Многострочный комментарий не завершен

В многострочном комментарии пропущен закрывающий тег */.

String literal was not properly terminated
Строковый литерал завершен не правильно

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

Function <function> takes <count> parameters
Функция <function> имеет <count> параметров

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

Property name expected in GetProperty
GetProperty должно содержать имя свойства

Используется функция getProperty, в которой второй аргумент не является именем свойства муви-клипа.

Parameter <parameter> cannot be declared multiple times
Параметр <parameter> не может быть объявлен несколько раз

В списке параметров объявляемой функции обнаружены одинаковые параметры. Все имена параметров должны быть уникальными.

Variable <variable> cannot be declared multiple times
Переменная <variable> не может декларироваться несколько раз

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

'on' handlers may not be nested within other 'on' handlers
'on' обработчики не могут быть вложены внутри других 'on' обработчиков

Обнаружен обработчик on внутри другого on обработчика. Все обработчики on должны находиться вверху списка команд.

Statement must appear within on handler
Команды должны находиться внутри 'on' обработчика

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

Statement must appear within onClipEvent handler
Команды должны находиться внутри 'onClipEvent' обработчика

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

Mouse events are permitted only for button instances
События мыши разрешаются только для кнопки

Обработчик события кнопки был объявлен в списке команд кадра или мувиклипа. События кнопки разрешаются только в списках команд кнопки.

Clip events are permitted only for movie clip instances
События мувиклипа разрешаются только для мувиклипа

Обработчик события мувиклипа был объявлен в списке команд кадра или списке команд кнопки. События мувиклипа разрешаются только в списках команд мувиклипа.


90cred2

 Trademarks & Disclaimers

Trademarks
Afterburner, AppletAce, Attain, Attain Enterprise Learning System, Attain Essentials, Attain Objects for Dreamweaver, Authorware, Authorware Attain, Authorware Interactive Studio, Authorware Star, Authorware Synergy, Backstage, Backstage Designer, Backstage Desktop Studio, Backstage Enterprise Studio, Backstage Internet Studio, Design in Motion, Director, Director Multimedia Studio, Doc Around the Clock, Dreamweaver, Dreamweaver Attain, Drumbeat, Drumbeat 2000, Extreme 3D, Fireworks, Flash, Fontographer, FreeHand, FreeHand Graphics Studio, Generator, Generator Developer's Studio, Generator Dynamic Graphics Server, Knowledge Objects, Knowledge Stream, Knowledge Track, Lingo, Live Effects, Macromedia, Macromedia M Logo & Design, Macromedia Flash, Macromedia Xres, Macromind, Macromind Action, MAGIC, Mediamaker, Object Authoring, Power Applets, Priority Access, Roundtrip HTML, Scriptlets, SoundEdit, ShockRave, Shockmachine, Shockwave, Shockwave Remote, Shockwave Internet Studio, Showcase, Tools to Power Your Ideas, Universal Media, Virtuoso, Web Design 101, Whirlwind and Xtra are trademarks of Macromedia, Inc. and may be registered in the United States or in other jurisdictions including internationally. Other product names, logos, designs, titles, words or phrases mentioned within this publication may be trademarks, servicemarks, or tradenames of Macromedia, Inc. or other entities and may be registered in certain jurisdictions including internationally.

This guide contains links to third-party Web sites that are not under the control of Macromedia, and Macromedia is not responsible for the content on any linked site. If you access a third-party Web site mentioned in this guide, then you do so at your own risk. Macromedia provides these links only as a convenience, and the inclusion of the link does not imply that Macromedia endorses or accepts any responsibility for the content on those third-party sites.

Apple Disclaimer
APPLE COMPUTER, INC. MAKES NO WARRANTIES, EITHER EXPRESS OR IMPLIED, REGARDING THE ENCLOSED COMPUTER SOFTWARE PACKAGE, ITS MERCHANTABILITY OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. THE EXCLUSION OF IMPLIED WARRANTIES IS NOT PERMITTED BY SOME STATES. THE ABOVE EXCLUSION MAY NOT APPLY TO YOU. THIS WARRANTY PROVIDES YOU WITH SPECIFIC LEGAL RIGHTS. THERE MAY BE OTHER RIGHTS THAT YOU MAY HAVE WHICH VARY FROM STATE TO STATE.

Copyright © 2000 Macromedia, Inc. All rights reserved. These Help Pages may not be copied, photocopied, reproduced, translated, or published in any electronic or machine-readable form in whole or in part without prior written approval of Macromedia, Inc.

First Edition: July 2000

Macromedia, Inc.
600 Townsend St.
San Francisco, CA 94103


RuFlash

Мейл-Конференция "RuFlash"

Перевод справки к пакету Flash 5 на русский язык сделан силами участников Мейл-Конференции "RuFlash"

Мейл-Конференция "RuFlash" ("RUSSIAN FLASH NEWS") предназначена для оперативного обмена новостями, мнениями между русскоязычными пользователями пакета Macromedia Flash, обсуждения технологии работы в этом и других аналогичных или связанных с ним пакетах и утилитах. Разрешается обсуждение вопросов близких к тематике рассылки или каким либо образом влияющих на развитие и распространение Flash технологии.

Подписчиком конференции может быть любой без каких либо ограничений "житель" Сети, имеющий адрес электронной почты, если он согласен с ее Правилами и соблюдает их при общении с другими подписчиками. Ознакомиться с Правилами конференции и подписаться на нее можно на http://www.vmstudio.com/web-designer/flash/mail-list.asp

Удачи,
VM
Модератор "RuFlash"
Редактор перевода


Help Contents

Начало

Понимание ActionScript

Запись сценариев на ActionScript

Создание интерактивности на ActionScript

Работа с муви-клипами

Интеграция Flash с веб-приложениями

Ошибки в ActionScript

Старшинство операторов и ассоциативность

Клавиши клавиатуры и их коды

Сообщения об ошибках

Выходные данные справки


Help Contents

Начало
Начало: Краткий обзор
Что нового во Flash 5 ActionScript
Различия между ActionScript и JavaScript
Редактирование текста
Dot синтаксис
Типы данных
Локальные переменные
Функции определяемые пользователем
Предопределенные объекты
Команды клипу
Новые команды
Интеллектуальные клипы
Отладчик
XML поддержка
Использование справки при написании скрипта

Понимание ActionScript

Запись сценариев на ActionScript

Создание интерактивности на ActionScript

Работа с муви-клипами

Интеграция Flash с веб-приложениями

Ошибки в ActionScript

Старшинство операторов и ассоциативность

Клавиши клавиатуры и их коды

Сообщения об ошибках

Выходные данные справки


Help Contents

Начало

Понимание ActionScript
Понимание ActionScript: Обзор
Написание скриптов на ActionScript
Планирование и отладка скриптов
Об объектно-ориентированном программировании
Об объекте MovieClip
Как выполняются скрипты
Управление во время работы ActionScript
Терминология ActionScript
Разбор простого скрипта
Использование Actions panel
Нормальный режим
Экспертный режим
Переключение между режимами редактирования
Использование внешних редакторов
Выбор опций Actions panel
Подсветка и проверка синтаксиса
О подсвечивании ошибок
Назначение команд объектам
Назначение команд кадрам

Запись сценариев на ActionScript

Создание интерактивности на ActionScript

Работа с муви-клипами

Интеграция Flash с веб-приложениями

Ошибки в ActionScript

Старшинство операторов и ассоциативность

Клавиши клавиатуры и их коды

Сообщения об ошибках

Выходные данные справки


Help Contents

Начало

Понимание ActionScript

Запись сценариев на ActionScript
Writing scripts with ActionScript: Overview
Using ActionScript's syntax
About data types
About variables
Using operators to manipulate values in expressions
Using actions
Controlling flow in scripts
Using predefined functions
Creating custom functions
Using predefined objects
Using custom objects
Opening Flash 4 files
Using Flash 5 to create Flash 4 content

Создание интерактивности на ActionScript

Работа с муви-клипами

Интеграция Flash с веб-приложениями

Ошибки в ActionScript

Старшинство операторов и ассоциативность

Клавиши клавиатуры и их коды

Сообщения об ошибках

Выходные данные справки


Help Contents

Начало

Понимание ActionScript

Запись сценариев на ActionScript

Создание интерактивности на ActionScript
Создание интерактивности на ActionScript: Краткий обзор
Создание собственного курсора
Определение позиции мыши
Перехват нажатий клавиш
Создание скроллинга в текстовом поле
Установка значений цвета муви-клипа
Создание средств управления звуком
Обнаружение пересечений

Работа с муви-клипами

Интеграция Flash с веб-приложениями

Ошибки в ActionScript

Старшинство операторов и ассоциативность

Клавиши клавиатуры и их коды

Сообщения об ошибках

Выходные данные справки


Help Contents

Начало

Понимание ActionScript

Запись сценариев на ActionScript

Создание интерактивности на ActionScript

Работа с муви-клипами
Работа с мувиклипами. Краткий обзор
Иерархия линеек
Иерархические связи линеек
Обмен сообщениями между линейками
Абсолютные и относительные пути
Определение пути
Использование команд и методов для управления линейками
Методы или команды?
Использование нескольких методов или команд для определённой линейки
Привязка команд и методов
Загрузка и выгрузка дополнительных клипов
Изменение позиции клипа и его вида
Перемещение клипов
Дублирование и удаление клипов
Присоединение мувиклипа
Создание смарт-клипов
Определение параметров клипа
Настройка параметров
Создание настраиваемого интерфейса

Интеграция Flash с веб-приложениями

Ошибки в ActionScript

Старшинство операторов и ассоциативность

Клавиши клавиатуры и их коды

Сообщения об ошибках

Выходные данные справки


Help Contents

Начало

Понимание ActionScript

Запись сценариев на ActionScript

Создание интерактивности на ActionScript

Работа с муви-клипами

Интеграция Flash с веб-приложениями
Интеграция Flash с веб-приложениями: Overview
Sending and loading variables to and from a remote file
Using loadVariables, getURL, and loadMovie
About XML
Using the XML object
Using the XMLSocket object
Creating forms
Creating a search form
Using variables in forms
Verifying entered data
Sending messages to and from the Flash Player
Using fscommand
About Flash Player methods

Ошибки в ActionScript

Старшинство операторов и ассоциативность

Клавиши клавиатуры и их коды

Сообщения об ошибках

Выходные данные справки


Help Contents

Начало

Понимание ActionScript

Запись сценариев на ActionScript

Создание интерактивности на ActionScript

Работа с муви-клипами

Интеграция Flash с веб-приложениями

Ошибки в ActionScript
Ошибки в ActionScript: Обзор
Основные принципы поиска ошибок
Использование отладчика
Включение режима отладки в клипе
О строке состояния
Окно списка
Отображение и изменение переменных
Использование списка Watch
Отображение свойств клипа и их редактирование
Использование окна Output
Использование списка объектов
Использование списка переменных
Использование trace

Старшинство операторов и ассоциативность

Клавиши клавиатуры и их коды

Сообщения об ошибках

Выходные данные справки


Help Contents

Начало

Понимание ActionScript

Запись сценариев на ActionScript

Создание интерактивности на ActionScript

Работа с муви-клипами

Интеграция Flash с веб-приложениями

Ошибки в ActionScript

Старшинство операторов и ассоциативность
Operator List

Клавиши клавиатуры и их коды

Сообщения об ошибках

Выходные данные справки


Help Contents

Начало

Понимание ActionScript

Запись сценариев на ActionScript

Создание интерактивности на ActionScript

Работа с муви-клипами

Интеграция Flash с веб-приложениями

Ошибки в ActionScript

Старшинство операторов и ассоциативность

Клавиши клавиатуры и их коды
Клавиши клавиатуры и их коды. Обзор
Символы от A до Z и стандартные числа от 0 до 9
Клавиши цифровой клавиатуры
Функциональные клавиши
Другие клавиши

Сообщения об ошибках

Выходные данные справки


Help Contents

Начало

Понимание ActionScript

Запись сценариев на ActionScript

Создание интерактивности на ActionScript

Работа с муви-клипами

Интеграция Flash с веб-приложениями

Ошибки в ActionScript

Старшинство операторов и ассоциативность

Клавиши клавиатуры и их коды

Сообщения об ошибках
Table of error messages

Выходные данные справки


Help Contents

Начало

Понимание ActionScript

Запись сценариев на ActionScript

Создание интерактивности на ActionScript

Работа с муви-клипами

Интеграция Flash с веб-приложениями

Ошибки в ActionScript

Старшинство операторов и ассоциативность

Клавиши клавиатуры и их коды

Сообщения об ошибках

Выходные данные справки
Acknowledgments
Trademarks & Disclaimers
Мейл-конференция "RuFlash"


Welcome to ActionScript Reference Help!

РУССКАЯ РЕДАКЦИЯ

Перевод сделан силами участников мейл-конференции
"RuFlash"