鼠标事件点击问题

Posted

技术标签:

【中文标题】鼠标事件点击问题【英文标题】:Mouse Event Click Problems 【发布时间】:2014-12-13 05:14:52 【问题描述】:

当您单击 ageImg 按钮(swf 中的粉红色图像)时,它会调用下一个函数,该函数应该隐藏所有其他图像并将年龄歧视词移到舞台上,但由于某种原因,它在一秒钟后消失了空白,ageFlash 函数再次启动,导致整个动画从头开始。我不知道它为什么会循环。

[LINK TO SWF FILE]

import com.greensock.TweenLite;
import com.greensock.TimelineLite;
import com.greensock.plugins.*;
import flash.events.MouseEvent;

var ageismTimeline:TimelineLite = new TimelineLite();

       function init():void
            ageFlash();
            ageImg.ageism.visible=false;
            racImg.racism.visible=false;
            hatImg.hate.visible=false;
            sexImg.sexism.visible=false;
         


        function ageFlash():void
            ageImg.visible=false;
            ageImg.buttonMode = true;
            ageImg.addEventListener(MouseEvent.CLICK, stopPicLoop);
            TweenLite.delayedCall(1,racFlash);
         

         function racFlash():void
            racImg.visible=false;
            TweenLite.delayedCall(1,hatFlash);
         

         function hatFlash():void
            hatImg.visible=false;
            TweenLite.delayedCall(1,sexFlash);
         

         function sexFlash():void
            TweenLite.delayedCall(1,ageFlash);
            ageImg.visible=true;
            racImg.visible=true;
            hatImg.visible=true;
         

         function stopPicLoop(event:MouseEvent):void
                switch (event.type) 

                       case "click":

                          trace(event.type);
                              ageAni();

                              break;

                       case 2:

                              break;

                       case 3:

                              break;

                
          

          function ageAni():void
            racImg.visible=false;
            hatImg.visible=false;
            sexImg.visible=false;
            ageImg.visible=true;
            ageImg.ageism.visible=true;
            ageismTimeline.from(ageImg.ageism,.5,y:stage.stageHeight);

            trace('ageism');
         
init();

【问题讨论】:

【参考方案1】:

您需要终止对您在ageFlash 方法中设置的racFlash 方法的延迟调用,否则您的代码将继续正常运行。您可以使用TweenLite.killDelayedCallsTo 方法来执行此操作(请参阅documentation):

function ageAni():void
    racImg.visible=false;
    hatImg.visible=false;
    sexImg.visible=false;
    ageImg.visible=true;
    ageImg.ageism.visible=true;

    TweenLite.killDelayedCallsTo(racFlash); // kill the delayed call
    ageismTimeline.from(ageImg.ageism,.5,y:stage.stageHeight);

    trace('ageism');
 

【讨论】:

以上是关于鼠标事件点击问题的主要内容,如果未能解决你的问题,请参考以下文章

QT如何获取窗口外的鼠标点击事件,或者鼠标坐标

Java JTable 添加了一个键盘事件,和鼠标点击事件的监听,如何在我键盘事件起作用时,让鼠标事件失效

鼠标的点击事件

js获取鼠标点击事件的相对位置

js获取鼠标点击事件的相对位置

js获取鼠标点击事件的相对位置