| Беларусь, рогачёв |
Работа флэш-программ в 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, или в текстовое поле, если нет). В любом случае самой кропотливой части (выравнивание элементов консоли, реакция на клавиатуру) можно в таком упрощенном варианте избежать.