一直一来,flash8的水波制作都是比较让我向往的,网上也出了不少的教材,闪吧的高手HBB和xiankevin都出过相关的教程,不过当时我没时间学习,看源文件看的是一塌糊涂,到头来是今天看,明天忘。这几天学习flash新增的类,终于学到了DisplacementMapFilter滤镜类,一切豁然开朗,原来水波制作这么简单,下面是昨天学习,今天做的一个小实例。很简单,基本上三步走就完成了一个水波制作的雏形。明天再试试用BitmapData.perlinNoise 方法加深一下印象。
注:xiankevin的经典教材在我的博客文章栏目里有收藏
先看效果:
如果你看不到,底部也有链接,还有源文件。
首先我们需要找到一个背景(大小和场景相同),或者自己手绘一个,这里我用的是博客的图标。也可以用一张图片做成mc来代替。做好后,将这个mc拖入到场景中,中心对齐,并给它实例命名为pic
第二步新建一个mc,绘制一个黑白颜色的放射性渐变的圆,并把它做成动态的效果,效果看这里:
这个会动的放射性渐变mc,我们在库中给它添加标识符(就叫ball好了),你也可以不用这样做,后面的讲解中有可以选择的余地
第三步,再次新建一个mc,里面绘制一个和场景大小相同的矩形(注意这个矩形要与mc的场景中心进行“左上”对齐)如下图,这个矩形就是将来在pic那个图片效果上做水波的区域,如果你不绘制这个矩形,将来出来的效果就会感觉有个边缘,视觉上就比较假,当然如果你有心,完全有别的方法可以来解决这个问题。 
接下来,如果你刚才懒的命名标识符,就可以在这个mc里新建一个层,把刚才的那个放射性渐变的mc(会动的那个)拖入进来,位置就放到这个矩形的中间。
如果你命名了标识符,就可以直接在帧上添加以下代码:
|
以下是代码片段: //获取可用层级,返回一个数字 |
ctrl+Enter就可以测试了。
最后总结出:1.必须有一个动态的东东做波动的样子,BitmapData.perlinNoise 类就是更深层次的波动,明天再测试。
2.有一个BitmapData对象不断的对那个波动mc进行绘制。
3.需要波动的影像采用DisplacementMapFilter滤镜类,来源是绘制波动效果的BitmapData对象。
admin#flashas.net (#为@) 联系QQ:
:40777822
浙ICP备06033001号