PersonalCorpus 版 (精华区)

发信人: fengbo (创业进行时*等待), 信区: Flash
标  题: 玩转遮罩(1)
发信站: 哈工大紫丁香 (2003年12月06日11:30:38 星期六), 站内信件


遮照在flash制作中有着绝对重要的地位,这是毋庸置疑的。集合自己制作flash的经验,
我想就此写点心得,适合初级flasher参考,权当抛砖引玉,如有问题请给与指正。

简单的遮照应用,比如彩虹字、霓虹灯、万花筒什么的一些简单的遮着应用我就不多说了
,重点说一说怎么把遮照动起来。

一、知识储备
    Object对象、instance实例、instance Name、Target目标、Path路径(Dots格式/Sla
shes格式:_root.mov_a.mov_b和/mc_a/mc_b,这里都是绝对路径)、Property属性、Metho
d方法、on鼠标事件、OnClipEvent事件。
    以上提到的一些名词,可以在任何一本flash基础教程里面找到,所以不再累述。但为
了便于下面的操作,我将罗列一些on鼠标事件和OnClipEvent事件。

   1.on鼠标事件
   主要指鼠标触发赋予按钮的脚本程序的事件,例如可以用On(press){....};来表示当鼠
标点击按钮时执行大括号内的脚本程序,On事件有以下几种:
   press:鼠标在按钮上时左键按下
   release:鼠标在按钮上时左键被松开
   releaseOutside:鼠标不在按钮上时左键被松开
   rollOver:鼠标滑过按钮
   rollOut:鼠标从按钮上离开
   dragOver:鼠标在按钮上时左键被按下,按住后鼠标移出按钮范围,然后又移到按钮上
   dragOut:鼠标在按钮上时左键被按下,按住后鼠标移出按钮范围
   keyPress("key"):制定的键被按下

   2. OnClipEvent事件 触发赋予MC实例的脚本程序的事件
   Load:当Mc实例在事件轴上出现时
   Unload:当MC实例在事件轴上消失时,该事件触发的程序将比该桢的程序先运行
   EnterFrame:当MC实例的任一桢开始播放时。类似于赋予MC的程序,该事件触发的程序
比在该桢的程序后运行
   MouseDown:当点击鼠标左键时
   MouseUp:当松开左键时
   MouseMove:当鼠标移动时
   KeyDown:当任一键被按下时,使用Key.getCode方法能够获得最后一个被按下的键的信

   KeyUp:当任一键松开时,同key.down
   Data:当用loadVariables或loadMovie载入数据时。如果使用loadVariables载入数据
,事件只在最后数据载入后触发一次,如果是用loadMovie载入数据,事件会在数据每载入
一段是触发一次。

二、实例制作
    (1)动态探照灯
       1.新建影片,把层增加到3层,由上到下依次命名为“动作”、“遮罩”和“背景
”,在背景层上绘制一个图形,作为被遮罩的背景图形。
       选中背景图形转化为电影剪辑,然后再属性面板中将其命名为maskedclip
       2.绘制探照灯。在遮罩层中绘制一个圆,去掉边线,填充任一颜色,选中圆将其转
化为电影剪辑,并给该剪辑命名为masker
       3.在动作层的第一桢,用专家模式编辑action,代码如下:
         
       stop();                 //停止当前桢
       maskedclip.setMask(masker);  //设置遮罩效果
       _root.maskedclip.onEnterFrame=function(){  //电影剪辑maskedclip事件
       _root.masker._x=_xmouse;  //取得鼠标x值并赋予masker
       _root.masker._y=_ymouse;  //取得鼠标y值并赋予masker 
                                 // 这样masker就跟随鼠标移动
       updateAfterEvent();
       }
       4.OK,这样一个程序化的遮罩就完成了,Ctrl+Enter测试看看吧
       
       @:注意本教程均在Mx上测试通过,另发布时需为flash player6以上版本
         另一定要区分电影剪辑的名称和实例名称的区别上面提到的masker和
         maskedclip均为instance name         
     
       5.延伸和发展
       setMask()函数为我们程序化设置遮罩带来了方便,现在可以通过操作鼠标、按键
来随时设置遮罩,方法如下:
       在上面的代码中的第二行前加 // 将其变为注释
       然后在遮罩剪辑的内部第一桢上加代码
       this.onMouseDown = function() {
       _root.maskedclip.setMask(this);
       }
      6.再按ctrl+enter试试看,呵呵,已开始没有遮罩,点击左键后就有了

    OK 第一个实例到此结束,希望实践此实例的初级flasher不要满足于按步就班操作,
   要想一想多做一些类似第五步的延伸和发展。这样才会得到更多

 实例二将讲述遮罩实现放大镜 
           
--

也许我没做什么,                                                              
  
但是你的一颦一笑,我都看在眼里,很在意…… 

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 218.9.122.229]
※ 修改:·fengbo 於 12月06日11:33:39 修改本文·[FROM: 218.9.122.229]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:5.541毫秒