PDA

Просмотр полной версии : Переопределение метода trace()?


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

Возник такой вопрос - нельзя ли как то переопределить метод trace() или написать ему замену с компактным названием?
Сейчас этот метод приходится вызывать статически:
ExternalFunctions.debug("debug value")
Но так придется в каждый класс делать import, не очень удобно

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

KumoKairo
14.06.2013, 09:48
В таком случае как обеспечить видимость метода во всех классах без обращения к имени класса, в котором определен этот метод?
Чтобы писать, например, просто
log();
а не
LogContainingClass.log();?

maincode
14.06.2013, 09:51
Создайте файл log.as с содержимым:

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

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

KumoKairo
14.06.2013, 09:54
Спасибо)

etc
18.06.2013, 11:12
Создайте файл log.as с содержимым:

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

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

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

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

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

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