Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Усовершенствование функции trace() (http://www.flasher.ru/forum/showthread.php?t=212465)

EndoCrinologist 17.02.2016 16:49

Усовершенствование функции trace()
 
Сделал функцию traceObj(), которая выводит свойства объектов в рекурсии. Но только для объектов. Но это неважно. Вопрос в другом: возможно ли добавить отступы, чтобы было понятно, что откуда исходит?
Код AS3:

import flash.utils.getQualifiedClassName;
 
function traceObj(obj:Object):void
{
        for (var key in obj)
        {
                var obj2:* = obj[key];
                if (getQualifiedClassName(obj2) == "Object")
                {
                        trace(key + ': {');
                        traceObj(obj2);
                        trace('}');
                } else trace(key + ' -> ' + obj[key]);
        }
}

Текущее состояние:
http://pp.vk.me/c630824/v630824999/1...7GU1D3seiA.jpg
P.S. Я велосипед изобретаю? есть ли готовые решения?

Tails 17.02.2016 17:10

Цитата:

Сообщение от EndoCrinologist (Сообщение 1191928)
Я велосипед изобретаю?

Ага он самый :)
Используй готовое: https://code.google.com/archive/p/flash-console/

EndoCrinologist 17.02.2016 17:32

Странно... Я думал это нечто вроде функции/класса, который позволяет трейсить... или я чего- то не понимаю?

undefined 17.02.2016 17:35

Цитата:

Command line CL - lets you execute code at runtime (as3 syntax)
Интересно как это сделано.Неужто eval еще есть в ас3?

caseyryan 17.02.2016 17:48

Цитата:

Вопрос в другом: возможно ли добавить отступы, чтобы было понятно, что откуда исходит?
Отступ - это простая табуляция. Добавляется таким кодом \t
Цитата:

P.S. Я велосипед изобретаю? есть ли готовые решения?
Код AS3:

trace(JSON.stringify(obj));

выведет все, что в нем есть
Цитата:

Интересно как это сделано.Неужто eval еще есть в ас3?
Там же есть исходники. Скачай да посмотри ;)

undefined 17.02.2016 18:10

Цитата:

выведет все, что в нем есть
Человеку как я понял важна наглядность

Цитата:

Там же есть исходники. Скачай да посмотри
Покопался в сорцах - похоже за это отвечает класс com.junkbyte.console.core.Executer
Вот только там так все запутано, что совершенно не ясно в чем хитрость.Похоже он как-то хитро парсит строку с кодом.

olexandr 17.02.2016 18:10

Тоже когда-то страдал подобным )
https://github.com/olexandr17/of_fra...ebug/Logger.as

Tails 17.02.2016 18:20

Нет, это не eval. Всё что угодно не выполнит. Как-то раз пробовал, кажется, for in пустить, не запустил.

caseyryan 17.02.2016 18:20

Цитата:

Человеку как я понял важна наглядность
Илюха тут какой-то велосипед изобретал для форматирования JSON'а
https://github.com/mayakwd/as3-json-formatter

fresh.flash 18.02.2016 13:51

Цитата:

возможно ли добавить отступы, чтобы было понятно, что откуда исходит?
можно просто добавить индекс в параметры функции, который увеличивать при нахождении вложенных объектов. А в зависимости от индекса добавлять количество табов.


Часовой пояс GMT +4, время: 05:53.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.