制作一个与众不同的放大镜
软件世界
一般的放大镜效果可能许多Flash爱好者见过,一些朋友甚至还会做。但是你肯定没见过像这样的放大镜,它能随你拖动,想放大什么地方,就可以放大什么地方。随心所欲呀,可与生活中的放大镜相媲美。
也想做一个吧,那就紧跟着我,一步一步来。(注意:这只能在Flash MX中完成,不能在Flash 5.0中运行。)
1.制作放大镜的镜面
选“Insert→New Symbol”, 新建一符号,取名mask,采用moiveClip属性。在工作区画一个圆形,填充色只要有就可以,任何颜色对结果没有影响。这个符号是作为遮罩来使用的。圆形的直径设为是100,中心点位置设为(0,0),目的是把圆形的中心和符号的中心设为一致。
2.制作放大镜的框架
选“Insert→New Symbol”,再新建一符号,命名为faj,采用moiveClip属性。在工作区画一圆形,填充色设计为黑白渐变,直径设为130,中心点坐标为(0,0),再在旁边用其他颜色画一个圆形,直径为100,修改中心点为(0,0),然后用鼠标在工作区其他地方点击,使两个园都没有选中。再选中中间的园,拖出,删除。其目的就是要使放大镜的镜面空出。在使用遮罩层编程时,镜面部分能显示被遮图形,效果如(图1)。

3.加工放大镜
画一个长方形,稍微旋转,用作放大镜把柄。再把符号mask拖入工作区,中心设为(0,0),这样刚好把空出的地方填上。并给它的实例取名为ma,以便后面编程使用。放大镜最后效果如(图2)。

4.导入图片
在这里,我选用的是世界名画──蒙娜丽莎。步骤是新建一符号,取名为pic,采用movieClip属性。使用“File→Import”,在对话框中选中要导入的图片,确定后把坐标设为(0,0),但是要注意设定坐标的点是图片最左上角的点,和制作放大镜时设定的点不同,如(图3)。

5.回到场景
在第一层的第一帧上拖入符号pic,实例名为yt。并把层名字改为yuantu(原图)。新建一层,改名为faj,在第一帧上把符号faj拖入其中,实例名为da。再新建一层,改名为xiaotu(小图),在第一帧上再一次拖入符号pic,实例名为xt。我现在想做的事就是把图片实例xt变为原图的四分之一大小。显示出来。在实例yt上起用遮罩,这样可以看出放大的效果。层的关系如(图4)。

6.最后的编程
⑴新建一层,在第一帧上加上如(图5)中的语句。

第一句是对鼠标实现隐藏。第2句作用是在实例yt上,用放大镜da中的实例ma对它进行遮罩(这个movieClip的方法在Flash 5.0中不支持,在Flash MX中才出现,它的用法请看拙作《对遮罩层编程》)。第3行使放大镜随鼠标移动而移动。sc用来设为放大倍数。后面的语句是把原图长,宽缩小到原来的一半。然后把原图和缩小图按左上角点对齐。这样我们直接看到的就是实例,即缩小后的图片,而在放大镜中看到的就是原来的图片。这样形成了放大效果。
⑵在第二帧上新建一空白关键帧,在上面加上如(图6)中的语句。

这段语句作用是让原图和缩小图对应起来。放大镜在小图的某点上,那么在放大镜里出现的是这点所对应的放大后的图形。这里前两句是找到放大镜在小图上的位置。放大镜是随鼠标运动的,它的位置就是鼠标在小图的位置。再算出对应大图的位置,然后把大图进行移动,是放大镜中的图形就是该地方局部的放大。根据我N次实践发现,在Flash MX中,计算出的对应位置和实际上对应位置有2倍的差距。就是说本来图片宽度为100,但是播放时宽度不是100,而是200。在这里我把鼠标的位置除以2进行修正。
⑶在第三帧上新建一空白关键帧,加上如(图7)中的语句。

这段语句比第二帧的语句多了一句gotoAndPlay(2),其目的是它不断反复,循环。不断捕捉放大镜位置,不断移动大图片。最后,让我们看看效果吧!如(图8),爽吧。
