Беларусь, рогачёв |
Работа флэш-программ в Internet
Удаленная отладка
Удаленная отладка, которая есть во Flash MX, - исключительно полезный инструмент для отладки "в боевых условиях". С его помощью вы можете запустить флэш-ролик в нужной конфигурации (используя любые html-шаблоны, предзагрузчики и т. п.) на нужной платформе с нужного веб-сервера, после чего подключиться к нему отладчиком.
Делается это так. Во-первых, вам понадобится специальная, отладочная версия флэш-плеера. Ее можно скачать с Macromedia, об этом читайте, например, здесь:
http://www.macromedia.com/support/flash/downloads.html#updaters.
Если у вас установлена отладочная версия флэш-плеера, в контекстном меню флэш-роликов появляется пункт debug (он может быть disabled, если при компиляции ролика отладка была запрещена). Отладочную версию, разумеется, нужно устанавливать на компьютер, на котором вас интересует работа флэш-ролика.
Во-вторых, нужно разрешить отладку конкретного флэш-ролика. Для этого зайдите в File / Publish Settings / Flash и установите галочку Debugging Permitted.
В-третьих, нужно разрешить удаленную отладку на том компьютере, на котором у вас установлена среда разработки Flash МХ. Откройте Window / Debugger ( Shift-F4 ) и в контекстном меню (которое отображается при нажатии на кнопку в правом верхнем углу) включите галочку Enable Remote Debugging.
Выполнив все эти действия, вы можете в любой момент выбрать пункт Debug из контекстного меню флэш-плеера. Во всплывающем окошке нужно ввести адрес машины, на которой запущена среда Flash МХ (если в среде указано, что удаленная отладка разрешена, она слушает определенный порт). Если вы работаете в локальной сети, скорее всего, будет достаточно просто имени машины. После этого можно отлаживать ролик удаленно, при этом работают все средства отладки, такие, как точки останова, просмотр исходного кода и т. п. Разумеется, тот же прием работает и тогда, когда плеер и среда запущены на одной и той же машине.
Здесь есть одна тонкость. Когда вы компилируете флэш-ролик с установленной галочкой Debugging Permitted, создается специальный *.swd- файл с отладочной информацией, который используется в процессе отладки. Этот файл должен лежать в том же каталоге, где и *.swf-файл. Если этот файл доступен, отладочный флэш-плеер сразу при загрузке флэш-ролика предложит подсоединиться к компьютеру с установленной средой разработки Flash МХ. Если же *.swd-файла нет, то нужно будет самому выбрать пункт debug из контекстного меню, а кроме того, многие функции отладки, в частности, точки останова и исходный код, будут недоступны.
Тестирование на канале малой пропускной способности
Как мы уже отмечали ранее, некоторые проблемы (например, рассинхронизация runtime shared клипов) проявляется только на узком канале. Кроме того, только в таких условиях имеет смысл тестировать, например, предзагрузчики. Далее мы рассмотрим два различных метода тестирования флэш-проектов при малой пропускной способности канала.
Bandwidth profiler
Bandwidth profiler - встроенное во Flash MX средство, позволяющее имитировать узкую пропускную способность канала. Это средство идеально подходит для тестирования длинных анимационных роликов, содержащих большое количество кадров, с предзагрузчиками, размещенными внутри того же флэш-ролика.
Запустите ваш флэш-ролик из-под встроенного во флэш-среду проигрывателя ( Ctrl-Enter ) и выберите Bandwidth profiler в меню View ( Ctrl-B ). Выберите желаемую пропускную способность канала в меню Debug, после чего выберите Show Streaming в меню View ( Ctrl-Enter ). Теперь в центральной области экрана можете наблюдать, как работает ваш флэш-ролик при выбранной пропускной способности канала, а в верхней части отображается диаграмма загрузки кадров в одном из двух возможных режимов: Frame by Frame Graph ( Ctrl-F ) или Streaming Graph ( Ctrl-G ).
В режиме Frame by Frame Graph каждому кадру на линейке соответствует один столбик на диаграмме, размеру кадра ставится в соответствие высота столбика. Если высота столбика превышает красную линию (пропускная способность канала, деленная на частоту кадров), то данный кадр является узким местом (в принципе, можно постараться использовать эту информацию, чтобы максимально "выровнять" кадры и избежать узких мест). Впрочем, при использовании предзагрузчиков данная проблема не актуальна.
В режиме Streaming Graph каждому из столбиков соответствует как бы квант загрузочного времени, и становится виден весь процесс загрузки: если флэш-плеер загрузил маленький кадр, он сразу же грузит следующий в буфер, даже если его время еще не пришло, за счет этого у него появляется запас, и он может успеть загрузить кадры, которые занимают больше одного столбика. Там, где столбики поднимаются выше красной линии, флэш-плеер не успеет загрузить нужный кадр, и образуется узкое место.
Тестирование с помощью специальных web-серверов
Как вы уже заметили, Bandwidth profiler особенно полезен, когда во флэш-ролике много кадров.
А если у вас все наоборот - весь флэш-ролик состоит из одного кадра, то никакой особой пользы вы из bandwidth -профайлера не извлечете. А если у вас еще и внешний предзагрузчик или html-шаблон, то и вообще запустить проект под этим профайлером не удастся.
Для этого можно воспользоваться имитацией условий Интернет на более низком уровне, например, на уровне веб-сервера. Многие веб-сервера позволяют ограничивать пропускную способность канала. Одним из таких является легкий бесплатный сервер Xitami от Imatix corporation, который можно скачать с http://www.xitami.com. После его установки зайдите на страницу администрирования (http://localhost/admin) и укажите нужную пропускную способность канала ( pipe throttle ). Перезапустите веб-сервер.
Обратите внимание: после каждого захода на веб-страницу с тестируемым флэш-роликом вам придется стирать кэш браузера. В Internet Explorer это делается нажатием на кнопку Delete Files области Temporary Internet Files закладки General меню Tools / Internet Options.