After Effects / 脚本预设

InfinityBox开发日志01

InfinityBox是我正在开发的一个综合性工具型脚本,预计最初版本有两个功能。


  • 打开的文件记得使用 FileObj.close() 关闭。
  • 在创建含有可浮动面板的脚本(在ScriptUI Panel文件夹内的脚本)时,和直接执行的脚本在使用ScriptUI对象上有一些差异,这种差异有时候是莫名其妙的,只能是不断试验来了解。之前有个文章说了,在创建可浮动面板时,Ae似乎直接就提供了一个默认的窗口来作为可浮动面板的窗口,直接体现就是必须在创建窗口时使用 var win = (this instanceof Panel) ? this : new Window("window"); ,否则UI控件不会显示或不显示在可浮动面板中,而是像直接执行的脚本那样单独出现一个窗口。
  • 要想在可浮动面板的脚本中使用资源字符串创建窗口时,控件的资源字符串必须在一个 Group {} 内,这个Group就代表着这个窗口,你可以在这个Group后添加任何想对窗口添加的参数,不过好像 preferredSize 不能用。举例:
  • 上面的资源字符串在添加时要赋予给一个变量,然后使用那个变量来调用其中的控件。举例:
  • 在使用图片数据化时,不能在资源字符串中添加变量,所以图片属性必须在外部单独设置,而且不需要添加new File()来创建匿名实例。
    • win.grp.gStart.smile.image = imgDate.files["smile.png"];
  • 必须使用 win.layout.layout(true); 这个代码,否则UI控件不会显示,原因未知。这个代码的意思是强制脚本布局一次。
  • win.onResizing = function() { win.layout.resize(); }; 添加这个代码可以实现响应式布局。
  • UIObj.visible的布尔属性值可以控制UI控件或容器的可见和不可见,但是即使在不可见状态下,它们的位置还是会空出来。那么怎样才能实现隐藏并不占位置呢?我测试了下 hide() 方法,效果还是会占据原有位置。以后在用到的时候再研究吧。
打赏

Leave a Reply

Your email address will not be published. Required fields are marked *