простой цикл JavaScript - PullRequest
       11

простой цикл JavaScript

0 голосов
/ 02 ноября 2011

это расширенный скрипт для иллюстратора, хотя в основном это javascript. Я хочу, чтобы второе всплывающее окно показывалось только один раз, я пытался сказать, существует ли переменная, чтобы не делать этого, но если он не запрашивает ввод. Есть идеи, что я делаю не так?

#target illustrator
if ( app.documents.length > 0 ) {
    var replaceThis = prompt('What font do you want to replace?','')
    for ( i = 0; i< app.activeDocument.textFrames.length; i++) { //loop through the layers
        var textArtRange = app.activeDocument.textFrames[i].textRange;
        var fontSize = textArtRange.characterAttributes.size;
        //var replaceThis = "10";
        //alert("replace this:" + replaceThis);
       // alert("current font size" + fontSize);
        if (fontSize == replaceThis) {
             Replacefont();
         }
        function Replacefont () {
                //var newSize = "90";
                if (!newSize) {
                    var newSize = prompt('Replace '+ replaceThis +'pt with:','')
                }
                textArtRange.characterAttributes.size = newSize;
                alert("yay");
        }
    }
}

1 Ответ

1 голос
/ 02 ноября 2011

newSize доступно только внутри ReplaceFont и сбрасывается при каждом завершении функции.Вы должны сделать это постоянным, как это (нет никакой реальной причины для создания отдельной функции).Также не забудьте var для цикла for.

#target illustrator
if ( app.documents.length > 0 ) {
    var replaceThis = prompt('What font do you want to replace?','');
    var newSize = prompt('Replace '+ replaceThis +'pt with:','');

    for ( var i = 0; i < app.activeDocument.textFrames.length; i++) {
        var textArtRange = app.activeDocument.textFrames[i].textRange;
        var fontSize = textArtRange.characterAttributes.size;

        if (fontSize == replaceThis) {
            textArtRange.characterAttributes.size = newSize;
            alert("yay");
        }
    }
}
...