0

これはイラストレーターのextendscriptですが、基本的にはjavascriptです。2番目のポップアップを1回だけ表示したいので、変数がすでに存在するかどうかを伝えて、入力を求めないようにしました。私が間違っていることについて何か考えはありますか?

#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");
        }
    }
}
4

1 に答える 1

1

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");
        }
    }
}
于 2011-11-02T13:22:09.263 に答える