[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste

Objektebenenoptionen per Skript ändern (Optionen)

Martin Fischer
  
Beiträge gesamt: 12783

10. Mär 2011, 09:24
Bewertung:

gelesen: 24352

Beitrag als Lesezeichen
Hallo Sebastian,

hab's nun selbst nachgestellt.

Der Fehler liegt nicht am Underscore.
Der liegt im Plural-s:

Code
myLinks[i].parent.graphicLayerOptions.updateLinkOptions = UpdateLinkOptions.KEEP_OVERRIDES; 


Das muss so lauten:
Code
myLinks[i].parent.graphicLayerOptions.updateLinkOption = UpdateLinkOptions.KEEP_OVERRIDES; 


In Deinem zweiten Schnippsel hattest auch Du das Plural-s nicht mehr drin.


Hier das aktualisierte Skript, das ich interessant und nützlich finde.
Danke dafür.

Code
var myLinks = app.activeDocument.links;    
var avaiLangs = new Array("DE", "GB", "ES", "FR", "IT", "NL", "DK", "FI", "SE");
//var avaiLangs = app.activeDocument.layers.everyItem().name;
var newLang = prompt(avaiLangs.join(', '), "DE");

for ( var i = 0; i < myLinks.length; i++ )
{
if ( myLinks[i].parent.hasOwnProperty('graphicLayerOptions') )
{
myLinks[i].parent.graphicLayerOptions.updateLinkOption = UpdateLinkOptions.KEEP_OVERRIDES;
checkLayers( myLinks[i], newLang);
}
}
alert("Sprachumstellung abgeschlossen!");

function checkLayers( oneLink, newLang)
{
for ( var n = 0; n < avaiLangs.length; n++ )
{
var myObjectLayers = oneLink.parent.graphicLayerOptions.graphicLayers;
if ( myObjectLayers.itemByName(avaiLangs[n]).isValid)
{
myObjectLayers.itemByName(avaiLangs[n]).currentVisibility = false;
}
}
if ( myObjectLayers.itemByName(newLang).isValid)
{
myObjectLayers.itemByName(newLang).currentVisibility = true;
}
}


(Dieser Beitrag wurde von Martin Fischer am 10. Mär 2011, 09:46 geändert)
Änderungsverlauf:
Beitrag geändert von Martin Fischer (Moderator) am 10. Mär 2011, 09:25
Beitrag geändert von Martin Fischer (Moderator) am 10. Mär 2011, 09:34
Beitrag geändert von Martin Fischer (Moderator) am 10. Mär 2011, 09:46