在AS3中显示对象都有一个transform属性,设置这个属性可以改变显示对象的大小,旋转,颜色等特性.transform属性还有它自已的属性, 其中的colorTransform属性就可以改变显示对象的颜色.colorTransform属性必须使用new来设置.格式:
显示对象.transform.colorTransform = new ColorTransform(红色乘数,绿色乘数,蓝色乘数,透明度乘数,红色偏移值,绿色偏移值,蓝色偏移值,透明度偏移值)
根据AS帮助文件说,乘数的取值范围是0-1,偏移值的取值范围是0-255.设置.transform.colorTransform属性后,会重新计算显示对象的颜色.
计算公式以红色为例: 新的红色 = 旧的红色*红色乘数+红色偏移值.
根据这个公式,我们就突发奇想,如果将乘数设为-1,偏移值设为最大255,那颜色不就完全相反了吗?那就是说黑色会变成白色,白色就会变成黑色了,这不是底片效果吗?但是,人家帮助文件说了,乘数的取值范围是0-1,那你还敢试吗?设为-1那不范规了吗?管他的,范规又不范法,有啥不敢.你胆子真大,于是你将RGB的乘数都设为了-1,偏移值设为了255,然后你怀着忐忑不安的心(不至于麻),测试影片,会发生什么呢?
系统瘫痪,或者电脑爆炸?呵呵,说严重了点哈.测试的结果,你看到了一张底片效果,偷着乐吧你.
好了,原理你应该已经清楚了,现在我们制作.
1. 首先找一张图片,导入到flash中,新建一个影片剪辑,将图片放进去,放好.
2. 回到主场景,将图片元件拖到舞台上,然后复制一个,水平并排放好.
3. 为要制作成底片的那个图片元件设置实例名称:film_mc.
4. 用黑色填充,透明度设为70-80%,画一个比图片元件大一些的矩形,放到film_mc的下面.然后用白色填充画一个小的矩形,放到黑色矩形的上边,复制若干个,然后全部选中这些白色的矩形,打开对齐面板,取消相对于舞台设置,然后点击上对齐,再点击水平居中平均间隔.复制一份放到黑色矩形的下边.如下图:
新建一层,打开动作面板,输入如下代码:
film_mc.transform.colorTransform = new ColorTransform(-1,-1,-1,1,255,255,255,0);
film_mc.scaleX = -1;
测试影片,效果怎样?
上面第二句代码,是使图片水平翻转,因为我感觉底片的方向好象是反的。