新手求助:如何让新建的dialog窗口匹配鼠标位置或指定位置
解决Dialog窗口指定位置/跟随鼠标的问题
你当前的代码问题在于Window构造函数的参数顺序错误——你把窗口的位置尺寸数组放在了「窗口标题」的参数位置,导致这个设置不生效。
正确指定窗口位置的写法
ExtendScript中Window的构造函数签名是:Window(type, title, bounds, properties),其中bounds是可选的位置尺寸参数,格式为[left, top, right, bottom](左、上、右、下四个坐标)。
如果不需要窗口标题,可以传空字符串作为第二个参数,再传入位置数组:
// 创建一个左上角在(100,495)、宽200高45的对话框 var dlg = new Window("dialog", "", [100, 495, 300, 540]); dlg.show(); // 必须调用show()才能显示窗口
让窗口跟随鼠标位置
如果要让窗口显示在鼠标当前位置,可以先通过Window.getMouseLocation()获取鼠标坐标,再计算窗口的bounds:
var mousePos = Window.getMouseLocation(); // 获取鼠标当前坐标 [x, y] var dlgWidth = 200; var dlgHeight = 45; // 让窗口左上角对齐鼠标位置 var dlg = new Window("dialog", "", [ mousePos[0], mousePos[1], mousePos[0] + dlgWidth, mousePos[1] + dlgHeight ]); dlg.show();
额外提示
- 部分Adobe应用的ExtendScript环境中,窗口位置会被系统或应用的窗口管理规则限制(比如不能超出屏幕可视范围),如果需要更严谨的处理,可以添加坐标边界检查。
- 如果你后续需要调整窗口位置,也可以在创建窗口后单独设置
bounds属性:var dlg = new Window("dialog"); dlg.bounds = [100, 495, 300, 540]; dlg.show();
内容的提问来源于stack exchange,提问作者Leon Pham
相关产品推荐
相关产品推荐

