Какие методы и свойства предоставляются для использования через сценарии для стандартных панелей InDesign? - PullRequest
1 голос
/ 07 октября 2019

Я могу получить ссылку, например, на панель «Сценарии»;но, хотя имя его конструктора 'Panel', у него, похоже, нет методов show и hide, таких как панели, созданные с помощью сценариев, или свойства window и т. д. :

var scriptsPanel = app.panels.item('$ID/Scripts')    
scriptsPanel.window // → “Object does not support the property or method 'window'”
scriptsPanel.show(); // → “scriptsPanel.show is not a function”

У него есть некоторые свойства панелей, созданных сценариями:

scriptsPanel.visible // → true or false

Что такое стандартные методы и свойства панелей и где они документированы?

1 Ответ

2 голосов
/ 07 октября 2019

Есть несколько мест, где документируются объекты DOM. Официальным способом Adobe было бы использовать ExtendScript Toolkit для просмотра объектов, их методов и свойств (в ExtendScript Toolkit перейдите в «Справка»> «Просмотр модели объектов»).

Сказав это, большинству пользователей ExtendScript кажется, что этот браузер неудобен в использовании, поэтому в Интернете есть несколько страниц, которые документируют объектную модель InDesign.

Я лично использую и предпочитаю InDesign ExtendScriptAPI Грегора Фелленца, но другой популярной является программа просмотра JS объектной модели Jongware Adobe InDesign CS6 (8.0) (которая, похоже, больше не обновляется для более поздних версий InDesign). Я предпочитаю страницу Грегора Фелленца, потому что она имеет функцию поиска, и я нахожу ее немного проще для навигации.

Свойства и методы панели в InDesign вы можете найти здесь . Обратите внимание, что существует также объект панели ScriptUI, который задокументирован здесь . ScriptUI - это язык сценариев Adobe для создания пользовательских интерфейсов. Таким образом, два объекта панели имеют разные методы и свойства, поэтому у одного из них не было метода show().

Как вы заметили, это приводит к несколько запутанному факту, что существуют два разных типаобъектов с одинаковым именем конструктора Panel. Однако в их использовании нет никакой реальной двусмысленности, поскольку панели, которые являются родными для пользовательского интерфейса InDesign, всегда являются дочерними элементами объекта app, в то время как панели, которые вы создаете в сценарии с помощью ScriptUI, всегда являются дочерними элементами других объектов ScriptUI. ,То же самое относится и к другим парам имен DOM / ScriptUI, таким как window.

Обратите внимание, что факт наличия panel объекта в InDesign означает, что существует также объект коллекции panels, которыйимеет свойства и методы для работы с коллекцией панелей. Этот panels объект задокументирован здесь .

...