首页 > 代码库 > as3 阻止后续侦听器

as3 阻止后续侦听器

public class Test1 extends Sprite    {        private var spr:Sprite;        private var spr2:Sprite;        public function Test1()        {            spr = new Sprite();            spr.graphics.beginFill(0xff0000,1);            spr.graphics.drawCircle(100,100,10);            spr.graphics.endFill();            this.addChild(spr);            spr.addEventListener(MouseEvent.CLICK,_hander);            spr.addEventListener(MouseEvent.CLICK,_hander);            spr.addEventListener(MouseEvent.CLICK,_hander);            spr.addEventListener(MouseEvent.CLICK,_hander);                        spr2 = new Sprite();            spr2.graphics.beginFill(0xff0000,1);            spr2.graphics.drawCircle(200,100,10);            spr2.graphics.endFill();            this.addChild(spr2);            spr2.addEventListener(MouseEvent.CLICK,_hander2);        }        private function _hander(evt:MouseEvent):void        {            trace("click");        }        private function _hander2(evt:MouseEvent):void        {            trace("click2");            spr.removeEventListener(MouseEvent.CLICK,_hander);            //spr一的侦听器函数不触发了        }    }

    public class Test1 extends Sprite    {        private var spr:Sprite;        private var spr2:Sprite;        public function Test1()        {            spr = new Sprite();            spr.graphics.beginFill(0xff0000,1);            spr.graphics.drawCircle(100,100,10);            spr.graphics.endFill();            this.addChild(spr);            spr.addEventListener(MouseEvent.CLICK,_hander);            spr.addEventListener(MouseEvent.CLICK,_hander);                        spr2 = new Sprite();            spr2.graphics.beginFill(0xff0000,1);            spr2.graphics.drawCircle(200,100,10);            spr2.graphics.endFill();            this.addChild(spr2);            spr2.addEventListener(MouseEvent.CLICK,_hander2);                        this.stage.addEventListener(MouseEvent.CLICK,_stageClick);        }        private function _hander(evt:MouseEvent):void        {            trace("click");            //舞台将不会收到click事件            evt.stopImmediatePropagation();        }        private function _hander2(evt:MouseEvent):void        {            trace("click2");            //spr.removeEventListener(MouseEvent.CLICK,_hander);            //spr一的侦听器函数不触发了        }        private function _stageClick(evt:MouseEvent):void        {            trace("stage_click");        }    }

 

 

as3 阻止后续侦听器