Проблема связи между функциями в файлах JS и JSX - PullRequest
0 голосов
/ 26 октября 2019

Я сделал эту функцию в JS файле ...

function getColors(isPick, isForecolor)
{
    var chosenFunction = 'getColor(' + isPick + ', ' + isForecolor + ')';
    csInterface.evalScript(chosenFunction, function(result)
    {
        if(result !== 'undefined')
        {
            if (isForecolor == true){
                foregroundHexColor = result;
                // etc...
            }
            else
            {
                backgroundHexColor = result;
                //etc..
            };
        };
    });
};

, который get a шестнадцатеричный цвет значение из этой функции из JSX файла.

function getColor(isPick, isForecolor)
{
    var color_PickerCase;
    var decimal_Color;
    var hexadecimal_Color;

    if (isForecolor == true)
    {
        color_PickerCase = app.foregroundColor.rgb.hexValue;
    }
    else
    {
        color_PickerCase = app.backgroundColor.rgb.hexValue;
    };

    if (isPick == true)
    {
        if (app.showColorPicker(isForecolor)){
            decimal_Color = color_PickerCase;
            hexadecimal_Color = decimal_Color.toString(16);
        }
        else
        {
            return;
        };
    }
    else
    {
        decimal_Color = color_PickerCase;
        hexadecimal_Color = decimal_Color.toString(16);
    };

    return hexadecimal_Color;    
};

В некотором смысле это работает, но по какой-то причине янужно сделать то же самое два раза , чтобы получить значение !!! Любая идея, почему это происходит?

Спасибо за ваше время !!!

ОБНОВЛЕНИЕ : исправление, оно работает только при первом нажатии. Затем нужно щелкнуть два раза, чтобы получить значение !!!

1 Ответ

0 голосов
/ 27 октября 2019

Ну, вот решение ...

function getColor(isPick, isForecolor)
{
    var color_PickerCase;
    var decimal_Color;
    var hexadecimal_Color;

    if (isPick === true && app.showColorPicker(isForecolor) === false)
    {
            return;
    }

    if (isForecolor === true)
    {
        color_PickerCase = app.foregroundColor.rgb.hexValue;
    }
    else
    {
        color_PickerCase = app.backgroundColor.rgb.hexValue;
    }

    decimal_Color = color_PickerCase;
    hexadecimal_Color = decimal_Color.toString(16);
    return hexadecimal_Color;    
};

Как сказал joojaa из graphicdesign , я спрашивал цвет, прежде чем выбрать его, и яполучал цветную форму в прошлый раз !!!

...