Ausgabe
Mein Dilemma liegt in den pathItems (nicht im Dateipfad, sondern in den Vektorpfaden auf der Registerkarte neben den Ebenen).
Ich möchte, dass mein Skript darauf reagiert, welcher von mehreren Pfaden gerade ausgewählt ist. Gibt es eine Möglichkeit, den Index oder Namen des aktuell ausgewählten Pfads in Photoshop über JavaScript (alternativ über etwas anderes) abzurufen?
Ich habe keine Dokumentation dazu gefunden und möchte sicherstellen, dass ich nicht nur etwas Offensichtliches übersehen habe.
Lösung
Hier sind zwei Funktionen, um den pathItem-Index und -Namen zu erhalten. Wenn kein Pfad ausgewählt ist, getPathIndex()
wird -1 zurückgegeben, getPathName()
ein Fehler ausgelöst und wie gewünscht behandelt. Beachten Sie, dass, wenn mehrere Pfade ausgewählt sind, die Funktion nur auf dem letzten funktioniert: Ich glaube nicht, dass es möglich ist, mehrere ausgewählte Pfade zu durchlaufen.
function getPathIndex()
{
var ref = new ActionReference();
ref.putProperty(charIDToTypeID("Prpr"), charIDToTypeID("TrgP"));
ref.putEnumerated(charIDToTypeID("Dcmn"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
var desc = executeActionGet(ref);
return desc.getInteger(charIDToTypeID("TrgP"));
}
function getPathName()
{
var ref = new ActionReference();
ref.putProperty(charIDToTypeID("Prpr"), charIDToTypeID("PthN"));
ref.putEnumerated(charIDToTypeID('Path'), charIDToTypeID('Ordn'), charIDToTypeID('Trgt'));
try
{
var desc = executeActionGet(ref);
}
catch (e)
{
// handle error
return '';
}
return desc.getString(charIDToTypeID("PthN"));
}
Beantwortet von – Sergey Kritskiy
Antwort geprüft von – Clifford M. (FixError Volunteer)