先说一下newRolloutFloater
这个对(fang)象(fa)(额。。。。max官方说这个是user interface(用户接口),我也不知道翻译过来如何表述,本着万物皆对象的理念吧,学习max脚本还是不要用面向对象编程的思维来理解吧,准确来说ms属于函数式编程,非常弱类型的语言)给用户提供的是挂在多个Rollout的承载。
举个?
MainFloater = newRolloutFloater "ExpressionMirror V2.0" 180 320
我自己创建了一个MainFloater的一个newRolloutFloater对象,它给Rollout不太一样的地方是,他不需要CreateDialog就可以直接创建出面板。newRolloutFloater 的第一个参数是floater显示的label,
后面的参数一次是<宽> <高> 【<窗口左上角位置X>】 【<窗口左上角位置Y>】,简单说就是个Rect而已。
当然参数可以按照规则缺省.
Ctrl+E运行一下
然后我又不小心运行了一下,赫,又㕛叒叕弹出了一个,可能某些脚本会需要弹出多个相同的界面。。。但是我自己不喜欢。于是就要干掉这个问题(注意:MS里变量声明极其灵活)
生成窗体之前,我判断一下MainFloater是不是空不就行了,不是空我就干掉它,然后在生成个新的。
--是的我是注释,ms里有--(两个-)做注释
if MainFloater!=udefined do
(
closerolloutfloater MainFloater
)
MainFloater = newRolloutFloater "ExpressionMirror V2.0" 180 320
下面就略写了
我需要给MainFloater上添加Rollout了
那么我首先要创建一些Rollout
--是的我是注释,ms里有--(两个-)做注释
rollout MirrorRollout "Vertex Mirror" width:170 height:250
()
rollout VertexCopyPasteRollout "Vertex Copy Paste" width:170 height:250
()
rollout HelpInfosRollout "Help Infos" width:170 height:250
()
rollout CopyrightRollout "Copyright" width:170 height:250
(
label 'lbl' "写到这样,突然发现自己的简写C.P.,还可以这么理解 Copy Paste,简直说出来真相" pos:[4,6] width:164 height:116
)
addRollout MirrorRollout MainFloater rolledUp:true
addRollout VertexCopyPasteRollout MainFloater rolledUp:true
addRollout CopyrightRollout MainFloater
addRollout HelpInfosRollout MainFloater rolledUp:true
运行一下的结果是
待续《MS-UI篇2-2》