AS3-使用鼠标单击添加并删除OnenterFrame EventListener



尝试添加eventlistener,然后单击鼠标删除EventListener。添加一件作品,它不起作用。在buton上是gall_mc,关闭是gall_close_mc

gall_mc.addEventListener(MouseEvent.CLICK, scroller);
function scroller(event:MouseEvent):void
{
    var verticalCenter:Number = stage.stageHeight / 2;
    var limit:Number = stage.stageHeight - galleryHolder.height;
    var speed:Number = 0.1;
    var scrollY:Number = 0;
    stage.addEventListener(Event.ENTER_FRAME, scrollContent);
    function scrollContent(e:Event):void
    {
        scrollY =  -  speed * (mouseY - verticalCenter);
        galleryHolder.y +=  scrollY;
        if (galleryHolder.y>0) { galleryHolder.y= 0;}
        else if (galleryHolder.y< limit) { galleryHolder.y= limit; }
    }
    function eventHandler(event:Event):void
    {
    event.currentTarget.removeEventListener(Event.ENTER_FRAME, MouseEvent.CLICK.gall_close_mc);     
    }

}
========

感谢net.uk.sweet,我合并了我们的代码,它起作用了!

gall_mc.addEventListener(MouseEvent.CLICK, scroller);
function scroller(event:MouseEvent):void
{
    var verticalCenter:Number = stage.stageHeight / 2;
    var limit:Number = stage.stageHeight - galleryHolder.height;
    var speed:Number = 0.1;
    var scrollY:Number = 0;
    stage.addEventListener(Event.ENTER_FRAME, scrollContent);
    function scrollContent(e:Event):void
    {
        scrollY =  -  speed * (mouseY - verticalCenter);
        galleryHolder.y +=  scrollY;
    }
    gall_close_mc.addEventListener(MouseEvent.CLICK, closeClickHandler);
    function closeClickHandler(event:MouseEvent):void
    {
        stage.removeEventListener(Event.ENTER_FRAME, scrollContent);
    }

}
gall_close_mc.addEventListener(MouseEvent.CLICK, closeClickHandler);
function closeClickHandler(event:MouseEvent):void 
{
     // removeEventListener method params are :- 
     // 1. the event name, 2. the handler you assigned to it
     stage.removeEventListener(Event.ENTER_FRAME, closeClickHandler);
}

请参阅 EventDispatcher文档。

最新更新