1、在这个Flash AS3.0的示例教程中,我们将使用DisplacementMapFilter和BitmapData类的perlinNoise。
(资料图片仅供参考)
2、这两个家伙经常给我们带来一些刺激的效果,他们的合作给大家创造了一道亮丽的风景线。看下面的动画,应该不错。
3、现在让我们建立这个美丽的水图案:
4、既然是水的图案,我想先找一张包含水的图片,比如河流,湖泊,水池,如果你喜欢的话。
5、新建一个AS3.0文档,设置帧率为30,将图片导入到库中,右键,去掉属性面板中“使用JPEG导入质量”前的勾,这样图片的大小会大大缩小。
6、创建一个新的电影编辑组件,将图片拖到舞台上,并设置图片的大小。你想把它设置成多大?反正我按默认的550x400。这张图片和文件一样大。单击“对齐”面板,使对齐相对于舞台居中。
7、返回主场景,将MC拖到舞台上,将其居中,并为其设置一个实例名称。我使用“图片”层锁定它。
8、插入新图层,将图片(注意图片不是MC)拖到舞台上,打开对齐面板,匹配宽度和高度,居中对齐。现在一楼和二楼的图像完全重合,请确认是这样的。选中图片,点击修改分离,选中并删除水面部分。
9、可以隐藏第一层,看到删除后的效果。
10、:
11、创建一个新层来编写代码,打开动作面板并输入以下代码:
12、复制代码
13、代码如下:
14、1 . var BMP:BitmapData=new BitmapData(550,400);
15、2 . var zh:DisplacementMapFilter=new DisplacementMapFilter(BMP,new Point(0,0),1,2,10,600);
16、3. var p1:Point=new Point();
17、4. var p2:Point=new Point();
18、5.var zdxg:Array=[p1,p2];
19、6.addEventListener(事件. ENTER_FRAME,LD);
20、7. function ld(e:Event):void {
21、8. zdxg[0].x +=0.2;
22、9. zdxg[1].y +=0.1;
23、10.bmp.perlinNoise(168,5,2,4,true,true,2,true,zdxg);
24、11. pic.filters=[zh];
25、12. }
26、好了,测试一下片子,一个漂亮的水效果马上出现在你眼前。
27、代码分析:
28、首先,将BitmapData类bmp的一个实例声明为置换图过滤器的一个参数,该实例有一个图片那么大。
29、var BMP:BitmapData=new BitmapData(550,400);
30、然后声明一个置换图过滤器zh,以bmp为参数。
31、var zh:DisplacementMapFilter=new DisplacementMapFilter(bmp,new Point(0,0),1,2,10,600);
32、接下来声明了两个点,并将这两个点放到到一个叫zdxg的数组中,这个数组将用于bmp产生杂点的参数。
33、var p1:Point=new Point();
34、var p2:Point=new Point();
35、var zdxg:Array=[p1,p2];
36、然后,在ENTER_FRAME事件中调用ld函数。
37、addEventListener(Event.ENTER_FRAME ,ld);
38、ld函数,动态改变两个点的位置,然后使bmp应用杂点功能,在每一帧的间隔产生不同的杂点效果,使置换滤镜效果产生变化,最后让影片剪辑pic,应用滤镜,实现水汶效果。
39、function ld(e:Event):void {
40、zdxg[0].x +=0.2;
41、zdxg[1].y +=0.1;
42、bmp.perlinNoise(168,5,2,4,true,true,2,true,zdxg);
43、pic.filters=[zh];
44、}
本文到此结束,希望对大家有所帮助。
Copyright © 2015-2022 东方评测网版权所有 备案号:沪ICP备2020036824号-8 联系邮箱:562 66 29@qq.com