[FIXED] Wie schleife ich Gruppen in Photoshop?

Ausgabe

Ich habe diesen Code und er funktioniert, aber er sieht den Text in der Ebenengruppe nicht und iteriert nicht darüber.

var itemsAry=['emil','lardtub','100','jsbus', 'rasmus','null','1000000'];

var layers = app.activeDocument.layers;  
for (var i =0; i<layers.length; i++) {  

    if (layers[i].kind == "LayerKind.TEXT") {
        
        layers[i].textItem.contents=itemsAry[i]
    }
}

Lösung

Während sich das Durchlaufen aller Ebenen in einem Dokument auf SO befindet, kann es verwirrend sein, vom Durchlaufen einer Reihe von Ebenen bis hin zur Umständlichkeit des Durchlaufens einer PSD mit darin enthaltenen Gruppen.

Grundsätzlich benötigen Sie eine rekursive Funktion, um die Gruppen zu durchlaufen.

Beachten Sie, dass Sie alle Dialogfelder am Anfang des Skripts deaktivieren, wenn Sie Text ändern. Andernfalls müssen Sie jede Textänderungsbestätigung validieren.

// Switch off any dialog boxes
displayDialogs = DialogModes.NO; // OFF

var itemsAry=['emil','lardtub','100','jsbus', 'rasmus','null','1000000'];


// group layer vegetables
var theLayers = collectAllLayers(app.activeDocument, 0);


// function collect all layers
function collectAllLayers (theParent, level)
{
   for (var m = theParent.layers.length - 1; m >= 0; m--)
   {
      var theLayer = theParent.layers[m];
      
      // apply the function to layersets;
      if (theLayer.typename == "ArtLayer")
      {
            if (theLayer.kind == "LayerKind.TEXT") 
            {
            
                theLayer.textItem.contents=itemsAry[m];
            }
      }
      else
      {
         collectAllLayers(theLayer, level + 1)
      }
   }
}

// Make sure dialogs back on
displayDialogs = DialogModes.ALL; // ON


Beantwortet von –
Ghoul Fool


Antwort geprüft von –
Clifford M. (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like