与 Photoshop UI 布尔语法混淆
Confusion with Photoshop UI boolean syntax
我可以用
创建一个简单的 Photoshop UI
var dlg = new Window("dialog");
// add buttons
dlg.add ("button", undefined, "OK");
dlg.add ("button", undefined, "Cancel");
// show the dialog;
dlg.center();
var myReturn = dlg.show();
if (myReturn == true)
{
var msg = myReturn;
alert(msg);
}
我的问题是:为什么是
if (myReturn == true || myReturn == 1) { do something }' // okay button works fine
与
不一样
if (myReturn) { do something } // doesn't work (all buttons work, including cancel)
一般来说,if(bool)
和if (bool == true)
是一样的
这是 Photoshop qwerk 吗?
Window.show()
returns 是一个整数,不是布尔值。 Photoshop 知道几个关键字,如 Ok
和 Cancel
,以及带有这些词 return 硬编码值的按钮(1
用于 Ok
和 2
对于 Cancel
)。您可以在 .onClick()
:
中设置自定义 returns
var dlg = new Window("dialog");
// add buttons
dlg.add ("button", undefined, "OK");
var al = dlg.add ("button", undefined, "Close with custom return value");
dlg.add ("button", undefined, "Cancel");
al.onClick = function () {
dlg.close(10)
}
// show the dialog;
dlg.center();
var myReturn = dlg.show();
// Ok will alert 1
// Close with custom return value will alert 10
// Cancel will alert 2
alert(myReturn);
我可以用
创建一个简单的 Photoshop UIvar dlg = new Window("dialog");
// add buttons
dlg.add ("button", undefined, "OK");
dlg.add ("button", undefined, "Cancel");
// show the dialog;
dlg.center();
var myReturn = dlg.show();
if (myReturn == true)
{
var msg = myReturn;
alert(msg);
}
我的问题是:为什么是
if (myReturn == true || myReturn == 1) { do something }' // okay button works fine
与
不一样if (myReturn) { do something } // doesn't work (all buttons work, including cancel)
一般来说,if(bool)
和if (bool == true)
是一样的
这是 Photoshop qwerk 吗?
Window.show()
returns 是一个整数,不是布尔值。 Photoshop 知道几个关键字,如 Ok
和 Cancel
,以及带有这些词 return 硬编码值的按钮(1
用于 Ok
和 2
对于 Cancel
)。您可以在 .onClick()
:
var dlg = new Window("dialog");
// add buttons
dlg.add ("button", undefined, "OK");
var al = dlg.add ("button", undefined, "Close with custom return value");
dlg.add ("button", undefined, "Cancel");
al.onClick = function () {
dlg.close(10)
}
// show the dialog;
dlg.center();
var myReturn = dlg.show();
// Ok will alert 1
// Close with custom return value will alert 10
// Cancel will alert 2
alert(myReturn);