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

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

1.2.5 colorTransform在色彩处理方面的不足

        在以上的测试中,有些本来不同的颜色在经过colorTransform转换后变得出奇的一致,如果是想给图像做变色效果,这样的情况往往是我们想要避免的。此时,ColorTransform就显得有点心有余而力不足了。

        归根到底,还是在于RGB模式在人类的视觉体验方面做得不够友好。

        接下来,我们看看之前没测试过的alpha变换,理所当然的,之前的图像就不太适用了,因为图像里每个像素点的alpha都等于1。

 

1.2.6 Alpha测试用例的书写

        把ShapeColorTransformTest复制为ShapeColorTransformTest,然后对代码进行如下调整:

        首先把getTestSprite修改为:

//创建用于测试的显示对象
private function getTestSprite():Sprite{
 var _f:Array = [new BlurFilter(80, 80)];
 var _testSprite:Sprite = new Sprite();
 /*添加两个圆,颜色分别为白和黑*/
 _testSprite.addChild(new Circle(50, 0xFFFFFF, 100, 100)).filters = _f;
 _testSprite.addChild(new Circle(50, 0xFFFFFF, 100, 250)).filters = _f;
 return _testSprite;
}

 

        而applyTransform函数则调整如下:

private function applyTransform():void{
 _myColorTransform = _testSprite_dst.transform.colorTransform; 
 _myColorTransform.alphaMultiplier = 0;
 _myColorTransform.alphaOffset = 127;
 _testSprite_dst.transform.colorTransform = _myColorTransform;
}


        运行效果如图 1.13所示。作者用了BlurFilter模糊滤镜生成了带两个透明渐变圆的Sprite,本来用透明渐变填充会更合理,但考虑到渐变代码比较复杂,这里还没介绍到,就先拿模糊滤镜凑合着用吧。
 

图 1.13 alpha测试用例

        下面我们尝试一下alpha变换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值