[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt [share] Skript verschiebt Objekt ein Layer rauf/runter

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

[share] Skript verschiebt Objekt ein Layer rauf/runter

Stephan_M
Beiträge gesamt: 480

8. Mai 2008, 18:06
Beitrag # 1 von 7
Bewertung:
(6784 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Juipee, hab mir ein Skript geschrieben. Skripten lernen macht freude. Vielleicht kann es jemand gebrauchen. Kritik herzlich willkommen. :)

Das Skript verschiebt die angewählten Objekt von Ihren Ebenen auf die jeweils nächst höhere, also eine Ebene hoch, oder eine Ebene runter. Praktisch auf nem Keyboard Shortcut. *Klack-Klack* und man hat das Objekt auf der gewünschten Ebene. Das muss man ja sonst immer umständlich mit der Maus in der Ebenenpalette machen.

Umschalt|Alt|ö, Umschalt|Alt|ä bieten sich an.

Code
// an InDesign CS3 JavaScript for moving an object to the next higher up layer 
// MoveToNextLayer uses Henryk Jursz framework of his "zerostepsonerepeat" skript for handling the selection
// modified by Stephan Möbius, may2008

//all script messages
myScriptIDC = "No InDesign documents are open or nothing is selected!";
MTNL_noSel = "Nothing is selected. \nPlease select object and try again.";

//is InDesign?
if ((app.name != "Adobe InDesign") || ((app.name == "Adobe InDesign") && (app.documents.length == 0)))
{
alert(myScriptIDC);
}
else if (app.selection.length != 0)
{
(app.version[0] < "4") ? (app.userInteractionLevel = UserInteractionLevels.interactWithAll) : (app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll);
MTNL_myObjects = new Array;
for(MTNL_myCounter = 0; MTNL_myCounter < app.selection.length; MTNL_myCounter++)
{
switch(app.selection[MTNL_myCounter].constructor.name)
{
case "Rectangle":
case "Polygon":
case "GraphicLine":
case "Oval":
case "TextFrame":
case "Group":
MTNL_myObjects.push(app.selection[MTNL_myCounter]);
}
}
if(MTNL_myObjects.length > 0)
{
for (MTNL_myObjectCounter=0; MTNL_myObjectCounter < MTNL_myObjects.length; MTNL_myObjectCounter++)
{
MTNL_myObject = MTNL_myObjects[MTNL_myObjectCounter];
var MTNL_myOBject_currentLayer = MTNL_myObject.itemLayer;
if ( MTNL_myOBject_currentLayer != app.activeDocument.layers.firstItem() ) {
var MTNL_myOBject_prevLayer = app.activeDocument.layers.previousItem(MTNL_myOBject_currentLayer);
// MTNL_myObject.itemLayer = app.activeDocument.layers.item('Graphics');
MTNL_myObject.itemLayer = MTNL_myOBject_prevLayer;
}
}
}
}
else
{
alert(MTNL_noSel);
} //end of MoveToLayer Script


Code
// an InDesign CS3 JavaScript for moving an object to the previous layer below 
// MoveToNextLayer uses Henryk Jursz framework of his "zerostepsonerepeat" skript for handling the selection
// modified by Stephan Möbius, may2008

//all script messages
myScriptIDC = "No InDesign documents are open or nothing is selected!";
MTNL_noSel = "Nothing is selected. \nPlease select object and try again.";

//is InDesign?
if ((app.name != "Adobe InDesign") || ((app.name == "Adobe InDesign") && (app.documents.length == 0)))
{
alert(myScriptIDC);
}
else if (app.selection.length != 0)
{
(app.version[0] < "4") ? (app.userInteractionLevel = UserInteractionLevels.interactWithAll) : (app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll);
MTNL_myObjects = new Array;
for(MTNL_myCounter = 0; MTNL_myCounter < app.selection.length; MTNL_myCounter++)
{
switch(app.selection[MTNL_myCounter].constructor.name)
{
case "Rectangle":
case "Polygon":
case "GraphicLine":
case "Oval":
case "TextFrame":
case "Group":
MTNL_myObjects.push(app.selection[MTNL_myCounter]);
}
}
if(MTNL_myObjects.length > 0)
{
for (MTNL_myObjectCounter=0; MTNL_myObjectCounter < MTNL_myObjects.length; MTNL_myObjectCounter++)
{
MTNL_myObject = MTNL_myObjects[MTNL_myObjectCounter];
var MTNL_myOBject_currentLayer = MTNL_myObject.itemLayer;
if ( MTNL_myOBject_currentLayer != app.activeDocument.layers.lastItem() ) {
var MTNL_myOBject_nextLayer = app.activeDocument.layers.nextItem(MTNL_myOBject_currentLayer);
// for selecting a certain layer--- MTNL_myObject.itemLayer = app.activeDocument.layers.item('Graphics');
MTNL_myObject.itemLayer = MTNL_myOBject_nextLayer;
}
}
}
}
else
{
alert(MTNL_noSel);
} //end of MoveToLayer Script


mit freundlichem Gruß,
Stephan Möbius

(Dieser Beitrag wurde von Stephan_M am 8. Mai 2008, 18:15 geändert)
X

[share] Skript verschiebt Objekt ein Layer rauf/runter

Stephan_M
Beiträge gesamt: 480

27. Feb 2009, 13:27
Beitrag # 2 von 7
Beitrag ID: #387349
Bewertung:
(6317 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
[UPDATE, Febr. 2009] - InDesign CS3/CS4 Javascript

- verschiebt alle selektierten Objekte auf die für sie jeweils nächst höhere, beziehungsweise tiefere UNABGESCHLOSSENE Ebene. Vorher gab's hier Fehler.
Nachwievor super auf ALT-SHIFT-Ä und ALT-SHIFT-Ö.

Skripte siehe Anhang.

Liebe Grüße,
Stephan


als Antwort auf: [#349727]
Anhang:
MoveToNextLayer.jsx (1.80 KB)   MoveToPrevLayer.jsx (1.81 KB)

[share] Skript verschiebt Objekt ein Layer rauf/runter

Sacha Heck
Beiträge gesamt: 3281

27. Feb 2009, 15:08
Beitrag # 3 von 7
Beitrag ID: #387367
Bewertung:
(6304 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Stephan,

Danke fürs Sharen :-) und Kompliment für deine Ausdauer dich mit
dem Thema Skripten zu beschäftigen ;-)

Viele Grüße,
Sacha


als Antwort auf: [#387349]

[share] Skript verschiebt Objekt ein Layer rauf/runter

desertman
Beiträge gesamt: 365

27. Feb 2009, 16:47
Beitrag # 4 von 7
Beitrag ID: #387383
Bewertung:
(6281 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
... habe gerade in dieser Woche staendig Objekte verschieben muessen und fand das ueber die Palette sehr laestig und habe mir gewuenscht, dass das doch ueber einen Shortcut moeglich waere. Da kommt dein Skript wortwoertlich "wie gerufen". Vielen Dank!


als Antwort auf: [#387367]

[share] Skript verschiebt Objekt ein Layer rauf/runter

bb99
Beiträge gesamt: 2

24. Mär 2016, 09:39
Beitrag # 5 von 7
Beitrag ID: #548334
Bewertung:
(3602 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

bin auf CC 2015 umgestiegen. Jetzt funktionieren die beiden Scripte nicht mehr - habe mich aber über Jahre an sie gewöhnt, kann nicht mehr OHNE. Kann jemand helfen?

====
Fehler 55
Fehlerzeichenfolge: Object does not support the property or method 'userInteractionLevel'
Zeile 15
====



als Antwort auf: [#387383]

[share] Skript verschiebt Objekt ein Layer rauf/runter

Hans Haesler
  
Beiträge gesamt: 5826

24. Mär 2016, 20:44
Beitrag # 6 von 7
Beitrag ID: #548352
Bewertung:
(3514 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo bb99,

herzlich willkommen in der Skriptwerkstatt auf HilfDirSelbst! :-)

Mit ...

Code
alert (app.version[0]); 

... ist das Ergebnis "1". Also kleiner als die gegebene "4".
Obwohl die Version Deines Programms höher ist.

Nämlich:
Code
alert (app.version); 

ergibt "11.3.0.34"

Mit der [0] wird nur das erste Zeichen zurückgegeben.

Radikale Abhilfe: Die Zeile 15 so kürzen:

Code
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll; 

Zusätzliche, kosmetische Korrektur: Auch in der ersten Zeile das "CS3/CS4" ändern.

Gruss, Hans


als Antwort auf: [#548334]

[share] Skript verschiebt Objekt ein Layer rauf/runter

bb99
Beiträge gesamt: 2

29. Mär 2016, 10:17
Beitrag # 7 von 7
Beitrag ID: #548413
Bewertung:
(3301 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
1a

So funktioniert es wieder. Besten Dank :-)


als Antwort auf: [#548352]
X