Отладка (статья написана для FLASH-5), страница 3

Команда List Objects создает каталог текста, фигур, графических изображений и мувиклипов, определенных в ролике. Чтобы выполнить ее, выберите из главного меню Debug List Objects, находясь в режиме тестирования. Обратите внимание, что List Objects не показывает объекты данных (экземпляры класса). О них сообщает команда List Variables.

В примере 19-2 приведен образец выдачи команды List Objects. Обратите внимание на явную пометку текстовых полей, которые могут редактироваться, и показ экземпляров мувиклипов с автоматическими именами (например, _level0.instance1).

Пример 19-2. Образец выдачи List Objects

Level #0: Frame=1
  Shape:
  Text: Value = "variables functions clip events startDrag stopDrag Math"
  Text: Value = "this movie demonstrates a little math, variables, movie clip events"
  Text: Value = "draggable distance"
  Text: Value = "calculator"
  Movie Clip: Frame=1 Target="_level0.instance1"
    Shape:
  Text: Value = "distance between clipstotal:horizontal:vertical:"
  Edit Text: Variable=_level0.dist Text="222"
  Edit Text: Variable=_level0.deltaX Text="174"
  Edit Text: Variable=_level0.deltaY Text="138"
  Movie Clip: Frame=1 Target="_level0.obj1"
    Shape:
  Movie Clip: Frame=1 Target="_level0.obj2"
    Shape:

Опять-таки, List Objects предоставляет только мгновенный снимок в данный момент времени. Чтобы получить текущее значение объектов после их изменения, команду нужно выполнить снова.

19.1.4. Профайлер (Bandwidth Profiler)

Профайлер Bandwidth Profiler используется для моделирования загрузки Flash-ролика при разных скоростях модема. С помощью Bandwidth Profiler можно измерить производительность ролика, проверить код предварительной загрузки и проследить за положением воспроизводящей головки (Playhead) на главной шкале времени (Main Timeline). Включить Bandwidth Profiler можно следующим образом:

1.  Находясь в режиме тестирования из главного меню выбрать View Bandwidth Profiler.

2.  В меню Debug выбрать нужную скорость загрузки.

3.  Для моделирования загрузки ролика на этой скорости выбрать в меню View Show Streaming.

На производительность Flash могут влиять многие факторы, в том числе используемые объекты и требования к Flash Player. Например, при использовании больших растровых изображений, выводе сложных фигур, состоящих из многих кривых, и чрезмерном использовании альфа-каналов производительность может существенно упасть. Уменьшение времени загрузки и отображения объектов может сократить требования к пропускной способности каналов и мощности процессора, необходимых для выполнения сценариев. Что говорить, ActionScript обычно работает значительно медленнее, чем компилируемые языки, такие как C.

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

ПРЕДУПРЕЖДЕНИЕ

Отображение элементов в окне Output происходит очень медленно по сравнению с "невидимыми" операциями ActionScript. Если простой ролик кажется чрезмерно прерывистым, попробуйте отключить все предложения trace( ) или воспроизвести ролик в режиме, отличном от режима тестирования.

Обсуждение того, как писать оптимальный код, находится за рамками данной книги, но все же мы дадим некоторые советы:

·  Не повторяйте операцию многократно в цикле, если того же результата можно добиться, выполнив ее один раз вне цикла.

·  Не следует дожидаться в цикле совершения некоторого события. Ожидание может оказаться долгим или событие вообще никогда не произойдет, а производительность снизится или предложение окажется заблокированным. Вместо этого используйте обработчики событий, такие как on (load), запускаемые при возникновении или завершении некоторого события.