Flash CS4教程:利用遮罩功能及添加代码来制作切换放大菜单效果

2019-10-08 12:03:51刘景俊

技巧与提示:

因为本例所编写的代码有70多行,为了更好地帮助用户理解,因此分块进行展示,用户可以打开源文件来查看所有的代码,关于更多文本格式(TextFormat)的详细信息可参考帮助文档。

步骤(5)中的第20行代码是为按钮注册事件侦听,侦听器函数为步骤(6)中的第59行代码clickHandler()函数,该函数的作用是当按钮被鼠标单击后,与中间按钮进行位置的切换,其原理如图9-12所示。

Flash CS4制作切换放大菜单效果,PS教程,思缘教程网

图9-12 clickHandler()函数原理图

(7)在clickHandler()函数中,首先取得被单击按钮的坐标位置(如步骤(6)中的第61和62行代码),当按钮被单击时,被单击按钮缓冲运动到container_mc容器的中间(也就是原点(0,0))时会缩放2倍(如步骤(6)中的第64行代码中的Tweener类方法),同时位于舞台中间的按钮会运动到被单击按钮的坐标位置(newX,newY),这样就会产生切换效果(如步骤(6)中的第65行代码),如图9-13所示,这里还通过container_mc.getChildAt(_length)方法来取得中间按钮,并通过69行代码中的swapChildren()方法来进行交换z轴顺序(也称深度)。

Flash CS4制作切换放大菜单效果,PS教程,思缘教程网

图9-13 按钮的切换效果

技术看板:深度设置

重新设置容器列表中对象所在的深度,可以使用显示对象容器.setChildIndex的方法来设置,下面列出几种最为常用的方法,用户可直接套用。

AS3代码

//(1):用于将“要显示的对象”进行置顶   
显示对象容器.setChildIndex(要显示的对象,要显示对象容器.numChildren-1)   
  
//(2):用于将“要显示的对象”进行置底   
显示对象容器.setChildIndex(要显示的对象,0)   
  
//(3):用于将“要显示的对象A”插入“显示对象B”之前   
var target:DisplayObject = 显示对象容器.getChildByName("显示对象B")   
显示对象容器.setChildIndex(显示对象A,显示对象容器.getChildIndex(target))   
  
  
//(3):用于将“要显示的对象A”插入“显示对象B”之后   
var target:DisplayObject = 显示对象容器.getChildByName("显示对象B")   
显示对象容器.setChildIndex(显示对象A,显示对象容器.getChildIndex(target)-1)