Slider help to adjust scale and rotation:
Hello everyone!
I don't understand why when I apply a value to the slider scala, then another value to the slider rotate the values are reset. Why don't my values apply when I switch between scale and rotate sliders? How can I resolve the error?
Thank you!
dialog = new Window("dialog"); dialog.text = "test";
group1 = dialog.add("group");
group1.orientation = "row";
group1.alignChildren = ["left","center"];
statictext1 = group1.add("statictext"); statictext1.text = "Scale:";
slider1 = group1.add("slider {minvalue: 0, maxvalue: 300, value: 100}");
slider1.preferredSize.width = 200;
ts = group1.add("edittext"); ts.text = "100";
ts.preferredSize.width = 40;
statictext2 = group1.add("statictext");statictext2.text = "%";
group2 = dialog.add("group");
statictext3 = group2.add("statictext"); statictext3.text = "Rotate:";
slider2 = group2.add("slider {minvalue: -180, maxvalue: 180, value: 0}");
slider2.preferredSize.width = 200;
tr = group2.add("edittext"); tr.text = "0";
tr.preferredSize.width = 40;
statictext4 = group2.add("statictext"); statictext4.text = "º";
button1 = dialog.add("button"); button1.text = "Done";
button1.preferredSize.width = 80;
var doc = app.activeDocument;
var currentStatus = doc.activeHistoryState;
slider1.onChange= function () {
ts.text = Math.round(slider1.value );
doc.activeHistoryState = currentStatus; app.activeDocument.suspendHistory ("scale", "scale()");
app.refresh();
}
ts.onChange= function () {
slider1.value = Number(ts.text);
doc.activeHistoryState = currentStatus; app.activeDocument.suspendHistory ("scale", "scale()");
app.refresh();
}
slider2.onChange= function () {
tr.text = Math.round(slider2.value );
doc.activeHistoryState = currentStatus; app.activeDocument.suspendHistory ("rotate", "rotate()");
app.refresh();
}
tr.onChange= function () {
slider2.value = Number(tr.text);
doc.activeHistoryState = currentStatus; app.activeDocument.suspendHistory ("rotate", "rotate()");
app.refresh();
}
function scale(){
activeDocument.activeLayer.resize(slider1.value, slider1.value, AnchorPosition.MIDDLECENTER);
}
function rotate(){
with (activeDocument.activeLayer) {rotate(slider2.value)};
}
button1.onClick = function(){
dialog.close()
}
dialog.show();
