首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Flash >

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

2012-03-02 
flash动画:鼠标放上去图像慢慢变大,鼠标移走时图像慢慢缩小 失灵的问题!JScript codeimgLoader.addEventLi

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;            }        }    }} 

热点排行