Twixl Publisherプラグインのスクリプト

こちらの記事はAdobeのExtendScript言語に馴染みがある方向けです。

InDesign ExtendScript Labels

Twixl Publisherプラグインがインタラクティブなプロパティを格納する方法は異なるエレメントにラベルを付けます。

Every object in Adobe InDesign内ですべてのオブジェクトはExtendScriptの機能によって一つ以上のラベルを与えることができます:
object.insertLabel(key, value)

ラベルを取得するには、特定のキーを使用してextractLabel機能を使用できます:
object.extractLabel(key)

プロパティの付加

インタラクティブエレメントの種類によりプロパティを付加できるInDesignエレメントの種類の概要です。

- スライドショー: MultiStateObject

- WEBビューア: Rectangle

- WEBオーバーレイ: Rectangle, TextFrame, PageItem

- スクロールコンテンツ: 子エレメントとしてひとつのPageItemをもったRectangle

- フルスクリーン画像: Graphic

- ムービー: Movie

- サウンド: Sound

- 画像シーケンス: Rectangle

- パノラマ: Rectangle

Twixl Publisherインタラクティブエレメントキー

Every type of Twixl Publisherインタラクティブエレメントのどんなタイプもプロパティが保存されている裏でプロパティ独自のキーを保持しています。以下が概要です:

- スライドショー
com.rovingbird.epublisher.mso

- WEBビューア
com.rovingbird.epublisher.wv

- WEBオーバーレイ
com.rovingbird.epublisher.wo

- スクロールコンテンツ
com.rovingbird.epublisher.sc

- フルスクロール画像
com.rovingbird.epublisher.image

- ムービー
com.rovingbird.epublisher.movie

- サウンド
com.rovingbird.epublisher.sound

- 画像シーケンス
com.rovingbird.imagesequence

- パノラマ
com.rovingbird.epublisher.panorama

JSON

これらのキーの下で、すべてのプロパティはJSONデータ構造内に保存されています。JSON(http://www.json.org)はkey/value構造を格納するのを非常に簡単にするテキストベースのフォーマットです。

var myProperties = {
key1: "value",
key2: "value",
key3: "value"
};
var myJsonString = JSON.stringify(myProperties);
myObject.insertLabel("com.rovingbird.epublisher.mso", myJsonString);

後でそれを取得するには、次のコードを使用することができます:

var myLabel = myObject.extractLabel("com.rovingbird.epublisher.mso");
var myProperties = JSON.parse(myLabel);

プロパティの概要

スライドショー用に利用できるプロパティは以下です:

{
'msoShowScrollViewIndicator': false,
'msoAllowUserInteraction': false,
'msoShowScrollbars': false,
'msoAllowFullScreen': false,
'msoScrollViewIndicatorOpacity': 50,
'msoScrollViewIndicatorBackgroundColor': '000000',
'msoScrollViewIndicatorActiveColor': 'FFFFFF',
'msoScrollViewIndicatorInactiveColor': 'AAAAAA',
'msoFileFormat': 'PNG',
'msoFileFormatIdx': 0,
'msoFileFormatDesc': '',
'msoTransitionStyle': 'Push',
'msoTransitionStyleIdx': 0,
'msoAllowAutoPlay': false,
'msoInterval': 0,
'msoDelay': 0,
'msoTapPlayPause': false,
'msoAllowLoop': false,
}

WEBビューア用のプロパティは以下です:

{
'wvUrl': '',
'wvAllowUserInteraction': false,
'wvTransparent': false,
'wvScaleToFit': false,
'wvShowScrollbars': false,
'wvOpenLinksInline': true,
'wvShowLoadingIndicator': false,
}

WEBオーバーレイ用のプロパティは以下です:

{
'woUrl': '',
'woAllowUserInteraction': false,
'woWidth': '',
'woHeight': '',
'woShowScrollbars': false,
'woShowLoadingIndicator': false,
'woBackgroundColor': '000000',
'woBackgroundOpacity': 50,
'woAnalyticsName': '',
'woScaleToFit': false,
}

スクロールコンテンツ用のプロパティは以下です:

{
'scAllowScrolling': false,
'scShowScrollbars': true,
'scEnablePaging': false,
'scEnableZooming': false,
}

ムービー用のプロパティは以下です:

{
'movieAutoStart': false,
'movieShowController': false,
'movieLoop': false,
'movieShowFullScreen': false,
'movieReturnToPosterFrame': false,
'movieAnalyticsName': '',
}

サウンド用のプロパティは以下です:

{
'soundAutoStart': false,
'soundLoop': false,
'soundAnalyticsName': '',
}

フルスクリーン画像用のプロパティは以下です:

{
'imageAllowFullScreen': false,
'imageAnalyticsName': '',
}

画像シーケンス用のプロパティは以下です:

{
'isqFolder': '',
'isqReverse': false,
'isqAnalyticsName': '',
}

パノラマ用のプロパティは以下です:

{
'panoramaFolder': '',
'panoramaFovStart': 70,
'panoramaFovMin': 5,
'panoramaFovMax': 120,
'panoramaPanMin': 0,
'panoramaPanMax': 360,
'panoramaPanStart': 0,
'panoramaTiltMin': -90,
'panoramaTiltMax': 90,
'panoramaTiltStart': 0,
}