|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
[+1 24.11.10]
Регистрация: Jun 2010
Сообщений: 280
|
Дебаг функция вывода trace в окно приложения.
Возможно кому то покажется полезным... Столкнулся с проблемой отладки приложения. Дома, "на столе", все работает как надо. В разных режимах, в разных условиях. При размещении на сайте появляются кое какие глюки. Как же быть? Написал дебаг-функцию, которая выводит trace в окно приложения на отдельный слой. Может быть пригодится еще кому то.
Если в приложении написано trace(numChildren), например, то заменив это строкой TextMessAdd(numChildren) вы соответственно получите это сообщение не в трейс а в окне приложения на отдельном слое. Кроме того, если альфу выставить в нуль, то пользователи не будут видеть эти сообщения (впрочем, как и вы), однако останется возможность скопировать текст из этого слоя и затем вставить, например, в блокнот, где, само собой, всё будет видно. ///////////////////////////////////////////////////////////////////////// ////// ////// ДЕБАГ ФУНКЦИЯ ////// выводит trace в окно приложения ////// требует подключения следующих модулей: ////// import flash.text.TextField; ////// import flash.text.TextFormat; ////// ////// а также одной переменной на уровне класса ////// в которую будет помещен дебаг-текст ////// ////// private var _debagField:TextField; ////// ////// ///////////////////////////////////////////////////////////////////////// private function TextMessAdd(some:String=""):void{ //return; //если текстовой объект еще //не создан обращаемся к //функции создающей его... if(_debagsField==null){ _debagsField=AddDebagField(); } //если текстовой объект вывода ошибок еще //не в окне приложения - выводим его, и //если произошло какое либо изменение //среды (например переход в полноэкранный режим) //вновь добавляем текстовой объект на экран if(getChildByName("_debagsField")==null){ _debagsField.width=stage.stageWidth; _debagsField.height=stage.stageHeight/5; _debagsField.alpha=0.7; addChild(_debagsField); } _debagsField.appendText(_debagsField.numLines+". "+some+"\n"); _debagsField.scrollV=_debagsField.numLines; function AddDebagField():TextField{ var debagField:TextField=new TextField(); debagField.wordWrap=true; //debagField.multiline=true; debagField.background=true; debagField.backgroundColor=0x333333; debagField.border=true; debagField.borderColor=0x111111; debagField.text=""; debagField.defaultTextFormat=AddTextFormat(); debagField.name="debagField"; function AddTextFormat():TextFormat{ var format:TextFormat=new TextFormat(); format.color=0xffffff; format.size=18; return format; } return debagField; } } Если у кого то есть более гибкие решения, или если есть желание покритиковать это - милости просим. PS. К Админу. В тегах кода шрифт по моему мелковат, цветной вообще читается труднее, может хотя бы крупнее сделать? |
|
|||||
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Рекомендую фаерфокс+flash bug plugin - можно смотреть трейсы "в поле".
А вообще глючность вышеуказанной связки (и слабая дрессировка тестеров) привела к тому, сделал подобный костыль - по ктрл+шифт+д поле с последними трейсами для копипаста на передний план выскакивает и убирается). Консоль разработчика - известный приём в общем-то.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
Поставить дебаг плеер для браузера и смотреть трейсы в Vizzy Tracer?
__________________
if (love is true) break my.heart; |
|
|||||
А можно еще определить функцию уровня пакета, назвать ее log и вызывать когда потребуется. Если определить в безымянном пакете (пакете верхнего уровня) - то, по идее, вызывать можно из любого места без импортов и обращений к статическим функциям
__________________
...вселенская грусть |
|
|||||
[+1 24.11.10]
Регистрация: Jun 2010
Сообщений: 280
|
Что то не получается у меня Vizzy раскачать. Он вообще поддерживается сейчас?
|
|
|||||
Vizzy Tracer скачивается отсюда: http://code.google.com/p/flash-trace...1.zip&can=2&q=
Дебажный flash player (Download the Windows Flash Player 10.1 Plugin content debugger (for Netscape-compatible browsers)) отсюда: http://www.adobe.com/support/flashplayer/downloads.html
__________________
if (love is true) break my.heart; |
|
|||||
[+1 24.11.10]
Регистрация: Jun 2010
Сообщений: 280
|
Да, да. Все скачал, установилось вроде ровно. Help прочел (на страничке автора) и ком. строки тоже пытался вызвать, а все равно - пустое окно. Почему то не идут трэйсы. Поэтому и спрашиваю. Может уже не поддерживается? Вышел же новый релиз FF...На софтпедии указано, что тестировалось последний раз летом прошлого года.
|
|
|||||
Могу только посочувствовать, помочь нет. У меня работает и проблем с установкой не возникало. В чём причина сказать не могу.
__________________
if (love is true) break my.heart; |
|
|||||
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
У вас точно плеер дебажный поставлен?
|
|
|||||
[+1 24.11.10]
Регистрация: Jun 2010
Сообщений: 280
|
да, отладчик. файл в ДокументСеттингс/Юзер организовался - как положено, содержание соответствует. Но в окно Vizzy трейсы не идут.
Добавлено через 49 секунд Может Каспер блокирует? Есть у него такая манера - блокировать в тихоря. Добавлено через 13 минут А есть пример реализации? Покрутил так-сяк, просто и грамотно не получается лишние прикрутки в основном классе все равно надо делать, а тогда все преимущество "внешнего модуля" теряется. Можно сделать класс (таких примеров много), но и тогда его надо объявлять и т.д. и т.п. |
Часовой пояс GMT +4, время: 14:58. |
|
« Предыдущая тема | Следующая тема » |
|
|