gpt4 book ai didi

javascript - InDesign 脚本错误 : "Expected Layer, but received Layer"

转载 作者:行者123 更新时间:2023-12-04 01:22:30 31 4
gpt4 key购买 nike

我有一个(非常大的)脚本在 InDesign 中运行,该脚本在某一时刻将库资源放置到页面上,然后将其移动到特定图层。此脚本在我们这里的所有计算机上都运行良好,但仅当当时 InDesign 中没有打开其他文档时

如果打开了另一个文档,则当脚本试图将放置的资源移动到另一层时会出现错误:

JavaScript Error!

Error Number: 54 Error String: Uncaught JavaScript exception: ERROR at line number 2651 Invalid value for set property 'itemLayer'. Expected Layer, but received Layer.

注意粗体部分。它收到了它期待的东西,所以它发脾气了?这对我来说毫无意义。作为记录,这里是它引用的代码行:

curAsset[0].itemLayer = document.layers.item("Art Work (max imprint)");

并且,根据记录,curAsset[0] 是从库中获取并已放置在文档中的 Assets 对象。而document是一个已经赋值给当前打开的文档的变量。

我的工作理论是,在 InDesign 中打开的其他文档导致了此错误,因为这是迄今为止我能够建立的唯一关联,但我不知道如何关联。该脚本已有变量 document,它仅引用打开的文档之一。脚本中的其他所有内容都运行良好,除了这一行(到目前为止)。

最佳答案

这是一个非常有趣/令人愤怒的错误消息。您可以随时尝试 getElements()。它有时就像魔术一样有效。

curAsset[0].itemLayer = document.layers.item("Art Work (max imprint)").getElements()[0];

还有一件事要考虑。 InDesign 中的 Extendscript 有时不区分特定类型的对象和该类型的对象数组。因此,您可能希望确保您的查询只返回一个项目。

关于javascript - InDesign 脚本错误 : "Expected Layer, but received Layer",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19381934/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com