Ausgabe
Ich arbeite an einem Skript, das eine Ebene nach rechts, links, oben oder unten bewegt. Dies hängt davon ab, welche Kante der Ebene sich innerhalb der Leinwand befindet.
Ich habe es geschafft, die Ebene mithilfe von bounds[0] und bounds[2] nach links und rechts (x-Achse) zu bewegen.
Aber wenn ich versuche, es nach oben oder unten zu bewegen, bewegt es sich immer noch nach links / rechts. Ist es die Begrenzungszahl, die ich falsch verstanden habe?
var Y1 = bounds[3].as('px');
var Height = app.activeDocument.height.as('px');
//move down
if (Y1 < Height) {
activeDocument.activeLayer.translate(Height-Y1);
}
Lösung
Das erste, was Sie in einer solchen Situation wahrscheinlich tun möchten, ist, die Dokumentation zu überprüfen . Denn .translate()
wir können Folgendes finden:
Um sich also horizontal zu bewegen, würden wir verwenden deltaX
und um uns vertikal zu bewegen deltaY
. In Ihrem Code geben Sie .translate()
nur an deltaX
, sodass Ihre Ebene wie erwartet horizontal verschoben wird. Um diesen Pass 0
als erstes Argument und Ihr Height-Y1
als zweites zu beheben:
activeDocument.activeLayer.translate(0, Height - Y1);
Beantwortet von – Sergey Kritskiy
Antwort geprüft von – Candace Johnson (FixError Volunteer)