ActionScript3游戏中的图像编程(连载十三)

总目录:http://blog.csdn.net/iloveas2014/article/details/38304477

1.2.9 用ColorTransform实现反色效果

        本节的最后,我给大家来一个稍稍有点意思的效果——反色。这种颠覆性的变换,线性的ColorTransform也能做到?答案是肯定的!所谓的反色,就是白变黑,黑变白,浅变深,深变浅,它的计算公式也非常简单,用100%减去原值就能得到结果色。即

 

dst = 255 – src;


        套到ColorTransform的计算公式中,就有:

 

red(dst) = red(src) * (-1) + 255。
green(dst) = green(src) * (-1) + 255
blue(dst) = blue(src) * (-1) + 255


        换而言之,只要将offset都设为255,multiplier都设成-1即可(可能有的童鞋还没想过将multiplier设置为负数吧)。

 

_myColorTransform.redMultiplier = -1;
_myColorTransform.greenMultiplier =-1;
_myColorTransform.blueMultiplier = -1;
_myColorTransform.redOffset = 255;
_myColorTransform.greenOffset = 255;
_myColorTransform.blueOffset = 255;


        可出来的效果跟预期的不一致。(图 1.19)

图 1.19 反色效果

        经过将近两周的纠结之后,我终于找到了问题的症结所在——跟BlendMode发生冲突了。因为BlendMode.ADD也是像素运算,两者混合后的运算机制以及优先级规则尚有待作进一步的研究。

        把BlendMode.ADD一句去掉之后,反色效果跃然屏上。(图 1.20)

  

图 1.20 修正后的反色效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值