Как определить, работает ли Flex в режиме отладки? - PullRequest
2 голосов
/ 20 июля 2011

Я хочу декларативно включать и выключать регистратор для своего приложения Flex, и кажется, что мой обычный способ определения, работает ли он в режиме отладки или нет, работает только иногда. Код для этого:

isDebugSWF = new Error().getStackTrace().search(/:[0-9]+]$/m) > -1;

Вы знаете лучший способ для этого?

Edit: Я разместил ответ ниже.

Ответы [ 4 ]

4 голосов
/ 20 июля 2011

Предыдущий подход был основан на великолепной статье .В одном из комментариев указывалось, что в Release Release трассировка стека имеет значение null, поэтому я изменил его правильно:

protected function configureLogger() : void
{
    if(!isDebugPlayer()|| !isDebugBuild())
    {
        // stop logging
        Logger.hide = true;
    }
    else
    {
        // resume logging
        Logger.hide = false;                    
    }
}

private function isDebugPlayer() : Boolean
{
    return Capabilities.isDebugger;
}

/**
* Returns true if the swf is built in debug mode
**/
private function isDebugBuild() : Boolean
{
    var stackTrace:String = new Error().getStackTrace();
    if(stackTrace == null || stackTrace.length == 0)
    {
        //in Release the stackTrace is null
        return false;
    }
    //The code searches for line numbers of errors in StackTrace result. 
    //Only StackTrace result of a debug SWF file contains line numbers.
    return stackTrace.search(/:[0-9]+]$/m) > -1;
}

Таким образом, я наконец смогу настроить ThunderBoltAS3 logger в зависимости от текущего типа сборки.

3 голосов
/ 20 июля 2011

Статическое свойство Capabilities.isDebugger в классе flash.system.Capabilities указывает, является ли установленный Flash Player отладочной версией или нет. Требуется Flash Player 9 или AIR 1.0 в качестве минимальной версии.

Имейте в виду, что установщики отладочного Flash Player общедоступны и что ничто не мешает пользователям установить отладочную версию Flash. Если есть что-то чувствительное, что вы хотите скрыть, то лучше использовать условную компиляцию 1007 *.

0 голосов
/ 20 июля 2011

Мы используем условную компиляцию в нашем проекте: Документация Adobe

0 голосов
/ 20 июля 2011

Похоже, вы ищете то же самое, что и ответили в другом посте. Посмотрите здесь: Как программно определить, работает ли приложение Flex в режиме отладки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...