How do you get Saola and ActivePresenter 9 to communicate (tutorial)?

How do you get Saola Animate and ActivePresenter to communicate with eachother? I can see that there are External Script Resources for Saola. Is there a tutorial somewhere to show how your 2 products talk by using them? thanks.

To clarify, you can place a Saola into a WebObject of ActivePresenter. It would be nice if you can press a button on the Saola, and have it called within ActivePresenter. You have very good products, which I am evaluating. I’d like to know the JS calls for each (Active presenter to WO/Saola, and Soalo back to ActivePresenter). Thanks.

Hi Richard,

To communicate with Saola Animate document from outside, call its APIs or user-defined functions through the global object AtomiSaola as mentioned in this answer: Access Saola Animate from outside - #2 by ToanLS
It’s similar for ActivePresenter, but its global object is AtomiAP, and its APIs are different from Saola Animate’s. You can find ActivePresener APIs in the user manual > Adding Interactivity > Custom JavaScript in HTML5 Output section.

You can use a Web Object in ActivePresenter to embed a Saola Animate animation, and use a HTML Widget in Saola Animate to embed an ActivePresenter presentation.

  • When embedding a Saola Animate animation into ActivePresener
      // iframe in which Saola Animate document is embedded
      var iframeNode = prez.object('Web Object name').frameNode;
      // window object of the iframe content
      var SaolaWindow = iframeNode.contentWindow;
      // Saola Animate document object
      var SaolaDoc = SaolaWindow.AtomiSaola.topDocs[0];
      // control Saola Animate document by calling its functions, e.g.:
      SaolaDoc.pause();
    
    • To get ActivePresenter presentation object from Saola Animate:
      // window object of the parent content (ActivePresenter)
      var APWindow= window.parent;
      // ActivePresenter presentation object
      var APPrez = APWindow.AtomiAP.presentations[0];
      // control ActivePresenter presentation by calling its functions, e.g.:
      APPrez.nextSlide();
    
  • When embedding an ActivePresenter presentation into Saola Animate
    • To get ActivePresenter presentation object from Saola Animate:
      // iframe in which ActivePresenter document is embedded
      var iframeNode = doc.getElement('your HTML Widget name').embeddedDom;
      // window object of the iframe content
      var APWindow = iframeNode.contentWindow;
      // ActivePresenter presentation object
      var APPrez = APWindow..AtomiAP.presentations[0];
      // control ActivePresenter presentation by calling its functions, e.g.:
      APPrez.nextSlide();
    
    • To get Saola Animate document object from ActivePresenter:
      // window object of the parent content (Saola Animate)
      var SaolaWindow= window.parent;
      // Saola Animate document object
      var SaolaDoc = SaolaWindow.AtomiSaola.topDocs[0];
      // control Saola Animate document by calling its functions, e.g.:
      SaolaDoc.pause();
    

Regards

1 Like

Thank you so much for all of this! I appreciate the detailed explanation. :grinning:

1 Like