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);
}
}
}
}
AS3 EaseSprite --- 简单的按钮,带鼠标经过时,缓动式的缩放大小的一个显示对象
最新推荐文章于 2020-08-18 11:47:35 发布