Hi,
The UV triggers events that can be listened for in the containing page.
If you check out examples.js:
this shows the events you can listen for with jQuery (sounds like you've found uv.onCanvasIndexChanged).
I think adding a 'uv.onSettingsChanged' event would make a lot of sense, which would pass a settings object containing the current paging mode.
When a single instance of the UV is hosted on a site it can access hash parameters in the containing page's url:
You can use the 'cv' param to 'deep link' to a particular canvas index. Although it sounds like you want to programmatically alter the current canvas index using easyXDM's postMessage().
An example of this is the lightbox feature:
This is triggering the full screen event so the UV opens in full screen mode:
Here's a list of all the UV base 'commands':
You'd want to be able to do something like:
uv.triggerSocket('uv.onCanvasIndexChanged', 23);
Unfortunately there isn't currently a way to do that. embed.js just looks at all divs on a page with the class '.uv' and bootstraps a UV instance for each. It's designed to not "pollute" the global namespace.
I think perhaps a new 'uv.js' script is needed that allows you to do things like this:
var myUV = new UV('#myDiv');
myUV.doSomething()
This is a different use case to embedding the UV using the generated embed code and would permit more interesting interactions.
There is a definite need for this - I'll create an issue on github. I'll also create an issue for the onSettingsChanged event.