Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

261
Views
How to change a publish template html to use a function that's within $ANIMATE_CC_SCRIPTS token?

Awhile ago I found a little bug when the html5 was added to the iOS home screen. With the web app open, during screen orientation changes, the canvas doesn't scale properly.

It's because Animate's resizeCanvas code fires too fast. So I added a setTimeout inside resizeCanvas to delay it slightly:



I've been editing my html files after every export. But it's time I make a custom publish template. I'm hitting a snag at trying to make the code work though.

In the default template html, the resizeCanvas function is within Animate's javascript $ANIMATE_CC_SCRIPTS token/variable:



In my custom publish template, I added a script after the $ANIMATE_CC_SCRIPTS token. It doesn't work:

// Added below $ANIMATE_CC_SCRIPTS in the template html
<script>
    window.addEventListener('resize', delayedResizeCanvas);
    function delayedResizeCanvas() {
        setTimeout(function(){
            resizeCanvas();
        }, 100);
    }
</script>

The only way the code seems to work, is when I add setTimeout inside the resizeCanvas. I can only do that after I export.

I tried to look in Animate's folders where the template javascript tokens/variables are kept. I thought I'd copy a duplicate and renamed it to $ANIMATE_CC_SCRIPTS_2 so that I don't mess up the default one. Can't find them though.

Is there a way to make the setTimeout code work outside of resizeCanvas?
Or to edit the javascript $ANIMATE_CC_SCRIPTS token/variable?


Update: Thanks to Muhammed Maruf, adding a setTimeout to the AdobeAn.makeResponsive function works. I can just add this script to my custom publish template, and won't need to edit any exported html files.

<script>
    window.addEventListener('resize', delayedResizeCanvas);
    function delayedResizeCanvas() {
        setTimeout(function(){
            AdobeAn.makeResponsive(true,'both',true,1,[canvas,anim_container,dom_overlay_container]);
        }, 100);
    }
</script>

Update 2: It seems that this method only works for a single frame. For movie projects where the timeline plays across multiple frames, it fires once or twice, then the canvas won't rescale anymore.

Adding a setTimeout within resizeCanvas makes the canvas scale consistently, but I'll just have to edit the html file manually after every export.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

This seems almost impossible to do, but I found something else to solve your problem. In the .html page there is a function called "AdobeAn.makeResponsive". You can call it in a frame you need in the program as it is called there. For example, when it came to the 5th frame, I called it like this;

AdobeAn.makeResponsive(false,'both',false,1,[canvas,anim_container,dom_overlay_container]); 
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!