Приходится вновь загружать Flash IDE, в сотый раз все проверять, находить ошибки - исправлять - выкладывать в сеть, и... О, черт! Снова что-то не так!
Чтобы упростить отладку роликов, их можно отлаживать прямо онлайн. Конечно, полнофункциональный Debugger - как в Flash IDE - будет недоступен. Но у Вас будет возможность писать в лог-файл все сообщения, которые Вы в ролике выводите с помощью команды trace().
Другими словами, Вы сможете получить то же, что и в окне Output во время выполнения ролика - но только при выполнении с сайта, онлайн.
Все, что для этого понадобится - установить себе специальный Flash Player Debug. Это версия, предназначенная для FLEX-разработчиков (FLEX выполняется с помощью обычного флеш-плеера). Разумеется, сама среда FLEX нам не понадобится - нам нужен только Flash Player Debug.
Итак, по шагам, что и как надо сделать, чтобы получить возможность отладки flash-роликов (.swf) в онлайне.
Шаг 1-й. Скачать и установить себе Flash Player Debug
Скачать этот плеер можно бесплатно, со страницы сайта Adobe - http://www.adobe.com/support/flashplayer/downloads.html
На картинке ниже показано, где на данной странице находится этот плеер - он есть в версии под Internet Explorer, и под Nescape-совместимые браузеры (Firefox, Opera). Ну и плюс под Мак и Linux:
Перед установкой данного плеера Вам необходимо удалить из системы Ваш текущий - обычный - flash-плеер. В Windows это можно сделать либо через "Панель управления/Установка и удаление программ", либо с помощью специального деинсталлятора от Adobe. Получить его можно на странице http://kb2.adobe.com/cps/141/tn_14157.html
Там же есть и инструкции - правда, на английском. Но думаю, никаких проблем у Вас не возникнет - просто перед деинсталляцией надо закрыть ВСЕ программы, которые могут использовать Flash - браузеры, мессенджеры (типа ICQ), отдельно открытые SWF-файлы и пр.
После установки Flash Player Debug запустите браузер, и откройте какой-нибудь флеш-ролик. Над роликом откройте контекстное меню Flash-плеера. Там должны быть пункты меню "Отладчик" и "Показать области перерисовки" (как на картинке ниже):
Если есть - все окей, плеер установлен.
Шаг 2-й. Настройка Flash Player Debug
Отладочная версия Flash Player выводит лог в файл на локальном компьютере. Но чтобы он начал выводить этот лог, вначале потребуется разрешить этот лог формировать. И делается это немного замороченным способом.А именно.
Сперва надо прописать файл конфигурации. Но в строго определенное место - в папку, которая назначена в системе как домашняя для текущего пользователя.Обратите внимания - как правило, в системах Windows эти переменные уже заданы, и указывают на домашнюю папку того пользователя, под которым Вы работаете в системе.
То есть - C:\Documents and Settings\<имя-пользователя>.
В самой системе Windows местоположение данной папки задается с помощью т.н. переменных системного окружения - HOMEDRIVE и HOMEPATH. Но если хотите проверить наверняка - нажмите на меню "Пуск", выберите пункт "Выполнить...", введите cmd и нажмите Enter. Запустится интерпретатор командной строки. В нем введите команду set и вновь нажмите Enter. Перед Вами появится список всех переменных системного окружения - включая их имена и значения. Найдите там HOMEDRIVE и HOMEPATH. Они и задают то место, куда надо прописать файл конфигурации. Если же этих переменных в списке нету, то их надо задать принудительно. Для этого следует нажать правой кнопкой мышки на иконке "Мой компьютер", и выбрать "Свойства". Затем в открывшемся окне перейти на вкладку "Дополнительно", и там - почти в самом низу - нажать на кнопку "Переменные среды". Во вновь открывшемся окне следует создать две указанные переменные. Для этого нажимаем кнопочку "Создать" в верхнем блоке ("Переменные среды пользователя для <какое-у-Вас-там-имя>"), и заполняем два поля. Верхнее - имя переменной (HOMEDRIVE или HOMEPATH), второе - ее значение. Для примера: HOMEDRIVE C: HOMEPATH \Documents and Settings\<имя-Вашего-пользователя> После создания переменных перегрузите компьютер. |
Итак, будем считать, что у нас уже задана папка для файла конфигурации - C:\Documents and Settings\<имя-пользователя>.
В этой папке нам надо создать текстовый файл, который называется mm.cfg.
В нем следует прописать несколько настроек (каждая с новой строки):
TraceOutputFileEnable=1 ErrorReportingEnable=1 MaxWarnings=500
Параметр TraceOutputFileEnable определяет, будут ли выводится в лог те строки, которые вы в Flash-ролике формируете с помощью команды trace(). Если этот параметр равен 0 (т.е. TraceOutputFileEnable=0) - то эти строки в лог выводится не будут. Если 1 - будут.
Параметр ErrorReportingEnable определяет, будут ли выводить в лог сообщения об ошибках воспроизведения. Если они Вам не нужны - можете их отключить (т.е. прописать ErrorReportingEnable=0).
Параметр MaxWarnings определяет, сколько строчек сможет записать в лог-файл Flash Player Debug. По умолчанию это значение равно 100 - после чего новые строки в лог не пишутся. На примере выше мы задали ограничение в 500 строк. Кстати, если прописать MaxWarnings=0, то мы снимем всякое ограничение на длину лога.
Важно - при каждом новом запуске Flash Player Debug содержимое лога уничтожается.
Шаг 3-й. Найти то место, где расположен лог :)
Раньше, до апдейта 9-й версии Flash Player Debug местоположение лог-файла можно было задать самому - прописав его в файле конфигурации mm.cfg (использовался параметр TraceOutputFileName=<полный-путь-к-файлу/имя-файла>).
Но теперь местоположение и имя файла жестко зафиксированы.
Называется он flashlog.txt.
В системах Windows 95 / 98 / ME / 2000 / XP этот файл находится по адресу C:\Documents and Settings\<имя-Вашего-пользователя>\Application Data\Macromedia\Flash Player\Logs
В системе Windows Vista лог-файл лежит по адресу C:\Users\<имя-пользователя>\AppData\Roaming\Macromedia\Flash Player\Logs
(Если Ваша домашняя папка на другом диске - или называется вдруг по другому - что можно проверить по значению переменных HOMEDRIVE или HOMEPATH, о которых упоминалось Выше, то начало пути надо поменять на тот, что задан этими переменными.)
Шаг 4-й. Собственно отладка ролика
Открываем Flash IDE, создаем новый документ, и в первом кадре нашего единственного слоя вписываем ActionScript - что-то наподобие:
trace("Test message from Flash"); var a=10; var b=20; var c=a+b; trace("c = " + c);
Нажимаем Ctrl+Entrer, смотрим, все ли в порядке. Появится окно Output, где будет результат наших команд trace().
Перед тем как сделать Publish ролику, чтобы протестировать его онлайн, не забудьте в настройках публикации (Ctrl + Shift + F12) разрешить отладку для скомпилированного файла. У меня - во Flash IDE 8 она называется Debagging Permitted. У Вас же - если версия IDE более новая - может называться по другому. Например, Enable Debugging. Если ее не включить, в лог-файле может ничего не появится.
Затем загружаем наш ролик в веб (с помощью любого доступного способа внедрения в html - через JavaScript, тег <object> или <embed>) - и смотрим в лог-файл.
И видим:
Test message from Flash c = 30
Вот и все. Осталось дело за малым - выводить с помощью trace нужные нам значения переменных, находить ошибки, исправлять и наслаждаться корректно работающими флеш-роликами.
В общем, удачной Вам отладки flash-роликов онлайн!
какого крена у вас CTRL+V не работает???????? ... параноики
ОтветитьУдалитьО - заработало ))))) Извиняюсь
ОтветитьУдалитьна ответ особо не рассчитываю ибо нахамил ... нервничаю - 2 дня уже потерял .... и все же
ОтветитьУдалитьсделал все как у Вас написано, но ничего не заработало. Папки LOGS по пути C:\Documents and Settings\\Application Data\Macromedia\Flash Player вообще нету
создал и папку и файл пробовал создовать - ничего не помогает. У меня стоят и FB 4.0 и Flash CS4 и в обоих отладчики нормально работают - мне нужен лог-файл, уже потерял херову кучу нервов, клавиатуру и слюней - как эту хрень заставить сбрасывать инфу в лог? в настройках публикации все разрешено.
Еще раз извиняюсь за хамсвто - терпенье на исходе, бубны все порваны ((((
\\ слеша - это потому что я скопировал неудачно - слеш вообще ессно у меня один
ОтветитьУдалитьC:\Documents and Settings\Administrator\mm.cfg - создал.
ОтветитьУдалитьфайл flashlog.txt вообще отсутствует где-либо - искал по всему компу. Создавал вручную - не помогает
в браузере проверил - версия плеера DEBUG 10.чего-то там
ОтветитьУдалитьЭ-эх, мать моя женщина. Фиг зна что сказать. Когда я писал эту заметку, у меня стоял Flash IDE 8-й версии, сам же я юзал (и юзаю) Win XP - и для этой вязки все пути, приведенные в заметке, работали - поскольку я тестировал ролик один в онлайне.
ОтветитьУдалитьНо с тех пор я систему давно переставил, сел за Flash IDE версии CS3, а debug-версию плеера больше не ставил, поскольку нужды пока не было.
Но могу посоветовать искать подобные логи в папках не с именем Macromedia, а уже с именем Adobe - возможно, они с переходом на CS4 и сменили название папок - фиг зна...
Кроме того, попробуйте посмотреть не только по папкам C:\Documents and Settings\\Application Data\, но и в папках вида
C:\Documents and Settings\\LOCAL SETTINGS\Application Data\
Ну и еще мне как-то знакомый, который в флеше сильно рубит, говорил еще о какой-то программе, которая тоже позволяет тестировать Флеш подобным образом. Но история переписки в ICQ давно вытерта, а он сам не в сети - так что и переспросить не могу :(
В общем, будем надеяться, что вам поможет Гугл.
Александр, спасибо за статью! Очень полезное описание, за исключением путей и версий приложений. Остальное как прежде.
ОтветитьУдалитьЯ использую плагин FlashTrace, он все показывает прямо в браузере. А в принципе есть еще весьма продвинутые логеры вроде Flash Console, Arthropod. О логировании во флеше http://kolonitsky.org/blog/2012/10/as3loggers/
А может подсказать кто-нибудь, как включить логи встроенного плеера хромовского? Уж очень он забагованный (?)... Если его отключать и пользоваться другим - адобовским - логи пишутся, но и приложение работает корректно. А не работает оно как надо именно в стандартном, но я что-то не найду, как включить отображение/запись логов для него :(
ОтветитьУдалитьВидимо, это невозможно или никто не знает :) Пичаль :(
ОтветитьУдалить