遮罩

flash as3.0遮罩  

2012-06-12 13:17:55|  分类: 技术|举报|字号 订阅

AS3.0入门基础-13
明月习作
2011-10-30

第十三课、影片剪辑的属性和方法(二、遮罩,鼠标跟随。),小实例。
一、遮罩(mask)
1.遮罩是属性,而不是方法。实现显示对象的遮罩效果,是设置其属性。
2.把遮片作为蒙板,透过蒙板显示出对象的内容来。或者说,遮片就是个孔洞,
还可以说遮片就是个窗口,需要显示的对象内容是透过该孔洞,
或说透过该窗口来看到被遮对象的内容的,而遮片对象是不会显示出内容的。
遮片映射在需要显示的对象上的,是该遮片的窗口的形状样式。
显示出来的仅仅是遮片形状的下层的显示对象内容,被遮挡的部分显示了,
没被遮挡的部分显示不了的。
也有人说:
遮罩层好比黑夜中的一支手电筒,照在哪儿(指被遮罩层)哪儿就显现。

3.遮罩语句格式:
要显示的对象.mask=遮片对象;
//要显示的对象,通过遮片对象的形状窗口,而看到内容。
4.删除遮罩语句格式:
要显示的对象.mask=null;
//设置对象的遮罩属性为空,遮罩属性失效就删除了遮罩。
5.遮罩效果可以使用基础动画来实现,也可以使用AS脚本代码来实现。
但是,基础动画制作的遮罩效果和AS代码实现的遮罩效果不全是一样的。
6.使用AS3.0脚本建立遮罩,这时,要显示的对象只能是一个“被遮罩层”,
多层是不行的,还不能设置该对象的透明属性。
遮罩层(遮片对象)无法对遮罩层对象进行遮罩,即遮罩无法嵌套遮罩。
遮罩层(遮片对象)无法无法被引导,
即不能将要遮罩的显示对象用遮罩片去遮罩,同时又用引导线来引导的。
遮罩层(遮片对象)中内容只能是填充,笔触都被忽略掉。
7.基础动画可以实现遮罩效果,为什么要使用AS动作脚本来实现呢?
因为要涉及到可以同时使用AS动作脚本实现其他效果,例如鼠标跟随和拖动等等。
当然了,高级应用中还可以实现其他效果,例如透明通道遮罩等。
8.一般地,我们把要显示的对象,制作成MC元件。同时,遮片对象也制作成MC元件。
这两类元件对象中,都可以包含时间轴动画,还可以是多层的动画。
为了交互和适应舞台缩放,建议对这些MC元件实例化。

二、无脚本语句的遮罩(为了体验和对比AS遮罩效果)
1.启动CS3,创建文档,导入2张到3张图片到库中,设置好文件保存。
2.主场景插入几个图层,图层和舞台的对象为:
(1).底图图层——拖入一张图片。
(2).被遮罩图层——拖入另一张图片。
(3).被遮罩图层——输入文字内容。
(4).遮罩图层——绘制一个形状,例如椭圆,或五星。
3.可以将对象制作成动画元件,例如包含一些运动动画和改变形状大小的动画等。

三、AS3.0语句制作遮罩
1.新建AS3.0文档,导入2张图片,设置好文件保存。
2.主场景插入几个图层,图层和舞台对象为:
(1).底图图层——拖入一张图片。
(2).被遮罩图层——拖入另一张图片,并将对象转换为MC元件,给实例名为“mc1”。
(3).遮罩图层——绘制一个形状,例如椭圆,或五星,
也将绘制的对象转换为MC,给实例名为“mc2”。
(4).AS图层——在该层的帧上写代码:
mc1.mask=mc2;
3.将两个MC元件分别制作成动画,或位置移动,或大小改变。

四、跟随鼠标移动的遮罩
1.无缓动的效果
代码如下:
function ff(evt:Event):void {
 mc1.mask=mc2;
 mc2.x=stage.mouseX;
 mc2.y=stage.mouseY;
}
stage.addEventListener(Event.ENTER_FRAME,ff);
2.有缓动的效果
修改代码为:
function ff(evt:Event):void {
 mc1.mask=mc2;
 mc2.x =(stage.mouseX-mc2.x)/6;
 mc2.y =(stage.mouseY-mc2.y)/6;
}
stage.addEventListener(Event.ENTER_FRAME,ff);

五、羽化和透明遮罩(透明度alpha通道遮罩)
其实很简单,只要将显示对象(MC实例)“使用运行时位图缓存”,就能实现羽化效果。
具体的步骤分为2步。
1.遮片对象使用滤镜属性的模糊设置,一般设置为模糊值20—80之间。
2.被遮罩对象勾选“使用运行时位图缓存”即可。
3.透明效果:
遮罩片如果制作成有透明度效果的形状动画时,也要把包含有该动画的MC对象,
勾选“使用运行时位图缓存”,才有透明效果。
这种透明的效果,有点象融图处理的飘渺朦胧而重叠的景物效果。

六、小实例
使用以上所学习的知识和技术,设计自己的动态遮罩效果的小实例。
1.使用库中的链接,来实例化对象。建立遮罩的类等。
2.设计效果参考:
遮罩可以做出的效果:
百叶窗,水波动,电影字幕,探照灯,万花筒,放大镜,望远镜,五星闪光,微风细叶,
羽化(模糊遮罩),卷轴,地球旋转,透明水晶球,瀑布,水波字,过光字,蜂窝遮罩,
棋盘格遮罩,无脚本翻书,擦除,鼠标跟随遮罩,强化外框,书写,卡拉OK字幕,翻贴文字,
文字上的碎花动,朦胧淡入淡出文字效果,走马灯,聚光灯,刷亮闪光,光束滑过,扇子,
砂漏,......
图片过渡效果:
伸缩图片,中心对称分开,风车遮罩,拉丝溶解,棋盘,十字,内圆外圆,扇形展开,阶梯
棱形,随机线条,......
3.参考代码:
var mc1:MovieClip=new Mc();//创建Mc类的实例。
addChild(mc1);//将创建的Mc类的实例对象mc1,添加到显示列表中。
mc1.x=275;//设置mc1的初始位置,在舞台的中心。
mc1.y=200;//设置mc1的初始位置,在舞台的中心。
function ff(evt:Event):void {
 var aa:uint;//声明变量aa,作为缓动系数。
 aa=6;//设置缓动系数值为6。
 mc1.mask=mc2;//设置mc1对象的遮罩属性,蒙板为mc2。
 mc2.x =(stage.mouseX-mc2.x)/aa;//鼠标跟随的缓动。
 mc2.y =(stage.mouseY-mc2.y)/aa;//鼠标跟随的缓动。
}
stage.addEventListener(Event.ENTER_FRAME,ff);//注册舞台的侦听事件,用帧频事件。
/*在库中把要显示的元件链接为“Mc”,创建该类的对象,实例化并添加到显示列表中。
设置要遮罩的显示对象“mc1”的初始值,是舞台中心的位置。在每次帧频率刷新的时候,
事件函数响应执行遮罩和鼠标跟随。*/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值