FireFlash - это плагин для FireBug'а, с помощью которого можно легко и удобно отлаживать свои приложения.
Что такое FireBug?
FireBug - это расширение для браузера Mozilla Firefox. Используется он для отладки web-приложений и пожалуй является самым сильным инструментом в этой области. Попробовав раз, отказаться от него уже не сможешь :)
Что умеет FireFlash?
FireFlash предоставляет .swf-файлам на странице доступ к консоли FireBug'a. С возможностями добавлять в консоль и окно Output используемого редактора ActionScript 3.0 записи разных типов:
- Записи журнала
- Информационные сообщения
- Сообщения об опасности
- Деревья объектов
- ...
Как установить FireFlash?
Первым делом нужно установить Mozilla Firefox, если такого не имеется. Скачать его можно с официального сайта http://www.mozilla.com/.
Во-вторых, нужно поставить плагин FireBug не ниже версии 1.4.5. Установить его можно на соответствующей странице https://addons.mozilla.org/en-US/firefox/addon/1843/. После установки в правом нижнем углу браузера появится соответствующая иконка для открытия окна FireBug'a.
В-третьих нужно поставить сам FireFlash. Сделать это можно также со страницы дополнений к Mozilla Firefox по адресу https://addons.mozilla.org/en-US/firefox/addon/55979/. В правом верхнем углу содержимого FireBug'a вы увидите вот такую иконку.
Как обращаться к FireFlash из ActionScript 3.0?
Для этого имеется библиотека классов com.actionscript_flash_guru.* В ней имеется единственный необходимый нам класс com.actionscript_flash_guru.fireflashlite.Console.as, который содержит в себе различные методы для работы с FireFlash. Скачать архив с библиотекой можно с официальной страницы. А также можно подписаться на уведомления об обновлении библиотеки в Twitter.
А можно по-подробнее?
/** * */ /** * Блокирует вывод сообщений в окно Output внутри используемого FrameWork * Другими словами класс консоли не регистриует свои сообщения при помощи фунции trace(); */ Console.disableIdeTrace(); /** * */ /** * Метод выводит в консоли FireBug'a содержимое объекта в виде дерева, * а также дублирует его в окне Output * * @param Ссылка на объект * @param Количество вложенностей дерева * @param Сопутствующее сообщений */ Console.dir(obj, 3, "Custom message"); /** * */ /** * Метод выводит в консоли FireBug'a содержимое xml-строки, * а также дублирует его в окне Output * * @param Строка xml-узла * @param Сопутствующее сообщений */ Console.dirxml(xml, "Custom message"); /** * */ /** * Метод выводит в окно Output сообщение с меткой ошибки, * ссылкой на класс и метод инициализировавший ошибку * * @param Строка с сообщением об ошибке */ Console.error("Error message"); /** * */ /** * Метод созает таймер с заданным идентификатором и начинает отсчет. * Для того чтобы, остановить таймер необходимо * использовать метод timeEnd(); * * @param Идентификатор таймера */ Console.time("your_id"); /** * */ /** * Метод останавливает таймер c заданым идентификатором. * Выводит информационное сообщение в консоль FireBug'a * с указанием имени .swf-файла, идентикатора таймера и его значения. * А также дублирует сообщение в окно Output с соответвующей меткой */ Console.timeEnd("your_id"); /** * */ /** * Метод проверяет условие, и если оно ложное * выводит указанное сообщение в окно Output * * @param Условие * @param Сообщение для ложного значения */ Console.assert(false, "Messages for the false values"); /** * */ /** * Метод выводит в окно Output сообщение с * ссылкой на класс и метод инициализировавший вызов * * @param Строка с сообщением об ошибке */ Console.stackTrace(); /** * */ /** * Метод выводит простое сообщение в консоль FireBug'a, * а также дублирует его в окно Output с соответствующей меткой * * @param Текстовое сообщение */ Console.log("Simple message"); /** * */ /** * Метод выводит информационное сообщение в консоль * FireBug'a с соответствующей иконкой, а также дублирует * его в окно Output с соответствующей меткой * * @param Информационное сообщение */ Console.info("Information message"); /** * */ /** * Метод выводит сообщение об опасности в консоль * FireBug'a с соответствующей иконкой, а также дублирует * его в окно Output с соответствующей меткой * * @param Cообщение об опасности */ Console.warn("Warning message!"); /** * */ /** * Метод дублирует поведение метода log(); */ Console.debug("Simple message"); /** * */ /** * Метод добавляет в консоли FireBug'а блок для группы * с заданным названием, а также дублирует соответсвующую * запись в окне Output * * @param Названия для группы */ Console.group("Group name"); /** * */ /** * Метод дублирует поведение метода Console.group(); * только блок будет иметь закрытое состояние */ Console.groupCollapsed("Group name"); /** * */ /** * Метод закрывает блок, открытый ранее * Используется только после вызова методов * Console.group(); и Console.groupCollapsed(); */ Console.groupEnd();
А как-же пример?
Откройте консоль FireBug'a и понажимайте на кнопки из примера. Вы должны увидеть результат примеров.
Дополнительно
Более подробно ознакомиться с FireFlash можно на его официальной странице.
Огромное спасибо за новый инструмент Nicholas Dunbar, надеюсь его работа прижевется в руках разработчиков ActionScript-приложений. А также спасибо Flastar'у за информацию о существовании инструмента.
Некоторый минус библиотеки в том, что mxmlc нервно реагирует на некоторые неточности, по отношению к которым компилятор Flash IDE вполне толерантен: скажем, тип вывода у метода не указан - бросает warning и не комиплирует. В свое время я искала способы обойти это дело - признаться, не нашла. Так что, может быть, по библиотеке надо пройтис напильником - вроде мелочи же.
ОтветитьУдалитьЗачем нам буржуйские заморочки?
ОтветитьУдалитьСмотрим сюда: http://www.silin.su/#AS3/utils/console/bin
И вообще, плагин к плагину... даже в ишаке работают log, info, warn и error. Что мешает самому перенаправить trace:
var o:Object = { a:1, b:2, c:3 };
// вставить проверку на поддержку метода
ExternalInterface.call('dir', o);
// работает в сафари, хроме и опере
elena, см. http://www.docsultant.com/site2/articles/flex_cmd.html
ОтветитьУдалитьключи -strict и -warnings установить в false.
а также
-compiler.show-*-warnings
-compiler.warn-*
как раз флексовый компилятор настраивается очень хорошо
или в ФД открыть свойства проекта -- Compiler Options и установить там кое-какие из вышеназванного