Ich versuche, ein Skript zu erstellen, um alle ausgewählten Objekte in alle entsperrten Ebenen "an Ort und Stelle einzufügen". Mein Versuch ist wahrscheinlich fast geschafft, aber irgendetwas funktioniert nicht.
var myDoc = app.activeDocument;
var al=myDoc.activeLayer.name; // remembers current layer name
app.copy(); // copies whatever is selected
// paste in place for all unlocked layers, excepting source layer
for (var i=0;i<myDoc.layers.length;i++) {
if ((myDoc.layers[i].locked=false) && (myDoc.layers[i].name!=al)) {
myDoc.activeLayer=myDoc.layers[i];
app.pasteInPlace();
}
}
Bei Ihrer Überprüfung, ob die Ebene gesperrt ist, fehlt ein =
(es wird eher zugewiesen als anderweitig ausgewertet). Es sollte sein;
if ( myDoc.layers[i].locked == false ) ...
Ich habe gerade getestet und das Skript funktioniert perfekt mit dem korrigiert.
Das vollständige Arbeitsskript lautet dann:
var myDoc = app.activeDocument;
var al = myDoc.activeLayer.name; // remembers current layer name
app.copy(); // copies whatever is selected
// paste in place for all unlocked layers, excepting source layer
for ( var i = 0; i < myDoc.layers.length; i++ ) {
if ( myDoc.layers[i].locked == false && myDoc.layers[i].name != al ) {
myDoc.activeLayer = myDoc.layers[i];
app.pasteInPlace();
}
}
Variantenskript zum Einfügen ausgewählter Objekte auf allen anderen gesperrten Ebenen:
var myDoc = app.activeDocument;
var al=myDoc.activeLayer.name; // remembers current layer
app.copy(); // copies whatever is selected
for (var i=0;i<myDoc.layers.length;i++) {
if ((myDoc.layers[i].locked==true) && (myDoc.layers[i].name!=al)) {
myDoc.activeLayer=myDoc.layers[i]; // select next layer
myDoc.layers[i].locked=false; // unlock it
app.pasteInPlace(); // paste in place
myDoc.layers[i].locked=true; // relock it
}
}
myDoc.activeLayer=al; // Go back to original layer
Lukian
Cai