• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

all rendered buttons (with onDraw) disappear after opening any inline modal window after effects

Community Beginner ,
Aug 23, 2023 Aug 23, 2023

Copy link to clipboard

Copied

I draw buttons using the onDraw method.
After rendering and running the script, I open any modal window after effects, for example, cmd+shift+s (save as) and all my interface rendered by the onDraw method disappears
and after restarting the script, an error occurs.

"Can not run a script while a modal dialog is waiting for response"

I do not understand what could be the problem to solve it.

I know the interface can be lost if a rendering error occurs. But it was not possible to catch the error using try catch(
I so understand it is the conflict of modal windows.

I tested on different operating systems on different versions of after effects

Simple Code

 

(function (thisObj) {
 var objWinPan=thisObj;
 {
  function myScript(){
   function myScript_buildUI(){
    var w = (objWinPan instanceof Panel) ? objWinPan : new Window ('palette',"ae",undefined,{resizeable:true});
    return run_scr(w)
    }
   var myScriptPal=myScript_buildUI(objWinPan);
   if (myScriptPal != null && !(myScriptPal instanceof Panel)){
    myScriptPal.center();
    myScriptPal.show();
   }
  }
 myScript(objWinPan);
 }
 function run_scr(w) {
  w.orientation="column";
  w.margins = 10;
  w.spacing=0;
  g=w.graphics;
  var myButtonGroup5=w.add("group");
  var patchMake =myButtonGroup5.add ("button");
  patchMake.preferredSize=[100,20]
  patchMake.onDraw=function(){
   app.beginSuppressDialogs()
   with(this){
    graphics.drawOSControl();
    sze=10;
    graphics.newPath();
    graphics.rectPath(4,1,size[0]-8,size[1]-2)
    graphics.fillPath(g.newBrush(g.BrushType.SOLID_COLOR,[255/255, 0/255, 0/255]));
   }
  app.endSuppressDialogs(alert) 
  }
  w.layout.layout(true);
  return w;
 }
})(this);

 

And I suppress all possible errors in rendering

TOPICS
Crash , Scripting

Views

71

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
no replies

Have something to add?

Join the conversation