但是帮助中只是说明构造创建对象的语法,但并没有专门的内容来说明构造器这个概念。我把它归纳如下:在MAXScript中创建对象的语法就叫作构造器,其实质就是调用函数来创建对象,所以可以把它看作是一个函数调用 。也可以说是用一个抽象的类产生一个具体的对象。这个函数的名称就是基类的名称,所谓基类就是不能再分的类。我们创建对象都是从基类开始的。Box就是个基类,它的上一级就是几何类,再上一级就是节点。如果学过JAVA,那么知道创建一个box对象的语法是:Box Box01=new box() ;?呵呵,学习MAXScript可舒服了,只需输入box()就可以构造一个box了,面且大小写,分号都可以不用注意。当我们手工单击创建面板中的Box按钮,然后在视窗中完成一个长度为100、宽度为100、高度为2的Box时,在程序内部就调用了Box( )函数,就是把我们在界面中的操作转换成了box length:100 width:100 height:2 这行内部代码。构造器由两部分组成,基类名和创建参数。整个构造器就是一个函数调用 ,函数名 box就是基类的名字。创建参数由参数名后跟一个 冒号 : 和参数值组成,如图2-2所示。
图2-2如果调用函数没有输入任何参数,那么必须在类名后加上一对英文 ( )括号,例如box(),将创建缺省参数的盒子。知道构造器原理后就知道怎么创建其它的对象了, 例如创建球体,输入sphere radius:10 就可以了。注:由于对象和类、层级关系等详细概念的内容比较复杂,将另立一文讲述。请看>>2、改变对象创建了盒子和球体对象之后,我们想知道刚才的长度、宽度等参数是否正确,应该怎么办呢?那就要访问对象的属性。诸如长度、宽度、名字、线框颜色半径等等对象所具有的特性统统称为对象的属性(Properties)。访问对象属性的语法是由对象的路径名(PathName)后跟小数点.和属性名组成,路径名由美元符号$后跟对象在场景中的名称组成,$表示当前场景。例如访问box01的长度,输入 $Box01.length ,在脚本跟踪器窗口中返回100.0,访问Sphere01的半径,输入 $Sphere01.radius 返回 10.0 。改变Sphere01的线框颜色,输入 $sphere01.wirecolor=blue 或者输入:$sphere01.wirecolor= (color 0 0 255) 都一样。
?那么要改变属性呢?只需给这些属性赋值, 输入$Box01.length=20,box01的长度变成20。我们以前数学里的等号在MAXScript中只能当作赋值符号用了。值的数据类型有几种,现在简单介绍几个典型的不同数据类型,它们是数字,字符串,数组。?数字:MAXScript区分两个数目类型:integers(整型)和floats(浮点型)。整型就是整数,例如0、1、802。浮点型就是小数,如期而至0.2、25.02、0.68。当MAXScript执行数字操作时返回和运算参数相同的类型。例如4+5返回9、而4.0+5.0返回9.0。字符串:字符串是一个常量,需用引号标识。输入"Hello",MAXScript返回"Hello"。如果输入时没有加引号则返回undefined未定义。改变Sphere01的名字,输入$Sphere01.name="球体01",现在打开修改器面板 ,可以看到如图2-3所示的样子。图2-3再把名字改回来,输入:$球体01.name="sphere01"注意双引号不能忘掉输入。数组:数组是一些有序的元素的集合。每个元素可以是任何类型的值,并且所有的元素都可以单独的访问。