窗口打开后执行MEL命令

时间:2014-08-06 13:20:02

标签: user-interface maya mel

我正在写一个MEL脚本,其中包括打开油脂笔UI工具栏。我想删除该工具栏上的关闭按钮。我试着做了

GreasePencilTool;
window -edit -tbm 0 greasePencilFloatingWindow;

但获得Error: line 2: window: Object 'greasePencilFloatingWindow' not found.

进一步测试显示正在运行

GreasePencilTool;
window -q -exists greasePencilFloatingWindow;

将返回0的结果。

在不同时间运行GreasePencilTool;然后window -edit -tbm 0 greasePencilFloatingWindow;按预期工作,就像工具栏已经打开时运行window -edit -tbm 0 greasePencilFloatingWindow;一样。

但是,我需要能够在工具栏打开时立即删除关闭按钮。

我能想到的最接近的事情说明了我想要做的是Javascript回调函数,其中一旦当前函数完成后可以执行另一个函数......但是有没有办法在MEL中执行类似的操作?

我还尝试使用evalDeferred命令但没有成功。

1 个答案:

答案 0 :(得分:0)

油脂笔工具以异步方式启动,因此窗口将在一段未知的时间内不存在。这意味着您可以做的最好的事情就是触发一个定期检查的函数,并在下次找到正确命名的窗口时执行此操作;你可以将它附加到空闲时间脚本作业。

这太丑了。但它可能是唯一的方法,因为没有事件会在窗口到达时通知。如果你那样做,那么在剧本开始后让脚本工作自杀,这样它就不会在每次空闲支票上都坐在那里直到时间结束。