Quantcast
Channel: Adobe Community : Discussion List - After Effects Scripting
Viewing all articles
Browse latest Browse all 2143

Updating a progressBar in a scriptUI panel

$
0
0

I have an After Effects script with a ProgressBar. If I run this script by clicking File >> Scripts >> Run Script File then the progress bar works fine. However, if I run this script by copying it to this folder:

 

C:\Program Files\Adobe\Adobe After Effects CC 2018\Support Files\Scripts\ScriptUI Panels

 

and then running it by clicking Window >> MyCoolScript then the line panel.update() crashes. The main difference between both ways of running the script is whether the main thing is a panel or a window, so I suppose this is related to the issue? The easy solution is to not panel.update(), but then the progress bar doesn't actually update visually while running the script.

 

So, my question is: how do I make a progress bar show its progress in a scriptUI panel?

 

Here's a simple script that shows the problem in action:

 

function doExport(panel)

{

     if (panel != undefined && panel != null)

     {

          panel.grp.exportProgressbar.value = 10;

          panel.grp.exportProgressbar.show();

          panel.update();

          panel.grp.exportButton.text = "banana";

     }

}

 

{

     function createPanel(thisObj)

     {

          function buildUI(thisObj)

          {

               var panel = (thisObj instanceof Panel) ? thisObj : new Window("palette", "bla", undefined, {resizeable:true});

               res = "group\

               {\

                    orientation:'row',\

                    exportButton: Button {text:'Export'},\

                    exportProgressbar: Progressbar {text:'busy'},\

               }";

               panel.grp = panel.add(res);

               panel.grp.exportProgressbar.maxValue = 100;

               panel.grp.exportProgressbar.hide();

               panel.grp.exportButton.onClick = function() { doExport(panel); }

               panel.layout.layout(true);

               return panel;

          }   

 

          var panel = buildUI(thisObj);

          if (panel != null && panel instanceof Window)

          {

               panel.center();

               panel.show();

          }

     }

     createPanel(this);

}


Viewing all articles
Browse latest Browse all 2143

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>