目录 其他材料 |
缓存参考对象 前面的教程中我们已经讲解了如何使用拾取线来建立简单的表达式,有时候你不想也不能通过这种方式来建立表达式。例如,你不可以将拾取线拖动到屏幕中不可见的参数上(图层宽度或者是持续时间等)。 在这种情况下,你就需要建立一个缓存参考对象,这要比使用拾取线复杂的多,因为你需要理解一些Javascript的语法,刚接触到这种方法时也许会感到很困难,一旦我们理解了一些术语后,我们就会感受到建立参考对象的方便之处。 简单的说对象就是一个容器,每一个对象都可以包含其他的对象、属性和方法。 例如,AE中的一个合成就是一类物体,每一个合成中都可以包含有其他的对象,像图层或者诸如持续时间和宽度等属性(我们在后面讨论)AE中的所有元素对于我们来说都是很熟悉的——合成、图层、不透明度等等,他们或者属于对象或者属于对象包含的物体。 因为对象可以包含其他的对象,所以说对象存在层级结构,位于最高层级上面的对象叫做全局对象。 要标识需要从中提取数据的属性,必须首先标定一个全局对象。 全局对象在AE的表达式中不需要作出任何的特定说明具有唯一的指向作用,其他的对象均隶属于全局对象也就是所说的非全局对象,要想指 向特定的非全局对象,必须首先在其前面加上所在的全局对象名称。 还没有理解,没关系,我们用街道地址来做一个比喻,如果要邮寄一封信件,仅将收信人地址写成92号的话邮递服务部门就会十分迷茫,因 为在全国可能有数十万个92号的门牌,而你所说的究竟是哪一个呢?所以说你至少要在地址前面加上省份、城市、地区和街道,如果你在海 外还需要注明国家,至于国家的上一级就没什么说明的意义了——任何国家均在地球上是人人皆知的,那么国家就是全局对象。 因此,在AE中,在任何制作前你需要建立一个全局对象,就像你需要在信封上面注明收信人所在国家的地址一样。AE中的全局对象包括:
确定了全局对象后,我们就需要设置属于该对象的次级物体、属性或者是方法,但是你又怎么知道你所选择的属性或者是方法什么意思呢? 要查阅相关信息单击这里, 也可以参见AE用户手册中的表达式部分来进行参考设置。 首先你需要明确对象的类型,例如,"this_comp"就会返回合成对象,然后你就可以在参考表格或用户手册中查找该类对象所包含的属性、方法或者是次级物体。在下面的例子中,我们可以看到在合成对象中可以包含图层对象还有图层宽度或持续时间等属性。(还有很多其他属性). 所以,设置完全局对象后,我们可以在当前合成中选择一个特殊图层: this_comp.layer("Solid 1") 该表达式返回当前合成中叫做“solid1”的图层,如果我们仅仅需要一个图层次级对象,那么到此就可以结束了,如果我们还需要该图层的属性或者是事件就需要在该语句后面加上相应的参数。 让我们再来看一下语句的书写方式,javascript语法规定全局对象与次级对象之间必须以点号分割,以说明物体之间的层次关系。 另外,在整条语句中,除了引号中间图层名称之间可以加入空格外,期于地方不允许出现空格。. 既然我们已经确定了图层次级对象,再来加上图层的方法属性,例如: this_comp.layer("Solid 1").opacity 在这个语句中,电号再次起到分割次级对象与属性的作用。 如果你仍然感到这个语法十分麻烦,那么你还可以使用拾取线来帮助你,在表达式区域使用鼠标选中需要物体参数参考连接的部分使其高显示,亮然后拖动鼠标到需要建立连接的参数上,AE将自动插入正确的对象参考连接,你也可以拖动拾取线到其他的窗口上面,甚至包括项目窗口。 除了我们前面列出的属性外,图层还包括下面的属性和方法:
这个表格不是十分详细要参看详细的表格单击这里 也可以查阅AE的用户手册. 这里的表格仅仅证实图层的属性可以返回给不同对象, 甚至包括其他合成. 例如你可以建立下面的表达式: this_comp.layer("Nested Comp").source.layer("Solid 1").position |
所有内容版权归JJ Gifford.所有,翻译权归CG频道所有,违者必纠。