Skip to content

Commit

Permalink
These are my first attempts at .rst editing; please be gentle.
Browse files Browse the repository at this point in the history
  • Loading branch information
bbb999 committed Aug 29, 2017
1 parent d9d28aa commit 10498fb
Show file tree
Hide file tree
Showing 7 changed files with 913 additions and 192 deletions.
114 changes: 9 additions & 105 deletions 1 - Introduction/extendscript-overview.rst
Original file line number Diff line number Diff line change
@@ -1,28 +1,18 @@
.. _extendscript-overview:
.. _App_object:

ExtendScript overview
=====================
Overview
========

Adobe provides an extended implementation of JavaScript, called ExtendScript, that is used by many
Adobe applications that provide a scripting interface. In addition to implementing the JavaScript
language according to the ECMA JavaScript specification, ExtendScript provides certain additional
features and utilities.

This document describes JavaScript modules, tools, utilities, and features that are available to all
JavaScript-enabled Adobe applications.

.. note:: Some modules, and features of some modules, are optional. Check the product documentation for each application for details of which modules and features are implemented.
Premiere Pro provides an ExtendScript-based API, allowing for the access and manipulation of most project elements, including metadata, exporting and rendering options.

This document does not teach ExtendScript, ExtendScript Toolkit debugging, or other development techniques. It focuses on the Premiere Pro ExtendScript API and the execution context for scripts.

.. _example-code:

Example code
------------
The Adobe ExtendScript SDK, which contains this document, also contains a set of code samples that
demonstrate how to use features of ScriptUI, interapplication communication, and external
communication. This book refers to these samples by name for illustration of concepts and techniques.

You can download the SDK from Adobe Developer Center, http://www.adobe.com/devnet/scripting/.
The PProPanel example is available from the Adobe CEP GitHub repository: https://github.com/Adobe-CEP/Samples/tree/master/PProPanel.

The samples are located under the ExtendScript SDK root directory:

Expand All @@ -34,96 +24,10 @@ The samples are located under the ExtendScript SDK root directory:

Development and debugging tools
-------------------------------
For help in developing, debugging, and testing scripts, Adobe provides the ExtendScript Toolkit, an
interactive development and testing environment for ExtendScript, which is installed with all
JavaScript-enabled applications. For complete details, see Chapter 2, :ref:`the-extendscript-toolkit`.

ExtendScript also provides global objects that support development and debugging:

- A global debugging object, the Dollar ($) object.
- A reporting utility for ExtendScript elements, the ExtendScript reflection interface.

For complete details, see Chapter 8, :ref:`extendscript-tools-and-features`.


.. _cross-platform-file-system-access:

Cross-platform file-system access
---------------------------------
Adobe ExtendScript defines File and Folder classes that simplify cross-platform file-system access. These
classes are available to all applications that support a JavaScript interface.

For complete details, see Chapter 3, :ref:`file-system-access`.


.. _user-interface-development-tools:

User-interface development tools
--------------------------------
Adobe provides the ScriptUI module, which works with the ExtendScript JavaScript interpreter to provide
JavaScript scripts with the ability to create and interact with user interface elements. It provides an object
model for windows and user-interface control elements within an Adobe application. For complete details,
see Chapter 4, :ref:`user-interface-tools`.
In addition, ExtendScript provides:

- Global functions for localization of display strings; see :ref:`localizing-extendscript-strings`
- Global functions for displaying short messages in dialog boxes; see :ref:`user-notification-dialogs`.
- An object type for specifying measurement values together with their units; see :ref:`specifying-measurement-values`.


.. _interapplication-communication-and-messaging:

Interapplication communication and messaging
--------------------------------------------
ExtendScript provides a common scripting environment for all Adobe JavaScript-enabled applications,
and allows interapplication communication through scripts.
Different levels of communication are provided through the cross-DOM and the messaging framework.

- Cross-DOM functions are a limited set of basic functions common across all message-enabled applications, which allow your script to, for example, open or print files in other applications, simply by calling the open or print function for that application. In addition to the basic set of common functions, some applications provide more extensive sets of exported JavaScript functions to other applications.
- The interapplication messaging framework is an application programming interface (API) that allows
extensive control over communication between applications. The API allows you to send messages to
other applications and receive results, and to receive messages sent by other applications and return
results. Typically the data passed between applications are JavaScript scripts. However, the messaging
framework is extensible. It allows you to define different types of data to send between applications,
and to specify how they are handled.

For complete details, see Chapter 5, :ref:`interapplication-communication-with-scripts`.


