### Flash脚本小实例:利用缓动类实现图片滚动点击放大效果 在深入解析这个Flash脚本小实例之前,我们先来了解下Flash及其相关概念。Adobe Flash是一款强大的动画创作和多媒体开发工具,广泛用于创建网页动画、视频游戏、应用程序等。随着版本更新,Flash AS3.0引入了更加强大的编程语言ActionScript 3.0,提供了更高效、面向对象的编程环境。 #### 缓动类在Flash中的应用 缓动类(Tween)是Flash AS3.0中一个重要的组成部分,用于实现平滑的动画效果。它能够帮助开发者控制对象在屏幕上的移动、缩放、旋转等,使动画更加自然流畅。在本实例中,缓动类被用来实现图片的滚动和点击放大效果,具体涉及到以下关键代码: ```actionscript // 导入必要的缓动类库 import fl.transitions.Tween; import fl.transitions.TweenEvent; import fl.transitions.easing.Regular; // 创建数组存储图片 var arrTupian:Array = []; // 初始化Tween类控制图片宽高 var tweenscaleX:Tween; var tweenscaleY:Tween; // 循环创建并处理图片 for (var i:int = 0; i < 8; i++) { var xiaotu:MovieClip = new Pic(); // Pic是库中的图片类 addChild(xiaotu); xiaotu.gotoAndStop(i + 1); xiaotu.width = 120; xiaotu.height = 100; xiaotu.x = xiaotu.width / 2 + i * (xiaotu.width + 10); xiaotu.y = 420; arrTupian.push(xiaotu); xiaotu.addEventListener(Event.ENTER_FRAME, dongf); // 添加移动帧频监听 } // 图片滚动处理函数 function dongf(e:Event):void { var mc:MovieClip = e.target; mc.x -= 6; if (mc.x < 0 - (xiaotu.width / 2 + 10)) { mc.x = xiaotu.width / 2 + 7 * (xiaotu.width + 10); } mc.buttonMode = true; mc.addEventListener(MouseEvent.MOUSE_OVER, overf); mc.addEventListener(MouseEvent.MOUSE_OUT, outf); } // 鼠标移过图片时停止移动并显示大图 function overf(e:Event):void { for (var i:int = 0; i < arrTupian.length; i++) { arrTupian[i].removeEventListener(Event.ENTER_FRAME, dongf); arrTupian[i].removeEventListener(MouseEvent.MOUSE_OVER, overf); } datu = new Pic(); datu.gotoAndStop(arrTupian.indexOf(e.target) + 1); addChild(datu); datu.x = stage.stageWidth / 2; datu.y = 200; tweenscaleX = new Tween(datu, "scaleX", Regular.easeOut, 1, 3, 0.5, true); tweenscaleY = new Tween(datu, "scaleY", Regular.easeOut, 1, 3, 0.5, true); } // 鼠标离开图片时恢复原状 function outf(e:Event):void { e.target.removeEventListener(MouseEvent.MOUSE_OVER, overf); tweenscaleX = new Tween(datu, "scaleX", Regular.easeOut, 3, 1, 0.5, true); tweenscaleY = new Tween(datu, "scaleY", Regular.easeOut, 3, 1, 0.5, true); tweenscaleX.addEventListener(TweenEvent.MOTION_FINISH, fishf); } // 缩放动画完成后的回调函数 function fishf(e:Event):void { // 可在此处添加额外的逻辑或清理操作 } ``` #### 代码解析与原理 1. **导入缓动类库**:首先导入`Tween`、`TweenEvent`和`Regular`三个类,其中`Tween`用于创建缓动动画,`TweenEvent`用于监听动画事件,`Regular`提供标准缓动效果。 2. **图片数组初始化**:通过循环创建多个`MovieClip`实例,并将它们添加到舞台上,同时放入数组`arrTupian`中,以便后续处理。 3. **图片滚动逻辑**:在`dongf`函数中,每帧更新图片位置,实现水平滚动效果。当图片移出屏幕左侧时,将其重置到最后一个位置,形成无限循环。 4. **鼠标事件监听**:`overf`和`outf`函数分别响应鼠标移过和移出事件。当鼠标移过图片时,所有图片停止滚动,并创建一个新的`MovieClip`实例(即大图),通过缓动动画放大;当鼠标移出时,恢复图片大小并重新启动滚动逻辑。 通过以上分析,我们可以看出,这个Flash脚本小实例巧妙地利用了缓动类来实现图片的动态展示和交互功能,既增强了用户体验,也展示了AS3.0的强大动画控制能力。
剩余63页未读,继续阅读
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助