Беларусь, рогачёв |
Работа флэш-программ в Internet
Отладка
Основная информация, касающаяся отладки во Flash MX, уже была приведена ранее в лекции "Базовые понятия ActionScript". Но когда вы выкладываете флэш-проект в Интернет, у вас появляются специфические проблемы и вам становятся нужны специфические средства отладки.
Например:
- Если вы используете внешний предзагрузчик, вам уже будет мало обычного режима отладки, позволяющего отлаживать один флэш-ролик;
- Вам понадобится имитация условий Интернет, то есть ограничение пропускной способности канала;
- Некоторые проблемы проявляются только на части аппратно-программных платформ, под которыми отладчик может быть вам недоступен.
В этом разделе мы и рассмотрим специфику отладки флэш-проектов в Интернет.
Отладочная консоль
Одним из основных отладочных инструментов всегда является отладочная консоль, которая, к сожалению, во Флэш МХ доступна только в среде разработки. Если же вы хотите запустить проект в реальных условиях, вы не сможете увидеть отладочной информации, выводимой с помощью trace.
Для того чтобы решить эту проблему, можно сделать специальную отладочную консоль, в которую выводить информацию специальными методами.
Как сделать такую консоль? Это обычный клип, содержащий большое текстовое поле с полосами прокрутки, который скрывается и показывается по нажатию на специальную клавишу, например F12 или F2 (мы в одном из проектов сделали консоль, реагирующую на любую из этих клавиш, потому что F2 в среде Флэш МХ под Windows открывает стандартную консоль, а F12 под управлением MacOS открывает CD-ROM). Кроме того, нужно еще написать общедоступные функции для вывода отладочной информации, которые взаимодействуют с клипом консоли.
Примерно так может выглядеть код класса-клипа консоли:
#initclip function Console () { // здесь, использую Stage.width и Stage.height, // устанавливаем размеры элементов консоли this._visible = false; //прячем консоль Key.addListener(this); //включаем реакцию на клавиатуру } Console.prototype = new MovieClip (); Console.prototype.onKeyDown = function () { //Используем коды клавиш F2 && F12 if ((Key.getCode() == 123 || Key.getCode() == 113) && _global.DEBUG > 0) { this._visible = !this._visible; // показываем или прячем обновляем содержимое консоли if (this._visible) this.edit.text = _global._CONSOLE_LOG; } } Object.registerClass("Console", Console); #endinitclip А вот так, например, может выглядеть отладочная функция. _global.infoMsg = function (message) { if (_global.DEBUG > 1) { trace (message); _global._CONSOLE_LOG += message + "\n"; } }
Примечание. Упрощенный вариант отладочной консоли можно сделать с помощью LocalConnection , который был описан выше в этой лекции (отладочная информация выводится в другом флэш-ролике: например, с помощью trace, если на данной платформе есть среда Flash MX, или в текстовое поле, если нет). В любом случае самой кропотливой части (выравнивание элементов консоли, реакция на клавиатуру) можно в таком упрощенном варианте избежать.