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

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

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

简介:本例介绍运用Flash AS的动态遮罩来实现液化效果,教程详细讲解了AS代码的运用,并给出了详细的代码解释,希望能给朋友们带来帮助~~
本文由中国教程网 sanbos 原创,转载请保留此信息!

先看效果:将鼠标在图片上移动看看效果。

制作方法:

1. 新建flash文档,将帧频调到31.导入一张图片。

2. 新建一影片剪辑,将图片拖入。然后回到主场景,将该MC放到舞台上,居中对齐。打开属性面板实例名称设为:pic_mc.

3. 新建一影片剪辑,用椭园工具画一个无笔触任一填充的园,这个园应该覆盖图片的大部分。

回到主场景,新建一层,将库中的园元件拖上舞台。打开属性面板,实例名称为:mask_mc.将这一层拖到图片层的下面。

4. 新建一层,取名为action,输入下列代码:

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 (var i = 1; i<maxImages; i ) {
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._visible = false;
return arrHolder;
};
makeWaves = function (masks_arr:Array) {
for (var i = masks_arr.length; i>0; i--) {
masks_arr[i]._x = (this._xmouse-masks_arr[i]._x)/maxImages*i;
masks_arr[i]._y = (this._ymouse-masks_arr[i]._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);
}

OK,大功告成!
测试影片。

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

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