Московский физико-технический институт
Опубликован: 23.12.2005 | Доступ: свободный | Студентов: 2868 / 252 | Оценка: 4.61 / 4.44 | Длительность: 27:18:00
ISBN: 978-5-9556-0051-2
Лекция 14:

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