【发布时间】:2013-10-23 07:11:11
【问题描述】:
我在 InDesign 中运行了一个(非常大的)脚本,该脚本有一次将库资源放置到页面上,然后将其移动到某个图层。该脚本在我们这里的所有计算机上都可以正常运行,但仅当当时在 InDesign 中没有打开其他文档时。
如果另一个文档是打开的,那么当脚本试图将放置的资产移动到另一个层时会出现错误:
JavaScript 错误!
错误编号:54 错误字符串:未捕获的 JavaScript 异常:第 2651 行出现错误 设置属性“itemLayer”的值无效。 预期层,但收到层。
注意粗体部分。它收到了它所期望的东西,所以它发脾气了?这对我来说毫无意义。为了记录,这是它引用的代码行:
curAsset[0].itemLayer = document.layers.item("Art Work (max imprint)");
并且,为了记录,curAsset[0]是从库中取出并已放置在文档中的资产对象。而document是一个已经赋值给当前打开的文档的变量。
我的工作理论是,在 InDesign 中打开的其他文档会导致此错误,因为这是迄今为止我能够做出的唯一关联,但我不知道如何。该脚本已经具有变量document,它仅引用打开的文档之一。脚本中的其他所有内容都运行良好,除了这一行(到目前为止)。
【问题讨论】:
-
当其他文档以某种方式打开时,它会不会是从另一个文档中获取
Layer对象? -
这几乎是我的工作理论,但我不知道如何或为什么它只对引用
document变量的数十行代码中的这一行代码执行此操作。我在这里告诉大家,在运行脚本之前确保在 InDesign 中没有打开任何文档,但这显然并不理想。 -
+1 仅用于错误消息。
标签: javascript runtime-error layer adobe-indesign extendscript