[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt JS Objekt tauschen

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

JS Objekt tauschen

didi
Beiträge gesamt: 14

24. Jan 2012, 15:19
Beitrag # 1 von 5
Bewertung:
(1995 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Leute,
mit dem JS "switchBox" kann man ausgewählte Objekte tauschen, könnte mir jemand das JS so ergänzen, damit ich bei der 2. Box einen x-Wert eingeben kann. System Mac OS X, InDesign CS5. Hab leider (sehr) wenig Ahnung von Script schreiben, deswegen der Hilferuf.

Hier das JS:
// Textboxen tauschen
// Zwei Textboxen markieren und tauschen
var mySelection = app.selection
if (mySelection.length == 2)
{
var coords1 = mySelection[0].geometricBounds;
var coords2 = mySelection[1].geometricBounds;
var diff = [0, 0];
diff[1] = coords1[0] - coords2[0];
diff[0] = coords1[1] - coords2[1];
mySelection[1].move(undefined, diff);
diff[0] = diff[0]*-1;
diff[1] = diff[1]*-1;
mySelection[0].move(undefined, diff);
}

Vielen Dank für die Unterstützung
Gruß Didi
X

JS Objekt tauschen

Martin Fischer
  
Beiträge gesamt: 12687

24. Jan 2012, 16:07
Beitrag # 2 von 5
Beitrag ID: #488457
Bewertung:
(1985 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Didi,

ich bin mir nicht sicher, ob ich Dich richtig verstanden habe.
Aber Du könntest so vorgehen, dass Du die ausgewählten Objekte zunächst wie gehabt vertauscht und dann eins der beiden (welches ist für Dich das zweite?) auf die Koordinate des fixen x-Werts verschiebst.

Z.B. so:
Code
var x_Wert = Number(prompt('x-Wert', 10)); 

var mySelection = app.selection
if (mySelection.length == 2)
{
var coords1 = mySelection[0].geometricBounds;
var coords2 = mySelection[1].geometricBounds;
var diff = [0, 0];
diff[1] = coords1[0] - coords2[0];
diff[0] = coords1[1] - coords2[1];
mySelection[1].move(undefined, diff);
diff[0] = diff[0]*-1;
diff[1] = diff[1]*-1;
mySelection[0].move(undefined, diff);

mySelection[1].move([mySelection[1].geometricBounds[1], x_Wert]);
}


Wenn damit das falsche Objekt auf den richtigen x-Wert verschoben wird, dann verwende am Ende folgende Zeile:

Code
mySelection[0].move([mySelection[0].geometricBounds[1], x_Wert]); 



als Antwort auf: [#488455]
(Dieser Beitrag wurde von Martin Fischer am 24. Jan 2012, 16:23 geändert)

JS Objekt tauschen

didi
Beiträge gesamt: 14

24. Jan 2012, 16:37
Beitrag # 3 von 5
Beitrag ID: #488459
Bewertung:
(1962 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

Danke für die Hilfe, Objekt [0] soll verschoben werden, macht er auch im InDesign, aber nicht im x-Wert sondern senkrecht (y). Eine Idee?

Gruß Didi


als Antwort auf: [#488457]

JS Objekt tauschen

Martin Fischer
  
Beiträge gesamt: 12687

24. Jan 2012, 16:39
Beitrag # 4 von 5
Beitrag ID: #488460
Bewertung:
(1959 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Didi,

mein Fehler.
Hab x und y durcheinandergebracht.

Ersetze die letzte Zeile durch diese neue Zeile:

Code
mySelection[1].move([x_Wert, mySelection[1].geometricBounds[0]]); 



als Antwort auf: [#488459]
(Dieser Beitrag wurde von Martin Fischer am 24. Jan 2012, 16:40 geändert)

JS Objekt tauschen

didi
Beiträge gesamt: 14

25. Jan 2012, 09:03
Beitrag # 5 von 5
Beitrag ID: #488510
Bewertung:
(1895 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Martin,

funktioniert, vielen Dank.


als Antwort auf: [#488460]
X