.. _external-communication:

External communication
----------------------
ExtendScript offers tools for communicating with other computers or the internet using standard
protocols. The Socket object supports low-level TCP connections.

For complete details, see Chapter 6, :ref:`external-communication-tools`.


.. _external-shared-library-integration:

External shared-library integration
-----------------------------------
You can extend the JavaScript DOM for an application by writing a C or C++ shared library, compiling it for
the platform you are using, and loading it into JavaScript as an ExternalObject instance. A shared library
is implemented by a DLL in Windows, a bundle or framework in Mac OS, or a SharedObject in UNIX.

For complete details, see Chapter 7, :ref:`integrating-external-libraries`.


.. _additional-utilities-and-features:
The ExtendScript Toolkit (ESTK) remains the best (and only) ExtendScript debugger available.

Additional utilities and features
---------------------------------
ExtendScript provides these utilities and features:
http://www.adobe.com/products/extendscript-toolkit.html

- JavaScript language enhancements:
- Tools for combining scripts, such as a ``#include`` directive. See :ref:`preprocessor-directives`.
- Support for extending or overriding math and logical operator behavior on a class-by-class basis.
See :ref:`operator-overloading`.
ESTK can be used to execute stand-alone scripts in Premiere Pro, and debug ExtendScript invoked from within CEP panels.

For complete details, see Chapter 8, :ref:`extendscript-tools-and-features`.
- JavaScript compilation, through the ExtendScript Toolkit. See Chapter 2, :ref:`the-extendscript-toolkit`.
- XML integration: ExtendScript defines the XML object, which allows you to process XML with your
- JavaScript scripts. For complete details, see Chapter 9, :ref:`integrating-xml-into-javascript`.
- Scripting support for XMP metadata manipulation: XMPScript provides a JavaScript API for the Adobe
9 changes: 9 additions & 0 deletions 1 - Introduction/how-to-execute-scripts.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.. _how-to-execute-scripts:

How to Execute ExtendScript in Premiere Pro
===========================================

Executing scripts from within CEP panels is the recommended approach. It is also possible to invoke scripts from within ESTK, but that's not a user-friendly approach for most workflows. Also, with additional configuration work, it's possible to pass scripts to Premiere Pro on a command line. This is not recommended, as behavior varies across platforms, and preliminary configuration is necessary before such execution is enabled.

Stick with panels whenever possible.

29 changes: 3 additions & 26 deletions 1 - Introduction/index.rst
Original file line number Diff line number Diff line change
@@ -1,30 +1,7 @@
.. _introduction:

Introduction
============
Premiere Pro provides and ExtendScript-based API, allowing for broad control of the entire application. ExtendScript can access and manipulation of most project elements, including metadata, exporting and rendering options.

JavaScript is a platform-independent scripting language that you can use to control many features and
automate many tasks in Adobe® applications. Scripting is easier to learn and use than many other kinds of
programming, and provides a convenient way of automating repetitive tasks or extending applications to
provide additional tools for other users.
This reference is to serve as a public compendium of information about API usage.

- If you are new to scripting, see Adobe Creative Suite: Introduction to Scripting, which introduces basic
scripting concepts and describes different scripting languages that are available, including JavaScript.
JavaScript and other scripting languages are object-oriented, and this book also describes the basic
concepts of object-oriented programming and document object models.

- Each application that supports JavaScript also provides an application-specific Scripting Guide that
introduces the object model for that application, and reference material for the objects. This
document provides information about the JavaScript features, tools, and objects that are common to
all Adobe applications that support JavaScript.

- This document does not teach JavaScript. If you are familiar with scripting or programming in general,
but unfamiliar with JavaScript, see publicly available Web resources and documents, such as:

- The public JavaScript standards organization web site: www.ecma-international.org
- JavaScript: The Definitive Guide, David Flanagan, O'Reily Media Inc, 2002. ISBN 0-596-00048-0
- JavaScript Bible, Danny Goodman, Hungry Minds Inc, 2001. ISBN 0-7645-4718-6
- Adobe Scripting, Chandler McWilliams, Wiley Publishing, Inc., 2003. ISBN 0-7645-2455-0

.. note:: Check for updated versions of this document at Adobe Developer Center,
http://www.adobe.com/devnet/scripting.
[more to come]
51 changes: 0 additions & 51 deletions 1 - Introduction/scripting-for-specific-applications.rst

This file was deleted.

0 comments on commit 10498fb

Please sign in to comment.