2016-06-22 7 views
0

私は様々なテキストとパスアイテムを持つイラストレーター文書を持っています。私は、すべてのテキスト項目をループして、それらの色や属性を変更したいと考えています。次に、アイテム名に応じて、同じ名前の他のアイテムとグループ化したいと思います。ほとんどのスクリプトがあります。問題は、それがいくつかの項目を残したり、それらを一貫して無視することです。時々それはそれらに影響を与え、他の時にはそれらを無視する。すべてのヘルプは、スクリプトテキストアイテムをループするイラストレーターページ

//Selects the graph before to scale them and turns off the pixel align so that values of 1 decimal place can be applied to strokes 
doc.selectObjectsOnActiveArtboard(); 
var sel = doc.selection; 
sel.pixelAligned=false 

var item 

var xLabels = layer.groupItems.add(); //create group for xAxis 
xLabels.name="xLabels" 
var yLabels = layer.groupItems.add(); //create group for xAxis 
yLabels.name="yLabels" 
var yTicks = layer.groupItems.add(); //create group for xAxis 
yTicks.name="yTicks" 

//Loops through ungrouped text items and set horizontal scale, spot black and tabular lining on figures 
for (var i = 0; i < layer.textFrames.length; i++) { 
    item=layer.textFrames[i]; 
    $.writeln (item) 
    item.textRange.characterAttributes.textFont = textFonts.getByName("Metric-Regular"); 
    item.textRange.characterAttributes.figureStyle=FigureStyleType.TABULAR 
    item.textRange.characterAttributes.fillColor=myBlack; 

    //move labels on xAxis into the same group 
    if (item.name=="xAxisLabel") { 
     item.moveToEnd(xLabels); 
    } 

    //move labels on yAxis into the same group 
    if (item.name=="yAxisLabel") { 
      item.moveToEnd(yLabels); 
    }; 

}; 

for (var i = 0; i < layer.pathItems.length; i++) { 
    item=layer.pathItems[i]; 

    if (item.name=="yAxisTick") { 
      item.moveToEnd(yTicks); 
    }; 
}; 

答えて

0

の下にこれを解決するにはループを逆にすることで、感謝しています。基本的に、項目をグループに移動すると、ページの「緩い」テキスト項目の数が変更され、ループの長さが効果的に途中で変更されます。これに関する良い視覚的説明はhttps://forums.adobe.com/thread/2171307にあります。私はまた、質問を投稿しました

関連する問題