7

拡張スクリプトを使用して変数を配列にプッシュするのは、基本的にjavascriptです。私が間違っていることについて何か考えはありますか?

if ( app.documents.length > 0 ) {

    for ( i = 0; i< app.activeDocument.textFrames.length; i++) {
         var allSizes = []; //set up empty array

        textArtRange = app.activeDocument.textFrames[i].textRange;
        var fontName =  textFonts.getByName("Nobile");
        alert (fontName);
        textArtRange.characterAttributes.textFont = fontName;
        var fontSizes = textArtRange.characterAttributes.size;

        allSizes.push(fontSizes)
        alert (fontSizes);

    }
        alert (allSizes);
}

allSizesのアラートは、配列ではなく単一の値のみを返します。

4

2 に答える 2

13

の定義をallSizes = []ループの外側に移動します。

allSizes現在、各ループでの値を「リセット」しています。

于 2011-10-03T17:47:22.753 に答える
9

forループ内に空の配列を設定しています。毎回リセットします。forループの上に移動します。

var allSizes = []; //set up empty array
for ( i = 0; i< app.activeDocument.textFrames.length; i++) {
     .....
于 2011-10-03T17:47:39.690 に答える