在取消选中复选框期间调用功能 - 脚本 CS6 64 位 Photoshop - 错误
Envoking function during unchecking checkbox - script CS6 64 bit Photoshop - Bug
我有功能,当你选中框 "Same Height and Width" var constrainsProportions
启用从高度 grpHeight.numb
到宽度 grpWidth.numb
的应对值,反之亦然,当你将一些值传递给.
分别在grpWidth.numb.onChange = function()
和grpHeight.numb.onChange = function()
中调用。
而且有效。
此外,当您选中复选框时,它会采用最高值并将其传递给第二个。
这是在 if (constrainsProportions.value == true)
条件下调用的
它也有效.
错误是在任何 edittext
中传递值时(您没有点击进入或退出编辑),您单击复选框。它再次采用最高值并将其传递给第二个。
它不应该起作用。不应更改任何值。
即使 constrainsProportions.value
是 false
,当你第二次点击复选框时。并且 grpWidth.numb.onChange()
else grpHeight.numb.onChange
在这种情况下不应该被调用
不知道哪里出错了。
代码
#target photoshop
var mainWindow = new Window("dialog", "dynamic changing values");
var grpUnitVal = mainWindow.add("group")
var constrainsProportions = grpUnitVal.add("checkbox", undefined, "Same Height and Width");
//Edittext: Height
var grpHeight = mainWindow.add("group")
grpHeight.text = grpHeight.add("statictext", undefined, "Height: ");
grpHeight.numb = grpHeight.add("edittext", undefined, 0);
grpHeight.numb.characters = 9;
//Edittext: Width
var grpWidth = mainWindow.add("group")
grpWidth.text = grpWidth.add("statictext", undefined, "Width: ");
grpWidth.numb = grpWidth.add("edittext", undefined, 0);
grpWidth.numb.characters = 9;
//Edittext: Width; if "constrains proportion" is checked, Heigth and Width values are changed in the same time
grpWidth.numb.onChange = function() {
if (constrainsProportions.value == true){
grpHeight.numb.text = grpWidth.numb.text;}
}
//Edittext: Height; if "constrains proportion" is checked, Heigth and Width values are changed in the same time
grpHeight.numb.onChange = function() {
if (constrainsProportions.value == true){
grpWidth.numb.text = grpHeight.numb.text;}
}
constrainsProportions.onClick = function() {
//Set the same heighest value in Height and Width
alert(constrainsProportions.value);
if (constrainsProportions.value == true){
if (parseInt(grpWidth.numb.text, 10) > parseInt(grpHeight.numb.text, 10)) {
grpWidth.numb.onChange();}
else {
grpHeight.numb.onChange();}
}
}
mainWindow.show();
提前致谢。
发生这种情况是因为 onChange()
事件是在控件失去焦点时发送的,而不是在您键入时发送的,因此代码会获得您在面板上看到的内容的先前版本。使用 onChanging
代替:
#target photoshop
var mainWindow = new Window("dialog", "dynamic changing values");
var grpUnitVal = mainWindow.add("group")
var constrainsProportions = grpUnitVal.add("checkbox", undefined, "Same Height and Width");
//Edittext: Height
var grpHeight = mainWindow.add("group")
grpHeight.text = grpHeight.add("statictext", undefined, "Height: ");
grpHeight.numb = grpHeight.add("edittext", undefined, 0);
grpHeight.numb.characters = 9;
//Edittext: Width
var grpWidth = mainWindow.add("group")
grpWidth.text = grpWidth.add("statictext", undefined, "Width: ");
grpWidth.numb = grpWidth.add("edittext", undefined, 0);
grpWidth.numb.characters = 9;
//Edittext: Width; if "constrains proportion" is checked, Heigth and Width values are changed in the same time
grpWidth.numb.onChanging = function() {
if (constrainsProportions.value){
grpHeight.numb.text = this.text;}
}
//Edittext: Height; if "constrains proportion" is checked, Heigth and Width values are changed in the same time
grpHeight.numb.onChanging = function() {
if (constrainsProportions.value){
grpWidth.numb.text = this.text;}
}
constrainsProportions.onClick = function() {
//Set the same heighest value in Height and Width
// alert(constrainsProportions.value);
if (this.value){
if (parseInt(grpWidth.numb.text, 10) > parseInt(grpHeight.numb.text, 10)) {
grpHeight.numb.text = grpWidth.numb.text;}
else {
grpWidth.numb.text = grpHeight.numb.text;}
}
}
mainWindow.show();
我有功能,当你选中框 "Same Height and Width" var constrainsProportions
启用从高度 grpHeight.numb
到宽度 grpWidth.numb
的应对值,反之亦然,当你将一些值传递给.
分别在grpWidth.numb.onChange = function()
和grpHeight.numb.onChange = function()
中调用。
而且有效。
此外,当您选中复选框时,它会采用最高值并将其传递给第二个。
这是在 if (constrainsProportions.value == true)
条件下调用的
它也有效.
错误是在任何 edittext
中传递值时(您没有点击进入或退出编辑),您单击复选框。它再次采用最高值并将其传递给第二个。
它不应该起作用。不应更改任何值。
即使 constrainsProportions.value
是 false
,当你第二次点击复选框时。并且 grpWidth.numb.onChange()
else grpHeight.numb.onChange
在这种情况下不应该被调用
不知道哪里出错了。
代码
#target photoshop
var mainWindow = new Window("dialog", "dynamic changing values");
var grpUnitVal = mainWindow.add("group")
var constrainsProportions = grpUnitVal.add("checkbox", undefined, "Same Height and Width");
//Edittext: Height
var grpHeight = mainWindow.add("group")
grpHeight.text = grpHeight.add("statictext", undefined, "Height: ");
grpHeight.numb = grpHeight.add("edittext", undefined, 0);
grpHeight.numb.characters = 9;
//Edittext: Width
var grpWidth = mainWindow.add("group")
grpWidth.text = grpWidth.add("statictext", undefined, "Width: ");
grpWidth.numb = grpWidth.add("edittext", undefined, 0);
grpWidth.numb.characters = 9;
//Edittext: Width; if "constrains proportion" is checked, Heigth and Width values are changed in the same time
grpWidth.numb.onChange = function() {
if (constrainsProportions.value == true){
grpHeight.numb.text = grpWidth.numb.text;}
}
//Edittext: Height; if "constrains proportion" is checked, Heigth and Width values are changed in the same time
grpHeight.numb.onChange = function() {
if (constrainsProportions.value == true){
grpWidth.numb.text = grpHeight.numb.text;}
}
constrainsProportions.onClick = function() {
//Set the same heighest value in Height and Width
alert(constrainsProportions.value);
if (constrainsProportions.value == true){
if (parseInt(grpWidth.numb.text, 10) > parseInt(grpHeight.numb.text, 10)) {
grpWidth.numb.onChange();}
else {
grpHeight.numb.onChange();}
}
}
mainWindow.show();
提前致谢。
发生这种情况是因为 onChange()
事件是在控件失去焦点时发送的,而不是在您键入时发送的,因此代码会获得您在面板上看到的内容的先前版本。使用 onChanging
代替:
#target photoshop
var mainWindow = new Window("dialog", "dynamic changing values");
var grpUnitVal = mainWindow.add("group")
var constrainsProportions = grpUnitVal.add("checkbox", undefined, "Same Height and Width");
//Edittext: Height
var grpHeight = mainWindow.add("group")
grpHeight.text = grpHeight.add("statictext", undefined, "Height: ");
grpHeight.numb = grpHeight.add("edittext", undefined, 0);
grpHeight.numb.characters = 9;
//Edittext: Width
var grpWidth = mainWindow.add("group")
grpWidth.text = grpWidth.add("statictext", undefined, "Width: ");
grpWidth.numb = grpWidth.add("edittext", undefined, 0);
grpWidth.numb.characters = 9;
//Edittext: Width; if "constrains proportion" is checked, Heigth and Width values are changed in the same time
grpWidth.numb.onChanging = function() {
if (constrainsProportions.value){
grpHeight.numb.text = this.text;}
}
//Edittext: Height; if "constrains proportion" is checked, Heigth and Width values are changed in the same time
grpHeight.numb.onChanging = function() {
if (constrainsProportions.value){
grpWidth.numb.text = this.text;}
}
constrainsProportions.onClick = function() {
//Set the same heighest value in Height and Width
// alert(constrainsProportions.value);
if (this.value){
if (parseInt(grpWidth.numb.text, 10) > parseInt(grpHeight.numb.text, 10)) {
grpHeight.numb.text = grpWidth.numb.text;}
else {
grpWidth.numb.text = grpHeight.numb.text;}
}
}
mainWindow.show();