APP下载

基于动作脚本制作的放大镜

2019-09-19蒋维刘华煜

电脑知识与技术 2019年20期

蒋维 刘华煜

摘要:本文介绍了在Flash中如何利用动作脚本实现放大镜移动到小图上的任意位置时,舞台上会相应地出现放大镜放置位置的局部放大图。

关键词:Flash;动作脚本;放大镜

中图分类号:TP311        文献标识码:A

文章编号:1009-3044(2019)20-0267-02

开放科学(资源服务)标识码(OSID):

Flash中制作的放大镜效果通常是利用遮罩的方法,把同一副图的大小图重叠放置,再将放大镜作为遮罩层将大图遮住,舞台上看到的是小图,只有在镜面所在处才露出大图,为了使放大镜镜面中显示出的大图内容与放大镜放置在小图上的内容一致,就不能使大小图显示的图像位置有差异,在放大过程中就需要随时改变大图的坐标位置,使其出现在小图同一位置内容的上方,为了方便准确地移动大图的坐标位置,我们在调整大小图相对大小时需要两图的纵横比例一样。本文中介绍的放大镜的制作方法,没有上述的诸多条件限制,可以更为灵活便捷的实现放大镜效果。

1 程序的设计与实现

1.1 程序的设计

程序的基本设计思想是把小图放在舞台上的一角,这个小图可以是大图的缩小图,也可以是与大图相似的小图,在本设计中大图和小图的纵横比可以不用一致。鼠标拖动放大镜使放大镜在小图上随意移动,放大镜的移动范围可控制在小图面积内,也可是整个舞台。当放大镜移动到小圖上的某位置时,舞台中间就会出现放大镜所在位置的局部放大图,如图1所示。

1.2 程序的实现

1.2.1 制作的原理

在Flash中,一个元件对象在舞台上的坐标值是以注册点来定位的,一个元件的注册点默认是在此元件的左上角,如果让放大镜的移动区域大小与小图的大小一样,则放大镜在小图区域内移动时放大镜的镜片可能会移出小图画面,如图2所示,图2中十字交叉点为放大镜的注册点,在图2中我们可以看到放大镜的镜片可能会移动到我们不需要放大的地方,要解决此问题我们可以把放大镜的移动区域控制得比小图面积小,如图3所示,也可以尝试把放大镜的注册点定义在对象中心点或者右下角等地方。为了使大图显示的内容随着放大镜位置的移动而变化,大图移动的注册点坐标位置区域要与放大镜移动的注册点坐标位置区域在相反的坐标象限区域内,例如:放大镜当前注册点坐标值为(20,40),则大图的注册点坐标值要为(a*20,b*40),若小图是由大图等比缩放变化的,则a、b的值相等,否则a、b的值要根据大图相对于小图的大小比例取值,如图4所示。

1.2.2 实现过程

新建一文档,设置舞台大小为(600,400),此处可设置为任意舞台窗口大小;

在时间轴面板的图层上依次创建三个图层,分别放置大地图、小地图、放大镜,把它们转化为元件 — 影片剪辑,分别调整它们在舞台上的大小和位置,其中在调整大地图大小时为了更好地得到放大效果应使得其大于舞台窗口大小;

选中放大镜图层的第一个关键帧,打开动作面板输入以

2 结论

本文利用动作脚本制作了放大镜动画效果,对于程序中的一些参数设置,我们可以根据实际制作情况进行更改和调整,如在设置startDrag()函数的第二个参数时就可以把移动区域固定在小图区域内:Rectangle(0,0, xiaotu.width-50, xiaotu.height-50),还有大图取得的坐标值的放大倍数值随着大图放大得越大,倍数值也应越大等等,用户可根据自己的需求进行设计。

参考文献:

[1] 李志勇,李亮.Flash互动编程设计——基于ActionScript 3.0 [M].北京:清华大学出版社,2017.

[2] 张建琴,官彬彬.Flash CS6动画制作案例教程[M]. 北京:清华大学出版社,2018:2.

【通联编辑:唐一东】