簡體   English   中英

AS3-用鼠標單擊添加和刪除onenterframe EventListener

[英]AS3 - add and remove an onenterframe EventListener, with a mouse click

嘗試添加一個EventListener,並通過單擊鼠標刪除一個EventListener。 添加一項有效,並且將其無效。 在Buton上是gall_mc,在off上是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 docs

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM