AS3 EaseSprite --- 简单的按钮,带鼠标经过时,缓动式的缩放大小的一个显示对象

来源:互联网 发布:淘宝偏远地区 编辑:程序博客网 时间:2024/05/17 23:55
package{import flash.display.Graphics;import flash.display.MovieClip;import flash.display.Sprite;import flash.events.Event;import flash.events.MouseEvent;/** * 带有缓动动画的按钮 * @author Jave.Lin */public class EaseSprite extends Sprite{private var _easing:Number=0.3;protected var _bigScaleX:Number=1.5;protected var _bigScaleY:Number=1.5;private var _isMouseOver:Boolean=false;public function EaseSprite(){if(stage){addToStage();}else this.addEventListener(Event.ADDED_TO_STAGE,addToStage);}private function addToStage(e:Event = null):void{buttonMode=true;addEventListener(MouseEvent.MOUSE_OVER,mouseOver);addEventListener(MouseEvent.MOUSE_OUT,mouseOut);}private function onEnterFrameHandler(e:Event):void{var tx:Number;var targetScale:Number;if(_isMouseOver){targetScale=_bigScaleX;}else{targetScale=1;}tx=targetScale-scaleX;scaleX+=tx*_easing;scaleY+=tx*_easing;if(Math.abs(tx)<0.01){scaleX=targetScale;scaleY=targetScale;removeEventListener(Event.ENTER_FRAME,onEnterFrameHandler);}}private function mouseOver(e:MouseEvent):void{_isMouseOver=true;if(!hasEventListener(Event.ENTER_FRAME)){addEventListener(Event.ENTER_FRAME,onEnterFrameHandler);}}private function mouseOut(e:MouseEvent):void{_isMouseOver=false;if(!hasEventListener(Event.ENTER_FRAME)){addEventListener(Event.ENTER_FRAME,onEnterFrameHandler);}}}}

原创粉丝点击