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

来源:互联网 发布:知乎 加拿大ee 编辑:程序博客网 时间:2024/06/08 06:51

总目录: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变换。

0 0
原创粉丝点击