ActionScript краткий обзор

         

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


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

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

Вывод окна Output:

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

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

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



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


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

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

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

Выбрать Window > Debugger.

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

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

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

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

Ошибки в ActionScript



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


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

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

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

Список всех текущих объектов на сцене будет показан в окне 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. В этом контексте, объект является формой или символом на сцене.



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


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

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

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

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

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



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


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

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

Ошибки в ActionScript

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

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

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

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

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



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


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

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

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

Ошибки в ActionScript

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



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


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

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



Окно списка


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



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


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

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



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


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

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

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

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

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

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

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


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

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

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

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



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

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

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


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


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

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

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

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

Ошибки в ActionScript

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

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

Значение должно быть постоянным значением (например, "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.



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


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

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

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

Ошибки в ActionScript

Вкладка Properties в Отладчике.

 

Ошибки в ActionScript

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

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

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

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

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



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


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

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

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

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

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

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

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

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

Ошибки в ActionScript

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

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

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

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