Hi Mel,
If the animated icon is independent from other ActivePresenter objects, you should embed it into a Web Object as mentioned in this thread Easy way to insert Lottie animation - #2 by Hang
Otherwise (e.g. in case you want to click the animated icon to show/hide another object), you should do the following steps to embed the animated icon directly into a shape:
- Add script to load Lottie library in Project > Properties > On Load event
if (!window.bodymovin) { var lottieUrl = 'https://cdnjs.cloudflare.com/ajax/libs/bodymovin/5.11.0/lottie.min.js'; var script = document.createElement("script"); script.type = 'text/javascript'; script.src = lottieUrl; document.head.appendChild(script); prez.loadLottieAnimation = function(loadAnimFunc) { if (window.bodymovin) loadAnimFunc(); else script.addEventListener('load', loadAnimFunc, false); }; } - Add a shape to the slide, the lottie animation will be loaded into this shape in step 3. You can make this shape transparent by settings its fill color opacity to 0
- Add script to load Lottie animation in the slide On Load event
// load Lottie animation into 'lottie' shape var jsonAnim = {}; // replace {} by your JSON animation data var animAPObject = prez.object('lottie'); // update the shape name prez.loadLottieAnimation(function() { var animLottieObject = bodymovin.loadAnimation({ container: animAPObject.node, renderer: 'svg', loop: false, autoplay: false, animationData: jsonAnim // or path: path to JSON file }); // play animation on rollover/ rollout var direction = 1; animAPObject.on('ap-rollover', function() { animLottieObject.setDirection(direction); animLottieObject.play(); }); animAPObject.on('ap-rollout', function() { animLottieObject.setDirection(-direction); animLottieObject.play(); }); });
Sample project
Lottie.approj (300 KB)
Regards