[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Farben der Ebenen ändern - tomaxxiLAYERS

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Farben der Ebenen ändern - tomaxxiLAYERS

MSB-Pixel
Beiträge gesamt: 57

5. Aug 2014, 17:05
Beitrag # 1 von 25
Bewertung:
(8134 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

habe gerade bei Adobe Exchange folgendes Skript gefunden: tomaxxiLAYERS
Ich finde dieses echt super, da ich bisher meine Ebenen in einem Snippet gespeichert habe und dieses immer auf das Dokument gezogen habe. Mit diesem Skript funktioniert das ganze natürlich viel komfortabler.

Jetzt zu meiner Frage:
Kennt jemand dieses Skript, und kann mir vielleicht sagen, ob man auch die Farben der Ebenen ändern kann?

Da man auch als Standard z.B. die Ebene sperren kann habe ich mir gedacht, dass man auch die Farben als Standard ändern kann.

----------------------------------------------------
Mac OS X - Version 10.4.11
Quark XPress 7.3 - Photoshop CS2 - Illustrator CS2
Photoshop CS3 - Illustrator CS3 - InDesign CS3 - Flash CS3

Mac OS X - Version 10.8.5
Creative Cloud 2015

Windows 7
Creative Cloud
X

Farben der Ebenen ändern - tomaxxiLAYERS

Kai Rübsamen
Beiträge gesamt: 4659

5. Aug 2014, 19:36
Beitrag # 2 von 25
Beitrag ID: #530722
Bewertung:
(8058 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

theoretisch und praktisch ja, siehe Code.
Code
// Ebenen erstellen 
main ();

function main() {
// prüfen, ob ein Dokument geöffnet ist
if (app.documents.length == 0) {
alert ("Es ist kein Dokument offen.");
exit();
}

// die Namen für die Ebenen und Farben festlegen
var layerStuff = [
[ "Hintergrund" , UIColors.LIGHT_GRAY ] ,
[ "Bilder" , UIColors.RED ] ,
[ "Texte" , UIColors.LIGHT_BLUE ]
];

var curDoc = app.documents[0];
var allLayers = curDoc.layers.length;
if ( curDoc.layers.length != 1 ) {
alert ("Achtung\rDas Skript funktioniert momentan nur, wenn außer der Standardebene keine weiteren Ebenen im Dokument sind!");
exit();
}

// benennt die Ebene 1 um
var basicLayer = curDoc.layers[0];
basicLayer.name = layerStuff[0][0];
basicLayer.layerColor = layerStuff[0][1];

for ( var i = 1; i < layerStuff.length; i ++ ) {
curDoc.layers.add({ name: layerStuff[i][0], layerColor: layerStuff[i][1] });
}
}


Praktisch in deinem Fall leider nein, da das im Skript nicht vorgesehen ist und tomaxxi den Code geschützt hat (also nicht verändert werden kann). Schreib ihn doch einfach an, ob er die Funktion ergänzt.

Gruß Kai Rübsamen


als Antwort auf: [#530711]
(Dieser Beitrag wurde von Kai Rübsamen am 5. Aug 2014, 19:37 geändert)

Farben der Ebenen ändern - tomaxxiLAYERS

MSB-Pixel
Beiträge gesamt: 57

6. Aug 2014, 09:22
Beitrag # 3 von 25
Beitrag ID: #530739
Bewertung:
(7993 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai,

genau das wurde bereits 2x auf der Webseite von tomaxxi gefragt, leider unbeantwortet.

Aber Dein Skript funktioniert auch super.
Gibt es denn eine Möglichkeit, dass das Skript bei jedem neuen Dokument automatisch startet, so das die Ebenen gleich beim anlegen eines neuen Dokuments drin sind?

Ansonsten muss ich mich mit einem Tastaturkürzel behelfen, aber automatisch wäre natürlich bequemer ;-)

----------------------------------------------------
Mac OS X - Version 10.4.11
Quark XPress 7.3 - Photoshop CS2 - Illustrator CS2
Photoshop CS3 - Illustrator CS3 - InDesign CS3 - Flash CS3

Mac OS X - Version 10.8.5
Creative Cloud 2015

Windows 7
Creative Cloud


als Antwort auf: [#530722]

Farben der Ebenen ändern - tomaxxiLAYERS

Kai Rübsamen
Beiträge gesamt: 4659

6. Aug 2014, 10:32
Beitrag # 4 von 25
Beitrag ID: #530741
Bewertung:
(7961 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Theoretisch ja, praktisch wahrscheinlich auch. Ich kriegs nur noch nicht hin …

An die anderen Skripter: Das wäre mein erstes Event-Skript. Also helft mir bitte mal ein bisschen. :)

Code
#targetengine "session" 
var myEventListener = app.addEventListener("afterNew", makeLayers);
function makeLayers() {
// some stuff
var curDoc = app.documents[0];
// some stuff


1. Woher weis "afterNew" das es sich um ein Dokument handelt und nicht um ein gerade erstelltes Rechteck? > Gilt das generell nur für Dokumente?

2. Wenn ich meinen oben geposteten Schnipsel um die paar Zeilen hier ergänze, funktioniert das schon beim ersten Mal. Erstelle ich jedoch mit Apfel+N ein zweites Dokument, erhalte ich nach Bestätigen von 'OK' die Meldung, dass es mehr wie eine Ebene gibt (also meinen oben eingefügten alert).

Das zeigt mir, dass das Skript versucht im gerade sichtbaren Dokument und nicht in dem Dokument das neu erstellt werden soll läuft. Wenn dann das neue Dokument wieder mit einer Ebene angelegt wurde und ich das Skript erneut starte, wird mir erneut der alert gezeigt, es werden mir aber im geraden sichtbaren Dokument Ebenen angelegt.

Ich würde vermuten, dass ich das Dokument nicht mit var curDoc = app.documents[0] ansprechen darf? Wenn ich aber activeDocument wähle, erhalte ich gleich zu Beginn einen Fehlermeldung.

Wo liegt mein Fehler?
Danke.

Gruß Kai Rübsamen


als Antwort auf: [#530739]

Farben der Ebenen ändern - tomaxxiLAYERS

Quarz
Beiträge gesamt: 3366

6. Aug 2014, 11:40
Beitrag # 5 von 25
Beitrag ID: #530744
Bewertung:
(7930 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo MSB-Pixel

Antwort auf: Gibt es denn eine Möglichkeit, dass das Skript bei jedem neuen Dokument
automatisch startet, so das die Ebenen gleich beim anlegen eines neuen
Dokuments drin sind?


Schau mal hier das Script vom Martin.
Ich benutze es schon lange :-)
http://www.hilfdirselbst.ch/...i?post=321842#321842


Gruß
Quarz

-------------------------------------
Win7 | InDesign CS6 ver 8.02



als Antwort auf: [#530739]

Farben der Ebenen ändern - tomaxxiLAYERS

Uwe Laubender
Beiträge gesamt: 4852

6. Aug 2014, 12:15
Beitrag # 6 von 25
Beitrag ID: #530747
Bewertung:
(7913 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Kai!
Beim event-Scripting ist es manchmal wie mit "Pudding an die Wand nageln" ;-)

zu Frage 1:
Weil diese event unter die Klasse der document events fällt.
Durchsuch mal die DOM-Dokumentation von Jongware nach "afterNew" (CHM-Dateien).

zu Frage 2 kann ich (noch) nichts sagen.
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#530741]

Farben der Ebenen ändern - tomaxxiLAYERS

Uwe Laubender
Beiträge gesamt: 4852

6. Aug 2014, 12:17
Beitrag # 7 von 25
Beitrag ID: #530748
Bewertung:
(7911 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ah. Quarz hat Dir bereits die korrekte Antwort serviert…
Danke!!
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#530747]

Farben der Ebenen ändern - tomaxxiLAYERS

MSB-Pixel
Beiträge gesamt: 57

6. Aug 2014, 12:40
Beitrag # 8 von 25
Beitrag ID: #530751
Bewertung:
(7892 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Quarz,

danke für den Link, funktioniert soweit auch.
Allerdings immer beim Neustart von InDesign kommt beim ERSTEN neuen Dokument folgende Fehlermeldung:
Zitat Ein angehängtes Skript hat den folgenden Fehler verursacht:
Die Anforderung kann nicht bearbeitet werden, da ein modales Dialogfeld oder eine modale Warnmeldung aktiv ist.
Möchten Sie diesen Ereignis-Handler deaktivieren


Danach funktioniert es einwandfrei, bis zum nächsten Neustart von InDesign...

Kann mir als Skriptlaie jemand sagen, was ich anders machen muss, damit es IMMER funktioniert, also auch nach dem Neustart?

----------------------------------------------------
Mac OS X - Version 10.4.11
Quark XPress 7.3 - Photoshop CS2 - Illustrator CS2
Photoshop CS3 - Illustrator CS3 - InDesign CS3 - Flash CS3

Mac OS X - Version 10.8.5
Creative Cloud 2015

Windows 7
Creative Cloud


als Antwort auf: [#530748]

Farben der Ebenen ändern - tomaxxiLAYERS

Uwe Laubender
Beiträge gesamt: 4852

6. Aug 2014, 12:59
Beitrag # 9 von 25
Beitrag ID: #530753
Bewertung:
(7869 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ja.
Den userInteractionLevel der ScriptPreferences auf UserInteractionLevels.NEVER_INTERACT stellen. Ob das allerdings angeraten ist, ist eine ganz andere Frage…

Für ein Script, das eine begrenze zeitlang läuft: sicherlich.
Für ein eventScript, das die ganze Zeit aktiv sein muss: eher zweifelhaft.

Code
//AUSSCHALTEN: 
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.NEVER_INTERACT;

Code
//EINSCHALTEN (alles): 
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.INTERACT_WITH_ALL;

Code
//EINSCHALTEN (nur die alerts) 
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.INTERACT_WITH_ALERTS;

*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#530751]

Farben der Ebenen ändern - tomaxxiLAYERS

Kai Rübsamen
Beiträge gesamt: 4659

6. Aug 2014, 13:18
Beitrag # 10 von 25
Beitrag ID: #530754
Bewertung:
(7843 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe und Quarz, danke für eure Beiträge.

In Martins Beitrag steckt in der Tat die Lösung bzw. die teilweise Antwort auf meine Frage.

Was ich nicht verstanden habe:
In der Funktion von Martin wird eine Variable 'myEvent' deklariert. Wo wird denn da ein Parameter übergeben oder anders gefragt: Warum steckt dann da automatisch ein event drin und ich komme dann mit 'myEvent.parent' auf das Dokument??

Gruß Kai Rübsamen


als Antwort auf: [#530753]

Farben der Ebenen ändern - tomaxxiLAYERS

Kai Rübsamen
Beiträge gesamt: 4659

7. Aug 2014, 11:20
Beitrag # 11 von 25
Beitrag ID: #530783
Bewertung:
(7657 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
So, 184 Leute lesen das und keiner hat eine Antwort auf meine Frage, hm!

Hans war so freundlich und hat es mir erklärt. :)

Bei mir funkt am Anfang kein Dialog dazwischen und zuverlässig funktioniert jetzt bei mir das

Code
#targetengine "session"  
app.addEventListener( "afterNew", addLayer );

function addLayer( myEvent ) {
//~ alert (myEvent);
//~ alert (myEvent.eventType);
//~ alert (myEvent.parent);

// die Namen für die Ebenen und Farben festlegen
var layerStuff = [
[ "Hintergrund" , UIColors.LIGHT_GRAY ] ,
[ "Bilder" , UIColors.RED ] ,
[ "Texte" , UIColors.LIGHT_BLUE ]
];

var curDoc = myEvent.parent;

// benennt die Ebene 1 um
var basicLayer = curDoc.layers[0];
basicLayer.properties = { name: layerStuff[0][0], layerColor: layerStuff[0][1] };

for ( var i = 1; i < layerStuff.length; i ++ ) {
curDoc.layers.add({ name: layerStuff[i][0], layerColor: layerStuff[i][1] });
}
}


Gruß Kai Rübsamen


als Antwort auf: [#530754]

Farben der Ebenen ändern - tomaxxiLAYERS

Hans Haesler
  
Beiträge gesamt: 5795

7. Aug 2014, 13:28
Beitrag # 12 von 25
Beitrag ID: #530798
Bewertung:
(7627 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
Hallo Kai,

ich hatte meine "Ahnung" nicht vorher im Forum gepostet, weil ich unterwegs war. Und die anderen 183 (mittlerweile über 200) hielten sich zurück, weil: Wie willst Du einen Pudding erklären, dessen Form so eigenartig definiert ist?

Zuerst zu einer früheren Frage: "afterNew" nur dem Dokument zugeordnet (im OMV nachzuprüfen). Auf die Erzeugung eines Bildrahmens wird also nicht reagiert.

Und ja, es ist in der Tat nur schwer zu begreifen, warum "das" funktionieren kann:
In den Klammern nach 'addEventListener' steht ...
1. der Event-Typ in Anführungszeichen;
2. der Name der Funktion ohne irgendetwas.

Nicht genug: Das Attribut 'myEvent' in der Funktion bekommt offensichtlich einen Wert zugewiesen. Einfach so.
Übrigens: Anstelle von 'myEvent' kann auch 'aEvent' oder 'evt' oder 'kai' eingesetzt werden.

Die Entwickler haben das bestimmt aus gewissen Gründen so eingerichtet. Und man muss es akzeptieren: "Don't think too much."

Gruss, Hans


als Antwort auf: [#530783]

Farben der Ebenen ändern - tomaxxiLAYERS

WernerPerplies
Beiträge gesamt: 2547

7. Aug 2014, 14:28
Beitrag # 13 von 25
Beitrag ID: #530806
Bewertung:
(7608 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat der Event-Typ in Anführungszeichen

Weil der Typ als normaler String behandelt und in einer Liste über Stringvergleich gefunden wird.
Alternativ hätte man auch einen Enumerator-Typ verwenden können, hat man aber nicht.
Zitat der Name der Funktion ohne irgendetwas

Einer Funktion ist halt ein ganz normaler Speicherplatz zugeordnet. Hinter dem Namen verbirgt sich intern eine Speicheradresse. Wenn du in Deinem Skript Funktionen aufrufst verwendest Du doch auch Namen und keine Stringkonstanten.
Der Zugriff auf Variable, Objekte und Funktionen erfolgt immer ohne Anführungszeichen.
Zitat Anstelle von 'myEvent' kann auch 'aEvent' oder 'evt' oder 'kai' eingesetzt werden.


Das liegt daran, das der Funktion keine einzelnen Variablen übergeben werden, sondern ein Array. Der Zugriff erfolgt dann in der Reihenfolge der in der Funktionsdeklaration verwendeten Namen.
Wenn Du z. B. einen Namen weglässt, sind die folgenden Parameter falsch zugeordnet.
siehe z. B. auch:
Function arguments

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#530798]

Farben der Ebenen ändern - tomaxxiLAYERS

Hans Haesler
  
Beiträge gesamt: 5795

7. Aug 2014, 17:54
Beitrag # 14 von 25
Beitrag ID: #530814
Bewertung:
(7556 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

danke für die Ausführungen.

@ Kai: Meine Aussage ("afterNew" nur dem Dokument zugeordnet), ist falsch. Es gibt mindestens ein anderes Objekt: "[object Link]".

Deshalb kommt beim Laden von Bildern eine Fehlermeldung, wenn das aktuelle addLayers-Script geladen wurde. Es muss mit folgendem Test ergänzt werden:

Code
function addLayer(myEvent) { 
if (myEvent.parent == "[object Document]") {
// hier der Layer-Stuff usw.
}
}

Gruss, Hans


als Antwort auf: [#530806]

Farben der Ebenen ändern - tomaxxiLAYERS

Kai Rübsamen
Beiträge gesamt: 4659

7. Aug 2014, 18:10
Beitrag # 15 von 25
Beitrag ID: #530815
Bewertung:
(7550 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
@ Werner: Mich hat eher verwirrt, dass bei der Funktion keine runden Klammern mitangegeben werden. Ich hab das auch schon bei der Schreibweise innerhalb von 'doScript' gesehen.

@ Hans: Super und vielen Dank. Mich wundert, dass bei Quarz das Script von Martin seit Jahren seinen Dienst tut. Hier hätte ja der Fehler auch mal kommen müssen; es sei denn, dort gibt es keine oder nur ordentlich verknüpfte Bilder ;-)

@ MSB-Pixel: Welcher Dialog ist bei dir offen? Mach bitte mal einen Screenshot. Ich habe die Hoffnung, das wir das auch noch wegbekommen. Der Anlass von Hans letztem Post war übrigens der beigefügte Screen.

Gruß Kai Rübsamen


als Antwort auf: [#530814]
Anhang:
Bildschirmfoto 2014-08-07 um 12.18.44.png (99.0 KB)
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
21.01.2021 - 22.01.2021

Digicomp Academy AG, Bern oder Basel
Donnerstag, 21. Jan. 2021, 08.30 Uhr - Freitag, 22. Jan. 2021, 17.00 Uhr

Kurs

Dieser Basic-Kurs ist der perfekte Einstieg in die Welt von InDesign, dem vielseitigen Layout-Programm. Sie lernen, wie InDesign aufgebaut ist, wie saubere Dokumente erstellt werden und wie man korrekt mit gelieferten InDesign-Projekten umgeht.

Dauer: 2 Tage
Preis: CHF 1'400.–

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/INDEM1

Veranstaltungen
21.01.2021

Illustrator - das unbekannte Wesen

Online
Donnerstag, 21. Jan. 2021, 19.00 Uhr

Vortrag

Millionen Funktionen, und immer kommen neue dazu! Monika Gause ist jeden Januar aufs Neue ein gern gesehener Gast bei der IDUG Stuttgart. - Sie bringt alle Neuerungen mit, die 2020 dazukamen und jede Menge Tipps und Tricks. - Zudem wird sie uns informieren, was wir in Illustrator beachten müssen, wenn wir Daten fürs Web erstellen bzw. aufbereiten. - Wichtig zu wissen: "Dos and Don'ts" in Illustrator. Welche Fehler sollte man dringend vermeiden und was muss man unbedingt tun, damit es Spaß macht mit Illustrator zu arbeiten. - Dieses Jahr hast Du zusätzlich die Möglichkeit Monika im Voraus Fragen zu stellen. Fülle dieses Formular mit deinen Fragen; auch Beispieldateien sind anfügbar: https://forms.gle/fJmF8C6MjbDoEhED8

Nein

Organisator: InDesign Usergroup Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailidug AT satzkiste DOT de

https://idugs67.eventbrite.de/

IDUGS #67 Illustrator mit Monika Gause

Neuste Foreneinträge


Fortlaufende Nummerierung der Druckbogen

Verschiedene Netzwerke Handeln

Netzwerklaufwerke verbinden -> Bei nicht verfügbar Fehlermeldung unterdrücken

Ende der Unterstützung von Flash Player - und jetzt?

Bilder High> Low

weitere peinliche Fragen zu Selbstverständlichkeiten

WLAN-Verbindung mit iPhone 11

In Illustrator einen Kreis zerschneiden bzw. erstmal sinnvoll anlegen

Event 'mausedown': Kriege das Kontext-Menü des Browsers nicht weg...

Skript-Ordner
medienjobs