大家好,玲玲来为大家解答以上问题,as3 re,as3 0教程很多人还不知道,现在让我们一起来看看吧!
本教程由中国教程网三博原创。请保留这些信息,以便转载!
在Flash AS3.0的这个示例教程中,我们将使用BitmapData类的DisplacementMapFilter和noise函数。这两个家伙经常给我们带来一些激动人心的效果。他们今天的合作为我们创造了一个美丽的水纹。看下面的动画,应该不错。
现在我要建造这个美丽的水图案:
既然是水的图案,我觉得还是先找个水的图,百度一下,河流,湖泊,水池,随便你喜欢什么。
1.新建一个AS3.0文档,设置帧率为30,将刚刚下载的图片导入到库中,点击右键,去掉属性面板中“使用JPEG导入画质”前的勾,这样图片的体积会大大减小。
2.创建一个新的电影编辑组件,将图片拖到舞台上,并设置图片的大小。你希望它有多大?反正我按默认的550x400。图片和文件一样大。单击“对齐”面板,使其相对于舞台居中对齐。
3.返回主场景,将MC拖到舞台上,将其放在中央,并为其设置一个实例名称。我使用了“pic”层来锁定它。
4.插入新图层,将图片(注意图片不是MC)拖到舞台上,打开对齐面板,匹配宽度和高度,居中对齐。现在1楼和2楼的图像完全重合了。请确保它是这样的。选择图片,点击修改分离,选择并删除水面部分。可以隐藏第一层,看到删除后的效果。
如下图:
5.创建一个新层来编写代码,打开动作面板并输入以下代码:
1.var BMP : BitmapData=new BitmapData(550,400);2.var zh : DisplacementMapFilter=new DisplacementMapFilter(BMP,new Point(0,0),1,2,10,600);3.var p 1: Point=new Point();4.var p 2: Point=new Point();5.var zdxg:Array=[p1,p2];6.addEventListener(事件。ENTER_FRAME,LD);7.函数ld(e:Event):void { 8。zdxg[0]。x=0.29.zdxg[1]。y=0.110.bmp.perlinNoise(168,5,2,4,true,true,2,true,zdxg);11.pic . filters=[zh];12.}
好了,测试一下片子,一个漂亮的水纹效果立刻出现在你的眼前。
代码分析:
首先声明一个BitmapData类bmp的实例,它有一张图片那么大,作为置换图过滤器的参数。
var BMP : BitmapData=new BitmapData(550,400);
然后声明一个置换映射过滤器zh,以bmp为参数。
var zh : DisplacementMapFilter=new DisplacementMapFilter(BMP,new Point(0,0),1,2,10,600);
接下来,声明两个点并放入名为zdxg的数组中,该数组将用作bmp生成噪声的参数。
var p 1: Point=new Point();var p 2: Point=new Point();var zdxg:Array=[p1,p2];
然后,在ENTER_FRAME事件中调用ld函数。
addEventListener(事件。ENTER_FRAME,LD);
Ld函数,动态改变两点的位置,然后让bmp应用噪波函数,在每一帧的间隔产生不同的噪波效果,从而改变替换滤镜的效果。最后让片子剪辑pic,应用滤镜实现水纹效果。
函数LD(e : event): void { zdxg[0]。x=0.2zdxg[1]。y=0.1bmp.perlinNoise(168,5,2,4,true,true,2,true,zdxg);pic . filters=[zh];}
本文到此结束,希望对大家有所帮助。