Events 外部文件事件处理程序的事件对象在哪里?
在第136页的第8章:事件()中,它说Events 外部文件事件处理程序的事件对象在哪里?,events,adobe,adobe-indesign,extendscript,Events,Adobe,Adobe Indesign,Extendscript,在第136页的第8章:事件()中,它说 eventListeners使用脚本中定义的处理程序函数 (而不是在外部文件中)必须使用#targetengine“会话”。 如果使用#targetengine“main”(默认值)运行脚本,则 事件发生时函数不可用,脚本 生成一个错误 错误如下所示: 无法完成请求的操作,因为对象没有 不再存在 使用#targetengine不是我脚本的选项,因此我一直坚持使用事件处理程序的外部文件引用 我的问题是:如何访问外部文件事件处理程序中的事件对象?我尝试了app
eventListeners
使用脚本中定义的处理程序函数
(而不是在外部文件中)必须使用#targetengine“会话”
。
如果使用#targetengine“main”
(默认值)运行脚本,则
事件发生时函数不可用,脚本
生成一个错误
错误如下所示:
无法完成请求的操作,因为对象没有
不再存在
使用#targetengine
不是我脚本的选项,因此我一直坚持使用事件处理程序的外部文件引用
我的问题是:如何访问外部文件事件处理程序中的事件对象?我尝试了
app.scriptArgs.get(“event”)
并检查了typeof event
,但没有成功。如果不知道事件的目标,我的事件处理程序是无用的。该事件通过evt
变量在本地范围内可用
例如,将这两个文件放在同一文件夹中:
activateEventHandler.jsx
var parentFolder=(新文件($.fileName)).parent;
var eventHandlerFile=新文件(parentFolder.fsName+“/onEvent.jsx”);
var eventListener=app.addEventListener(“afterNew”,eventHandlerFile);
app.documents.add();
eventListener.remove();
onEvent.jsx
警报(“事件”+evt.eventType+”,目标为“+evt.target.constructor.name”);
运行activateEventHandler.jsx时,应该会看到一个带有文本的警报
事件“afterNew”与目标文档