Смекни!
smekni.com

Macromedia Flash MX (стр. 22 из 23)

УправлениепроигрывателемFlash

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

ВзаимодействиесосценариямиJavaScript

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


Использованиевнешнихданных

Мы выяснили, каким образом приложение Flash может управлять внешними программами (а также как внешние программы могут управлять этим приложением). Теперь пришла пора выйти за пределы клиентского компьютера и обратиться к серверным программам.

Как вы уже знаете, серверные программы работают на удаленных компьютерах под управлением программы Web-сервера, с пользователями напрямую не взаимодействуют, а "общаются" с ними только по сети. По сети они принимают от пользователей запросы и так же высылают им ответы: тексты писем, счета, данные из баз и пр. Стало быть, клиентские приложения, "общающиеся" с серверными, должны уметь преобразовывать запросы пользователей в поддерживаемый серверными программами формат. Ну и, конечно, они должны выполнять обратное преобразование, иначе пользователь ничего не сможет разобрать в возвращенном результате.

Flash, как вы уже знаете, делает за вас очень много работы. Он сам кодирует данные, чтобы их можно было нормально передать по протоколу HTTP(HyperTextTransferProtocol - протокол передачи гипертекста), используемому при передаче Web-страниц от сервера к клиенту. (Протоколом называется набор правил обмена информацией по сети, которых должны придерживаться приложения.) Вам остается только правильно сформировать нужный запрос и получить и обработать ответ.

ИспользованиеданныхXML

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Заключение