Форум 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=201279)

KumoKairo 14.06.2013 09:36

Переопределение метода trace()?
 
Столкнулся с проблемой отладки приложения на FB. Простую дебаг - сессию, как я понял, c приложением на FB создать не получится - дебаггер FlashDevelop подключается только к голой странице - обертке.
Соответственно, для отслеживания пришлось написать свой метод, вызывающий javascript функцию console.log - аналог trace.

Возник такой вопрос - нельзя ли как то переопределить метод trace() или написать ему замену с компактным названием?
Сейчас этот метод приходится вызывать статически:
Код AS3:

ExternalFunctions.debug("debug value")

Но так придется в каждый класс делать import, не очень удобно

СлаваRa 14.06.2013 09:42

напишите метод log, в котором будет нужный вам функционал и после стандартный trace, делов-то

KumoKairo 14.06.2013 09:48

В таком случае как обеспечить видимость метода во всех классах без обращения к имени класса, в котором определен этот метод?
Чтобы писать, например, просто
Код AS3:

log();

а не
Код AS3:

LogContainingClass.log();

?

maincode 14.06.2013 09:51

Создайте файл log.as с содержимым:
Код AS3:

package
{
        public function log(...args):void
        {
                LogContainingClass.log(args);
        }
}

И вызывайте метод log(); с любым количеством параметров.

KumoKairo 14.06.2013 09:54

Спасибо)

etc 18.06.2013 11:12

Цитата:

Сообщение от maincode (Сообщение 1137950)
Создайте файл log.as с содержимым:
Код AS3:

package
{
        public function log(...args):void
        {
                LogContainingClass.log(args);
        }
}

И вызывайте метод log(); с любым количеством параметров.

Только уж тогда LogContainingClass.log.apply(LogContainingClass, args);

KumoKairo 18.06.2013 23:48

Да все разобрался уж, мне не надо много аргов, вполне хватает одной строки

Там просто вызвать функцию через ExternalInterface (И да, я знаю, что можно создавать полноценную дебаг сессию в браузере)

Спасибо в любом случае


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

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