灵活使用ColorTransform类可以调出计算机显示系统中的任何一种颜色。通过把redmulti、greenmulti、bluemulti、和alphamulti设为0,就可以完全清除显示对象的原有颜色。然后设置redoffset、greenoffset、blueoffset和alphaoffset,相当于为显示对象创建了一个新颜色。而精细的修正redmulti、greenmulti、bluemulti和alphamulti的数值,将微量调整显示对象的原有颜色,可以在动画中达到颜色的自然过渡。
灵活使用ColorTransform类还能营造出特殊的效果。要清空一个通道,只需要把相应的multi参数和offset设为零即可。对于多种色彩构成的显示对象,可以通过ColorTransform类的变换,取出某一个通道,清空某一个通道。达到特殊的视觉效果。
需要特别指出的是,前例中的colorTransform色彩调整只是应用到显示对象的运行时内存副本中,并没有改变库中元件的固有颜色。当再一次使用ColorTransform类调整显示对象时,并不是对前一次调整后的内存副本的颜色做操作,而是重新对库中color_rect元件的固有颜色作调整,然后把调整后的结果复制到显示内存中。这种机制是必要的,可以有效避免颜色管理的混乱。
当使用ColorTransform类变换对象颜色之后,如果需要恢复对象原有的颜色,只要为对象的transform.colorTransform属性赋一个null值。这时AS3的执行引擎会重新拷贝对象的原始数据到显示内存中。
ColorTransform类不能调整影片的背景色,如需要此类设置请参考第六章Stage类的相关内容。