[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Indesign Scripting - Durchiterieren der Parents / Variable in "Objektpfad"

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

Indesign Scripting - Durchiterieren der Parents / Variable in "Objektpfad"

SamiSalami
Beiträge gesamt: 66

25. Okt 2010, 12:15
Beitrag # 1 von 9
Bewertung:
(3259 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo :-)

Ich bin erst seit kurzem beim Indesignscripting, von daher sind meine Kenntnisse noch etwas eingeschränkt, dabei ist JavaScript allerdings eher das kleinere Problem - hier besitze ich gute Vorkenntnisse.

In dem Skript, das ich gerade schreibe, ist es notwendig alle Parents durchzugehen bis ich das richtige Objekt finde (in diesem Fall: Cell). Das sieht zur Zeit so aus
Code
... 
var parentvar = "parent";

while (myImageArray[i].parent && myParent != "undefined"){
switch (myImageArray[i].parentvar.constructor.name){
case "Rectangle":
case "Oval":
case "Polygon":
case "Group":
case "Button":
case "TextFrame":
case "GraphicLine":
break;

case "Cell":
var myParent = myImageArray[i].parentvar;

}
parentvar = parentvar + ".parent";
}
...


Problem: Variable nimmt er nicht!
Sagt er natürlich ist kein Objekt/Eigenschaft von EPS (die Grafiken).
Zu dem Array: Übergeordnet iteriert eine Schleife durch alle Grafiken.

Also meine Frage: Gibt es eine Möglichkeit an der Stelle eine Variable anzugeben? Habe schon ein paar Sachen versucht (etwaige Klammern und sonstige Sonderzeichen), aber nichts konkretes bei der bemühten Google- wie Forensuche gefunden.

Oder gibt es vllt einen viel gescheiteren Weg die Parents bis zur Zelle durchzuiterieren und dies dann als "Pfad" in einer Variable abzulegen?
Da ich mich wie gesagt erst seit kurzem mit dem Thema beschäftige kenn ich noch nicht unbedingt die besten Wege :-)

Vielen Dank schon einmal im Vorraus!
Solltet ihr noch Fragen haben nur her damit ;-)

LG,
Sami

(Dieser Beitrag wurde von SamiSalami am 25. Okt 2010, 12:17 geändert)
X

Indesign Scripting - Durchiterieren der Parents / Variable in "Objektpfad"

SamiSalami
Beiträge gesamt: 66

