Есть скрипт который меняет Anchore POINT используя цифровую клавиатуру. Сам скрипт забит на Ctrl+Alt+End. Довольно удобно нажав это сочетание и кнопку на цифровой клавиатуре (1-9) переставить Anchore POINT. После нажатия скрипт закрывается.
И все бы хорошо в СS6, да начиная с СС при вызове w.show(); само окно не активируется. Надо дополнительно клацнуть его мышью, за тем скрипт начинает работать (перехватывать клавиши) - без активации - ни как
window.active = true - не помогает.
Хотелось бы понять что происходит?
Что поломалось в СС?
И вообще можно ли назначить EventListener "keydown" чему-то еще, возможно без вызова окна (например activeDocument или просто app)?
Код:
#targetengine "doSomethingWithMultiselect"
var w = new Window("palette");
var butStart = w.add("button",undefined,"&Anchore 123456789");
var started = false;
w.addEventListener ("keydown", function (kd) {pressed (kd)});
function pressed (k) {
//1
if (k.keyIdentifier == "U+0031") {
app.activeWindow.transformReferencePoint = AnchorPoint.BOTTOM_LEFT_ANCHOR
w.close();
exit
}
//2
if (k.keyIdentifier == "U+0032") {
app.activeWindow.transformReferencePoint = AnchorPoint.BOTTOM_CENTER_ANCHOR
w.close();
exit
}
//3
if (k.keyIdentifier == "U+0033") {
app.activeWindow.transformReferencePoint = AnchorPoint.BOTTOM_RIGHT_ANCHOR
w.close();
exit
}
//4
if (k.keyIdentifier == "U+0034") {
app.activeWindow.transformReferencePoint = AnchorPoint.LEFT_CENTER_ANCHOR
w.close();
exit
}
//5
if (k.keyIdentifier == "U+0035") {
app.activeWindow.transformReferencePoint = AnchorPoint.CENTER_ANCHOR
w.close();
exit
}
//6
if (k.keyIdentifier == "U+0036") {
app.activeWindow.transformReferencePoint = AnchorPoint.RIGHT_CENTER_ANCHOR
w.close();
exit
}
//7
if (k.keyIdentifier == "U+0037") {
app.activeWindow.transformReferencePoint = AnchorPoint.TOP_LEFT_ANCHOR
w.close();
exit
}
//8
if (k.keyIdentifier == "U+0038") {
app.activeWindow.transformReferencePoint = AnchorPoint.TOP_CENTER_ANCHOR
w.close();
exit
}
//9
if (k.keyIdentifier == "U+0039") {
app.activeWindow.transformReferencePoint = AnchorPoint.TOP_RIGHT_ANCHOR
w.close();
exit
}
}
w.show();
// app.activeWindow.transformReferencePoint = AnchorPoint.BOTTOM_CENTER_ANCHOR
// app.activeWindow.transformReferencePoint = AnchorPoint.BOTTOM_LEFT_ANCHOR
// app.activeWindow.transformReferencePoint = AnchorPoint.BOTTOM_RIGHT_ANCHOR
// app.activeWindow.transformReferencePoint = AnchorPoint.CENTER_ANCHOR
// app.activeWindow.transformReferencePoint = AnchorPoint.LEFT_CENTER_ANCHOR
// app.activeWindow.transformReferencePoint = AnchorPoint.RIGHT_CENTER_ANCHOR
// app.activeWindow.transformReferencePoint = AnchorPoint.TOP_CENTER_ANCHOR
// app.activeWindow.transformReferencePoint = AnchorPoint.TOP_LEFT_ANCHOR
// app.activeWindow.transformReferencePoint = AnchorPoint.TOP_RIGHT_ANCHOR
// 1
// U+0031
// 2
// U+0032
// 3
// U+0033
// 4
// U+0034
// 5
// U+0035
// 6
// U+0036
// 7
// U+0037
// 8
// U+0038
// 9
// U+0039
И все бы хорошо в СS6, да начиная с СС при вызове w.show(); само окно не активируется. Надо дополнительно клацнуть его мышью, за тем скрипт начинает работать (перехватывать клавиши) - без активации - ни как

window.active = true - не помогает.
Хотелось бы понять что происходит?
Что поломалось в СС?
И вообще можно ли назначить EventListener "keydown" чему-то еще, возможно без вызова окна (например activeDocument или просто app)?