Flash AS教程:用动态遮罩实现液化效果(2)_Flash教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:Flash AS入门教程第七课:影片剪辑第五节_拖动与碰撞检测
本文由中国教程网 sanbos 原创,转载请保留此信息! 本系列Flash教程由中国教程网Flash互助课堂专为Flash新手制作,更多教程和练习请点击这里,在这里有系列的教程、练习,并有老师对练习

代码分析:

看到这个效果我们很可能想到虑镜,其实不然,这就是用遮罩实现的效果。原理并不复杂。若干个随鼠标运动的园型遮罩,下面也是若干个被遮罩的图片,遮罩和被遮罩大小都不断变化,从而实现了这个效果。
首先创建了一个空的MC,然后预设了一个数量,上面我们说到若干个,这里设为20。
this.createEmptyMovieClip("theScene", this.getNextHighestDepth());
var maxImages:Number = 20;
接下创建一个函数用来创建这些若干个遮照和图片。
dupeAndPlace = function (image:MovieClip):Object {
创建一个对象用来存放这些遮罩和图片。

var arrHolder:Object = new Object();
接下来创建两个数组一个用来存放图片,一个用来存放遮罩:

arrHolder.pics_arr = new Array(0);

arrHolder.masks_arr = new Array(0);
接下来用一个for循环来创建这些图片和遮罩:
for (var i = 1; i<maxImages; i ) {
用两个变量来代表图片和遮罩,这样一个循环下来,就产生了20个图片和遮罩,当然这时还没创建,只是产生了20个名称而已:
var dnm = "image" i;

var mnm = "mask" i;
接下来再创建两个对象,用来存放将要产生的遮罩和图片的属性:
var imgObj = {_x:image._x, _y:image._y, _xscale:100 (i*1.7), _yscale:100 (i*1.7)};

var maskObj = {_xscale:Math.floor(100/i 3), _yscale:Math.floor(100/i 3), _x:this._xmouse, _y:this._ymouse};
下面创建两个对象分别复制图片和遮罩,并将上面两个对象中存的属性赋给它们。
var theDupedImage = image.duplicateMovieClip(dnm, theScene.getDepth() i, imgObj);

var theDupedMask = mask_mc.duplicateMovieClip(mnm, theScene.getDepth() (i*50), maskObj);
然后将遮罩应用于图片上:
theDupedImage.setMask(theDupedMask);
然后将遮罩和图片存到上面创建的数组中。
arrHolder.pics_arr.push(theDupedImage);

arrHolder.masks_arr.push(theDupedMask);
将舞台上的mask_mc元件隐藏。

mask_mc._visible = false;
返回存放这些遮罩和图片的对象:

return arrHolder;
上面这些动作都是在for循环中,因此,到现在就已创建了20对大小不一遮罩和图片,并且都被设置了遮罩和被遮罩的关系。
下面创建一个函数使这些遮罩向鼠标靠近:
makeWaves = function (masks_arr:Array) {

for (var i = masks_arr.length; i>0; i--) {

masks_arr._x = (this._xmouse-masks_arr._x)/maxImages*i;

masks_arr._y = (this._ymouse-masks_arr._y)/maxImages*i;

}
};
创建一个函数用来执行上面创建的创建这些遮罩和图片的函数,并在每隔一帧时调用一次让遮罩靠近鼠标的函数:
this.liquefyImage = function(theImage:MovieClip){

var arrHolder:Object = dupeAndPlace(theImage);

onEnterFrame = function(){

makeWaves(arrHolder.masks_arr);

}
}
下面是当鼠标移过图片时调用上面这个函数:

pic_mc.onRollOver = function(){

liquefyImage(pic_mc);
}


分享:Flash AS入门教程:文本与字符实例—打字游戏制作
简介:本例继续讲解AS的基础知识,前几节课我们学习了AS中的文本与符的理论知识,今天来实际操作一下,制作一个打字游戏,对Flash的AS编程有兴趣的朋友可以到论坛与作者交流~~本文由中国教程

共2页上一页12下一页
来源:中国教程网论坛//所属分类:Flash教程/更新时间:2009-03-15
相关Flash教程