快速业务通道

Flash AS代码的动态遮罩来实现液化效果

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-07

本例介绍运用Flash AS的动态遮罩来实现液化效果,教程详细讲解了AS代码的运用,并给出了详细的代码解释~~ 先看效果:将鼠标在图片上移动看看效果。 制作方法: 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,大功告成!
测试影片。 关键词:代码 遮罩
  • 1
  • 2
  • 下一页

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号