Your prescription for increased productivity and profitability
All of the animations demonstrated in this blog series to date have been created by setting the animation settings for objects defined on a spread using a script. What has been purposely avoided is the mention that InDesign provides a number of animation presets that can be used to set animations manually or as part of a script.
For a script, animation presets are referenced within the application’s context. For AppleScript, the code would be written as follows:
tell application "Adobe InDesign CC 2014" set spinPreset to Motion Preset "Spin" end tell
To apply the animation preset to an object, you simply set the object’s preset property to the preset’s reference.
tell application "Adobe InDesign CC 2014" set spinPreset to Motion Preset "Spin" set selList to selection set item1 to item 1 of selList tell animation settings of item1 set preset to spinPreset end tell get properties of animation settings of item1 end tell
You can view the item’s animation setting properties in the Result panel of AppleScript’s editor when you run the above script with the page item selected.
As you can see in the screen capture above, the Spin Motion Preset sets the item’s rotation array to {{0,0.0}, {23, 360.0}} with all other animation settings given default values.
Create an InDesign document for web intent measuring 800 by 600 pixels. On the first page, create a colorful page item. With the item selected, run the script above. When you view the animation in the EPUB Interactivity Preview panel, the animation will begin as soon as you click the Play preview button. This is the default behavior as the timing list setting for the spread’s timing settings is set to On Page Load.
If the timing settings for the spread had been set to On Page Click, only those animations that are part of its timing groups would be animated.
To see this behavior, add the following just before the final end tell statement in the Animate With Preset script above.
--Create On Page Click behavior set spreadRef to spread 1 of document 1 tell timing settings of spreadRef delete timing list 1 set pageClickList to make timing list with properties {trigger event:on page click} end tell
With the page item selected, run the script and preview the animation in the EPUB Interactivity Preview panel (option+shift+return).
When you run the script with the code above added, the EPUB Interactivity Preview shows that the animation does not activate even when the page is clicked. To have the animation for the page item trigger when the page is clicked, you need to add the page item to a timing group that is part of pageClickList
.
Add the following after the code added in the step above.
tell pageClickList set pageClickGroup to make timing group with properties {dynamic target: item1, delay seconds:0} end tell
Now when you run the script with the page item selected, the animation triggers when previewed in the EPUB Interactivity Preview panel.
To add more interactivity to a spread, you can set page items to activate when the item itself is clicked. For this, a timing list is created for the page item’s timing settings property. The trigger event for this is on self click.
To test this out, add a second page item to the page. Modify your script above to read as follows:
tell application "Adobe InDesign CC 2014" set spinPreset to Motion Preset "Spin" set dancePreset to Motion Preset "Dance" set selList to selection set item1 to item 1 of selList set item2 to item 2 of selList tell animation settings of item1 set preset to spinPreset end tell tell animation settings of item2 set preset to dancePreset end tell --Create On Page Click behavior set spreadRef to spread 1 of document 1 tell timing settings of spreadRef delete timing list 1 set pageClickList to make timing list with properties {trigger event:on page click} end tell tell pageClickList set pageClickGroup to make timing group with properties {dynamic target:item1, delay seconds:0} end tell --Create On Self Click behavior tell timing settings of item2 set item2List to make timing list with properties {trigger event:on self click} end tell end tell
Alternatively, you can set the trigger event for a page item to on self rollover.
Modify the code above to add a third item to your page and set its animation to the Grow Animation Preset. Set the trigger event of its timing settings to on self rollover.
Experiment with other page items and animation presets.To see a list of all of the animation presets available, choose Interactive from InDesign’s Window menu. In the flyout menu, select Animation. From the Animation Panels menu, select Manage Presets.
Of course you can have a timing list that triggers when the page is loaded and one that triggers when the page is clicked. This way, you can have page items that animate as needed: when the page is loaded, when the page is clicked, and when a page item itself is clicked.
As handy as animation presets are, when it comes to more complex animations, you have ultimate power at your bidding simply because you can write a simple script to do what you want to happen when you want it to happen. But then, when you can use an animation preset to your advantage, by all means, add its capability to your script.
Next time: Working With Buttons.