flash动画:鼠标放上去图像慢慢变大,鼠标移走时图像慢慢缩小 失灵的有关问题

flash动画:鼠标放上去图像慢慢变大,鼠标移走时图像慢慢缩小 失灵的问题!
JScript code

        imgLoader.addEventListener(MouseEvent.MOUSE_OVER, mouseOverFun,false,4);
        imgLoader.addEventListener(MouseEvent.MOUSE_OUT, mouseOutFun, false, 3);
        
        private function mouseOverFun(event:MouseEvent):void {
            
            imgLoader.addEventListener(Event.ENTER_FRAME, enlarge, false, 2);
            
        }
        
        //鼠标移出时缩小
        private function mouseOutFun(event:MouseEvent):void {
            imgLoader.addEventListener(Event.ENTER_FRAME, deflate,false,1);
        }
        
        private function deflate(event:Event):void {
            if(imgLoader.width > currentWidth){
            imgLoader.width -= 2;
            imgLoader.height -= 2;
            }else
                imgLoader.removeEventListener(Event.ENTER_FRAME, deflate);
        }
        
        private function enlarge(event:Event):void {
            if (imgLoader.width < maxWidth){
                imgLoader.width += 2;
                imgLoader.height += 2;
            }else
                imgLoader.removeEventListener(Event.ENTER_FRAME, enlarge);
        }

上面是我我写的代码,大致功能就是当鼠标放在物体上时,图像一直增大到某一个值,当鼠标移开时图片一直减小到某一个值.现在功能大致实现了 但有一个很大的bug不知怎么解决 就是当图片在增大(减小)的过程中如果鼠标从图片上挪开的话(或者快速在图片上来回移动)接下来图片将无法在继续增大或者减小?这是怎么回事 望高手指点!

------解决方案--------------------
因为又触发了Over或Out事件的缘故
------解决方案--------------------
楼主不防加个状态锁(lock),当开始缩放时,就维持状态,直到操作完成。下面的我写的测试代码,请参考一下。Pic2zoom是元件类,该元件是个影片剪辑,里面是一张图片。
JScript code

package {
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    public class piczoom extends Sprite {
        private var pic:Pic2zoom;
        private var lock:Boolean=false;
        private var dir:Number=-1;
        public function piczoom() {
            pic=new Pic2zoom();
            pic.x=stage.stageWidth-pic.width/2;
            pic.y=stage.stageHeight-pic.height/2;
            pic.scaleX=0.5;
            pic.scaleY=0.5;
            stage.addChild(pic);
            pic.addEventListener(MouseEvent.MOUSE_OVER,changedir);
            pic.addEventListener(MouseEvent.MOUSE_OUT,changedir);
        }
        private function changedir(e:MouseEvent):void {
            if (! lock) {
                lock=true;
                dir=0-dir;
                pic.addEventListener(Event.ENTER_FRAME,zoom);
            }
        }
        private function zoom(e:Event):void {
            pic.scaleX+=dir*0.01;
            pic.scaleY+=dir*0.01;
            if (pic.scaleX>=1||pic.scaleY>=1||pic.scaleX<=0.5||pic.scaleY<=0.5) {
                pic.removeEventListener(Event.ENTER_FRAME,zoom);
                lock=false;
            }
        }
    }
}