25. Okt 2010, 12:38
Beitrag # 2 von 9
Beitrag ID: #455049
Bewertung:
(3243 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
War noch ein Fehler in der Schleifenbedingung.

War:
Code
while (myImageArray[i].parent && myParent != "undefined") 


Soll aber:
Code
while (myImageArray[i].parent && myParent == "undefined") 


Ändert aber auch nicht viel an meiner Frage, ist aber besser für's Verständnis :-)


als Antwort auf: [#455047]
(Dieser Beitrag wurde von SamiSalami am 25. Okt 2010, 12:40 geändert)

Indesign Scripting - Durchiterieren der Parents / Variable in "Objektpfad"

SamiSalami
Beiträge gesamt: 66

25. Okt 2010, 13:11
Beitrag # 3 von 9
Beitrag ID: #455054
Bewertung:
(3216 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Okay, nochmal ein Update!

Also mein Ansatz ist glaube ich in vielerlei Hinsicht Quark.

Code
while (myImageArray[i].parent) 

Diese Bedingung endet natürlich in einem endlosen true; da er nicht Parent für Parent durchgeht; hier bräuchte ich also sowas wie "parents.length" - sowas finde ich aber auch nicht?
Also erweitert sich meine Frage nun nicht nur um eine mögliche Änderung des Ansatzes durch die Parents zu iterieren; er scheint notwendig, vor Allem weil ich unabhängig bleiben möchte von der Anzahl der Parents.

Edit:
Sorry für's Mehrfachposting, aber meiner Meinung nach ist es wichtig, über meine Fortschritte auf dem Laufenden zu halten... und die Zeit Beiträge zu editieren wurde hier leider begrenzt.


als Antwort auf: [#455049]
(Dieser Beitrag wurde von SamiSalami am 25. Okt 2010, 13:12 geändert)

Indesign Scripting - Durchiterieren der Parents / Variable in "Objektpfad"

Stephan_M
Beiträge gesamt: 480

25. Okt 2010, 14:34
Beitrag # 4 von 9
Beitrag ID: #455066
Bewertung:
(3189 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,
Du könntest das mit einer Rekursion ganz gut machen. Hier ist ein Denkansatz hinskizziert:

Code
var gesuchterParent; 

function sucheParent(obj, gesuchterParent) {
if (irgendeineBedinung == false) {
obj = obj.parent
sucheParent(obj, gesuchterParent)
}
else gesuchterParent = obj;
}

sucheParent(myObj, gesuchterParent);


Gruß,
Stephan


als Antwort auf: [#455054]

Indesign Scripting - Durchiterieren der Parents / Variable in "Objektpfad"

SamiSalami
Beiträge gesamt: 66

25. Okt 2010, 14:39
Beitrag # 5 von 9
Beitrag ID: #455067
Bewertung:
(3187 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Perfekt, vielen Dank!
So einen Ansatz hab ich gebraucht :-)

Ich meld mich nochmal, wenns dann geht oder halt auch nicht ;-)


als Antwort auf: [#455066]

Indesign Scripting - Durchiterieren der Parents / Variable in "Objektpfad"

SamiSalami
Beiträge gesamt: 66

25. Okt 2010, 15:28
Beitrag # 6 von 9
Beitrag ID: #455070
Bewertung:
(3163 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Stephan!

Vielen Dank nochmal für deine Hilfe!
Ich habe die Funktion mit eingebunden und brauchte nicht mehr viel zu machen :-)

Neben der Tatsache, dass es ganz wundervoll läuft habe ich hier irgendwie noch ein anderes "logisches Problem" am Start.

Code
for (var i=0; i < myImageArray.length; i++){ 

var myPath = myImageArray[i].itemLink.name;
var myScaling = myImageArray[i].horizontalScale;

myCell = getParent(myImageArray[i], "Cell");

myCell.contents = myPath + " ## " + myScaling;

}


Beim zweiten Durchlauf dieser Schleife, bricht er ab mit einer Meldung, das benötigte Objekt wäre nicht mehr vorhanden (rot markierte Zeile).
Aber da ich das komplette Array abklappere und es immer um eine Grafik geht dürfte das doch nicht der Fall sein oder?

Vielen Dank und liebe Grüße,
Sami

Anmerkung:
Alle Bilder liegen in einzelnen Zellen; das Ersetzen der Grafiken durch die oben genannten Eigenschaften ist vorgesehen und erwünscht!


als Antwort auf: [#455066]
(Dieser Beitrag wurde von SamiSalami am 25. Okt 2010, 15:31 geändert)

Indesign Scripting - Durchiterieren der Parents / Variable in "Objektpfad"

SamiSalami
Beiträge gesamt: 66

25. Okt 2010, 16:19
Beitrag # 7 von 9
Beitrag ID: #455074
Bewertung:
(3135 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Sorry, Problem gefunden!
Teils mehrere Bilder in einer Zelle; das habe ich mal glatt übersehen.
Vielen Dank für die Bemühungen,
das Thema ist somit erstmal "solved" :-)

Liebe Grüße,
Sami


als Antwort auf: [#455070]

Indesign Scripting - Durchiterieren der Parents / Variable in "Objektpfad"

Stephan_M
Beiträge gesamt: 480

25. Okt 2010, 17:37
Beitrag # 8 von 9
Beitrag ID: #455084
Bewertung:
(3118 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Schön zu hören. Viel Erfolg beim weiteren skripten.
Was machst' denn? Bitte posten, wenn's fertig ist. ;)


als Antwort auf: [#455074]

Indesign Scripting - Durchiterieren der Parents / Variable in "Objektpfad"

SamiSalami
Beiträge gesamt: 66

26. Okt 2010, 09:00
Beitrag # 9 von 9
Beitrag ID: #455126
Bewertung:
(3075 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ist eher was Spezielles und auch Simples, bezweifel dass das jemand anderes außer mir braucht *g* (und viel zu lernen gibt es von meinem Scripting sicherlich auch noch nicht *hust*).
Es geht darum in einem Dokument alle Bilder durch ihren Namen und ihre Skalierung/Maße zu ersetzen - Bedingung ist halt kein neues Objekt zu erzeugen (wie zB Textframe), sondern die Beschriftung einem Bestehenden zu geben.
Die Parentsuche war hierbei notwendig, da die Bilder halt unterschiedliche Parents aufweisen (bis auf das Rectangle) und ich somit einen Parent brauche der "contents" als Eigenschaft hat.

Keine Ahnung ob ich da noch einen etwas umständlichen Weg gehe, aber das Skript ist nicht allzulang - also mache ich mir da keine Sorgen *g*

Da das nur eine Aufgabe ist, die ich jetzt einmal benötige, glaube ich, dass es nicht sehr hilfreich ist; aber ich werde gerne bei nächster Gelegenheit mal was anderes von mir posten :-)


als Antwort auf: [#455084]
X