注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

歌声相伴 开心前行

.....................

 
 
 

日志

 
 

制作方格缓出遮罩特效  

2014-07-14 18:11:20|  分类: 实例教程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

先看效果

(底图不同,原理一样)

制作方法:

第一步:打开Flash新建一个Flash文档,设二个图层。把“图层1”图层命名为“图片”;“图层2”图层命名为“AC”;见图1。然后把“属性面板”中的“帧频”改为“24”。见图2

2014年07月14日 - 一路e同行 - 歌声相伴 开心前行

 

图1

2014年07月14日 - 一路e同行 - 歌声相伴 开心前行

 

图2

第二步:导入一张图片到库,单击库面板左下角“新建元件”按钮创建一个电影剪辑(MC)元件,把这个元件命名为“img-mc”,点击“确定”;然后把导入库中的图片拖入编辑区中,在属性面板中把宽设为550;高设为400,X、Y分别设为0。见下图

2014年07月14日 - 一路e同行 - 歌声相伴 开心前行

 

 

 

第三步:返回主场景,单击“图片”图层第一帧,把库中做好的MC(img-mc)拖入舞台,见下图1。然后在“属性面板”中把“影片剪辑”的“实例名称”栏上改为“img-mc”见图2

2014年07月14日 - 一路e同行 - 歌声相伴 开心前行

 

图1

2014年07月14日 - 一路e同行 - 歌声相伴 开心前行

 

第四步:单击“AC”图层第一帧,打开“动作”面板输入以下代码:

Stage.showMenu = false;

Stage.scaleMode = "noScale";

fscommand(allowscale, true);

createEmptyMovieClip("mask", -1);

mask.createEmptyMovieClip("mask0", -2);

with (mask.mask0) {

beginFill(0xcccccc, 100);

moveTo(0, 0);

lineTo(0, 100);

lineTo(100, 100);

lineTo(100, 0);

lineTo(0, 0);

endFill();

_width = 1;

_height = 1;

}

//以上为创建mask元件和mask0子元件,这两个元件就是用于遮罩图片的。

mask._x = img_mc._x=0;

mask._y = img_mc._y=0;

img_mc.setMask(mask);

//以上为设置遮罩和遮罩层的位置;

maskNum = 0;

//初始化遮罩子元素的个数;

box = 40;

//初始化子遮罩正方形的边长;

lNum = Math.ceil(img_mc._width/box)+1;

//获得被遮罩图片的一行需要多少个子遮罩;

cNum = Math.ceil(img_mc._height/box)+1;

//获得被遮罩图片的一列需要多少个子遮罩;

maxNum = lNum*cNum;

//得到子遮罩元件的总数;

var myArray = new Array();

//定义数组;

for (i=0; i<cNum; i++) {

myArray[i] = [];

for (j=0; j<lNum; j++) {

myArray[i].push(i*lNum+j+1);

//该两个循环生成一个二维数组用于存储子遮罩的行和列的编号。

}

}

for (i=0; i<cNum; i++) {

if (i%2 == 0) {

myArray[i];

} else {

myArray[i] = myArray[i].sort(order);

//当遇到奇数行的时候,倒排子遮罩的编号;该方法是为了让子遮罩从右到左产生;

}

for (j=0; j<lNum; j++) {

with (mask) {

masks = mask0.duplicateMovieClip("mask"+(myArray[i][j]), myArray[i][j]);

//根据元件mask0复制出子遮罩,并将名称存入masks数组;

masks._x = j*(box-1);

//设置单个子遮罩的x和y坐标值,将其平铺在整个被遮罩图片上;

masks._y = i*(box-1);

//

masks.xs = i;

//设置自遮罩在二为数组myArray中的编号;

masks.ys = j;

masks._width = 0;

//初始化子遮罩不可见;

masks._height = 0;

//

masks.onEnterFrame = function() {

if (_root.myArray[this.xs][this.ys] == _root.maskNum) {

this.mcZoom();

//执行子遮罩缩放动画;

}

};

}

}

}

_root.onEnterFrame = function() {

if (maskNum<=maxNum) {

_root.maskNum++;

//递加子遮罩个数;

}

};

function order(a, b) {

//该函数用于降幂排序数组;

if (a>b) {

return -1;

} else if (a<b) {

return 1;

} else {

return 0;

}

}

MovieClip.prototype.mcZoom = function() {

//子遮罩动画部分;

this.onEnterFrame = function() {

this._width += (box-this._width)/10;

this._height += (box-this._height)/10;

};

};

代码输入如图:

2014年07月14日 - 一路e同行 - 歌声相伴 开心前行

 


                                                                                                             素材   网络    制作  一路e 同行

  评论这张
 
阅读(167)| 评论(26)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017