logo search
43121

Глава 21. Средства отладки сценариев ActionScript

В мире нет ничего совершенного. Даже компьютеры - и те несовершенны, постоянно "зависают", ломаются, "глючат" по любому поводу, а то и без повода. И это понятно: ведь компьютеры - творение людей, а люди да что и говорить!., люди есть люди...

Программы содержат ошибки. Не все, конечно, а те из них, что состоят более чем из двух строк кода. (Функционального кода, который что-то реально делает.) Чем больше и сложнее программа, тем больше (теоретически, по крайней мере) в ней ошибок. Вы и сами, конечно, это знаете: уже всем надоели истории об ошибках в операционных системах Microsoft Windows, да и другие большие программные пакеты не лучше. Производители ПО, разумеется, пытаются с этим бороться различными способами, но пока что толку особо не видно. А проистекает все это безобразие опять же оттого, что программы пишутся людьми. А люди есть люди...

Разумеется, ошибки необходимо исправлять. (Если вы думаете, что их нужно смывать кровью, попытайтесь вспомнить все совершенные вами ошибки и прикиньте, хватит ли у вас крови все их смыть.) Для этого используются мощные программные отладчики, организуются специальные, весьма дорогостоящие мероприятия, выпускаются бесконечные пакеты обновления и т. д. и т. п. И что в результате? Как говорят злые языки, "исправляются старые ошибки и добавляются новые". Не хотелось, конечно, чтобы это было на самом деле, но люди есть люди!

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

Но хватит философских отступлений. Давайте поговорим о "вылавливании" ошибок, допущенных вами в сценариях ActionScript, и их исправлении. Одним словом, поговорим об отладке сценариев.

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

Как выявить ошибки

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

Синтаксические ошибки - это ошибки и неточности в написании самого кода. Скажем, если вы написали вместо действия else что-то похожее на elswe. Flash предупредит вас о синтаксической ошибке. В самом деле, действия eiswe в языке ActionScript нет, и предупреждение Flash вполне резонно.

Мы рассмотрели простейшую синтаксическую ошибку, которая, что называется, бьет в глаза. Более сложная синтаксическая ошибка - вызов несуществующего метода объекта. Тут сразу трудно понять, что вызывает ошибку. Хорошо, что Flash во многих случаях весьма точно дает знать, что ему не нравится в вашем коде.

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

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

Отладчик Flash активизируется только при проигрывании фильма в так называемом режиме отладки. Во время обычного проигрывания и рисования фильма он недоступен.

Чтобы запустить проигрывание фильма в отладочном режиме, выберите пункт Debug Movie меню Control или нажмите комбинацию клавиш <Ctrl>+<Shift>+<Enter>. После этого фильм будет экспортирован и открыт в отдельном окне Flash, но проигрывание фильма будет приостановлено. Кроме того, на экране появится само окно отладчика. Чтобы запустить проигрывание фильма, щелкните кнопку Continue, расположенную в верхней части этого окна.

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

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

Удаленная отладка фильмов Flash

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

Чтобы удаленная отладка стала возможной, вам следует поместить на Web-сервер вместе с файлом Shockwave/Flash, содержащим фильм, еще один особый файл, содержащий отладочную информацию. Этот файл имеет расширение swd, такое же имя, как у файла фильма, и формируется Flash при экспорте. Если же Flash не найдет на сервере SWD-файл, отладчик не будет работать правильно; в частности, вы не сможете ставить точки останова и трассировать код. Сейчас мы рассмотрим, как создать такой файл и как запустить удаленную отладку.

Сначала нужно экспортировать фильм, задав параметры, разрешающие удаленную отладку. Для этого, прежде всего, откройте нужный документ. В диалоговом окне Publish Settings (см. рис. 19.1), на вкладке Flash включите флажок Debugging Permitted. Как только вы включите этот флажок, станет доступно поле ввода Password, где вы сможете ввести пароль. После этого любой, кто захочет отлаживать ваш фильм, должен будет ввести этот пароль. Используйте его, чтобы не давать просматривать ваши сценарии случайным людям.

После этого опубликуйте или экспортируйте фильм. Выложите на сервер сформированные файлы swf и swd. Все, подготовка к удаленной отладке завершена.

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

Прежде всего, вам нужно включить удаленную отладку в самом Flash. Для этого запустите Flash, откройте любой документ (можно, в принципе, оставить пустой, созданный при запуске) и запустите его отладку. Когда на экране появится окно отладчика, проверьте, включен ли пункт-выключатель Enable Remote Debugging дополнительного меню. Если он отключен, включите его.

Теперь, применив все знания, редактируйте.

Заключение

Мы рассмотрели все возможности Flash, описанные в поставляемом с ним электронном руководстве. Мы упомянули также те возможности, которые почему-то в руководстве не были описаны, вероятно, его авторы куда-то торопились и не доделали свою работу. Чтобы раздобыть эту "секретную" информацию, нам пришлось порыться на Web-сайте Macromedia - уж там-то есть все. И, разумеется, пришлось многое пробовать "методом научного тыка", а иначе нельзя узнать программный продукт, тем более, такой сложный.

Но очень многое осталось "за кадром". Мы не говорили о расширениях Flash - дополнительных модулях, подключаемых к основной среде и выполняющих какие-либо специальные задачи. Мы не упоминали о тонкостях работы Flash на компьютерах Apple Macintosh. Мы не описывали многие частные проблемы, с которыми вы вполне можете столкнуться при работе с Flash, так как они появляются достаточно редко, но все-таки появляются. Мы не рассматривали дополнительные программы, поддерживающие формат Shockwave/Masn, в том числе и выпущенные самой фирмой Macromedia. Мы, в конце концов, не говорили о создании серверных приложений и тонкостях языка HTML. Мы о многом не говорили. Ибо невозможно объять необъятное.

Macromedia Flash MX - мощный программный продукт, который еще не раз преподнесет сюрпризы пользователям. Чтобы овладеть им в полной мере, вам также могут понадобиться дополнительные знания по компьютерным сетям, Интернету, серверному программированию, языку HTML и прочим Web-технологиям.

Литература

1.Дронов В.А. Macromedia Flash MX. - СПб.: БХВ-Петербург, 2003. - 848 с.: ил.

2.Гурвиц, Майкл, Мак-Кейб, Лора. Использование Macromedia Flash MX. Специальное издание.: Пер. с англ. — М.: Издательский дом "Вильяме", 2003. — 704 с.: ил.

3.Уотролл Э., Гербер Н. Эффективная работа: Flash MX (+CD). — СПб.; Питер; Киев: BHV, 2003, — 720 с: ил.