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

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

1.2.7线性提高或降低alpha值

        提高alpha(图 1.14):_myColorTransform.alphaOffset = 100;

图 1.14 线性提高alpha

        降低alpha值(图 1.15):_myColorTransform.alphaOffset = -100; 


 
图 1.15 线性降低alpha

  
        粗略一看,它跟设置alpha似乎没什么两样,但仔细观察就会发现,当alphaOffset提高的时候,周边比较透明的像素渐渐地淡入到1,相反,降低的时候,周边会慢慢地淡出到0。所以,虽然仅仅是一个简单的线性变换,但是拿来做光圈或者黑洞的扩散或者收缩效果将会相当不错。

        下面,我们做个直接设置alpha的版本来对照下效果。


1.2.8 设置alpha值

        _myColorTransform.alphaMultiplier = 0.7; (图 1.16)

图 1.16 倍乘降低alpha

        注意到设置alpha跟设置颜色不同,它要在原有像素的基础上设置倍率才符合alpha的概念,效果才跟设置displayObject.alpha一致。

        _myColorTransform.alphaMultiplier = 1.5; (图 1.17) 


 
图 1.17 倍乘提高alpha

        可以看出,alpha的变换呈现为整体性,因此没有扩散收缩的效果,如果您有跟着我一起测试的话,就不妨用补间引擎或者EnterFrame来测试两种效果过渡的差别。作者认为alphaOffset的效果要比multiplier漂亮多了。

        如果像设置颜色那样,把multiplier弄成0,像素点的透明度就统一起来了。这个效果虽然不甚美观,但是很适合用来做一些图像的预处理工作。

        代码如下:

_myColorTransform.alphaMultiplier = 0;
_myColorTransform.alphaOffset = 127;


        效果如图 1.18所示。

图 1.18 让每个像素点的alpha相等


        在alpha通道方面,ColorTransform没让咱们失望,毕竟它独立于色彩模式,而且只有一个值,运算的处理也相对容易把握一些。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值