可以读取和编辑其他人在“脚本编辑器”(Script Editor)中创建的脚本文件。在本节中,您将打开一个脚本,该脚本包含 makeRoll 程序的已完成用户界面。但是,该用户界面仅包括一个布局,并不含任何功能。
准备打开脚本
在“脚本编辑器”(Script Editor)中,请确保“命令 > 显示行号”(Command > Show Line Numbers)处于选中状态。
“显示行号”(Show Line Numbers)处于启用状态时,将在“脚本编辑器”(Script Editor)中的命令旁显示行号。有时,课程将提及行号以告知待修改脚本的位置。如果课程中提及行号,则行号将始终为原始脚本的行号。
通过选择“命令 > 新建选项卡”(Command > New Tab),在“脚本编辑器”(Script Editor)中创建新选项卡。
弹出窗口将询问您执行该选项卡中输入命令所用的语言。
单击弹出窗口上的“MEL”按钮。
已在“脚本编辑器”(Script Editor)中创建了第二个 MEL 选项卡。
选择“命令 > 重命名选项卡”。
输入 MEL2。
选项卡已重命名。
在接下来的步骤中,将把用户界面脚本加载到这两个 MEL 选项卡中。MEL 选项卡将包含原始脚本,MEL2 选项卡将包含带有修改的用户界面脚本。这样,即可从原始脚本提及行号,以告知进行修改的位置。
在“脚本编辑器”(Script Editor)中打开脚本文件
选择 MEL 选项卡。
在“脚本编辑器”(Script Editor)中,选择“文件 > 加载脚本”(File > Load Script)。
选择名为 mel_Lesson_4_start.mel 的 MEL 脚本。
可以在设定为 Maya 项目的 GettingStarted2014LessonDataMEL 目录中找到该文件。
MEL 文件的内容将显示在“脚本编辑器”(Script Editor)中。
重复上述步骤,将相同的 MEL 脚本加载到 MEL2 选项卡中。
在 MEL 选项卡中,从“脚本编辑器”(Script Editor)菜单栏中选择“编辑 > 全选”(Edit > Select All)以亮显脚本。
按 Ctrl+E 执行脚本。
已为 makeRoll 程序创建用户界面。makeRoll 程序中的每个参数都在用户界面中存在一个相应的控件。
(尽管该窗口本身不进行任何操作,但因为要利用该窗口执行一些测试,所以可将其保持在打开状态。)
讨论:脚本的作用
用户界面中的控件是使用各种命令进行创建的。如下,
脚本已分为多个分段,以便描述各用户界面控件及其标志。下面只是简要地介绍一下在前面的课程中使用的用户界面控件和命令。
条件语句
if(`window -exists makeRoll_Window`) { deleteUI makeRoll_Window; }
条件语句将检查是否存在具有指定名称的窗口。如果存在窗口,则该命令会将其删除。
窗口命令
window -resizeToFitChildren 1 makeRoll_Window;
window 命令将创建一个用户界面窗口,以包括控件。有关详细信息,请参见创建窗口。
列布局
columnLayout;
columnLayout 命令将创建一个布局,以便在列中对布局中的控件进行排列。有关详细信息,请参见引用控件。
文本字段命令
string $obj_name_text = `textField -editable 0 -width 400 -text "name_Of_Object"`;
textField 命令将创建一个可编辑的文本字段。文本字段命令具有多个标志。文本字段的名称和路径将作为变量进行存储。请参见存储控件名称。
editable 标志将启用或禁用文本字段的编辑。
width 标志将设定控件的宽度。
text 标志将设定文本字段的内容。
滑块命令
string $ground_int= `intSliderGrp -minValue -20 -maxValue 20 -fieldMinValue -20 -fieldMaxValue 20 -field 1 -label "Ground Plane"`; string $diameter_float= `floatSliderGrp -value 1.0 -minValue 1.0 -fieldMinValue 1.0 -field 1 -label "Diameter"`;
intSliderGrp 和 floatSliderGrp 命令将创建滑块。以 Grp 作为结束的命令将创建一组链接的控件。滑块命令将为标签、值框和滑块创建控件。滑块命令具有多个标志。滑块的名称和路径将作为变量进行存储。请参见存储控件名称。
editable 标志可用于启用或禁用文本字段的编辑。
minValue 和 maxValue 标志将设定滑块的最小值和最大值。
field 标志将启用滑块旁可编辑值字段的可见性。默认情况下,该字段不可见。
fieldMaxValue 和 fieldMinValue 标志将设定滑块旁字段的最小值和最大值。
label 标志将设定显示在滑块左侧的文本。
分隔符命令
separator -height 20 -width 120;
separator 命令将创建一条水平线。用于垂直间隔窗口中的控件。分隔符命令具有多个标志。
width 标志将设定分隔符的可见宽度。
height 标志将设定分隔符创建的垂直间隔量。
复选框命令
string $box_sim_checkbox = `checkBox -value 1 -label "Box Simulation"`; string $sphere_sim_checkbox = `checkBox -value 0 -label "Sphere Simulation"`; separator -height 20 -width 120; button -label "Execute!" -command "print ("something");";
checkBox 命令将创建一个复选框。复选框命令具有多个标志。复选框的名称和路径将作为变量进行存储。请参见存储控件名称。
value 标志将设定复选框的初始值。
ShowWindow 命令
showWindow;
该命令将启用最后创建窗口的可见性。有关详细信息,请参见创建窗口。
注意
在上述脚本中,并未明确地声明变量。这是因为已经知道用户界面创建命令的返回类型为字符串,不可能是其他任何数据类型。在后面的课程中,允许在不知道返回数据类型时暗示数据类型。
,