【问题标题】:ActionScript 3 EventListener and Function with parameterActionScript 3 EventListener 和带参数的函数
【发布时间】:2017-10-01 20:03:40
【问题描述】:

所以我正在 Adob​​e Animate 中开发一个项目,它是一个交互式地图。

我想要做的是当我将鼠标悬停在关键区域时弹出淡入淡出。例如,一个弹出窗口解释了可以在回收区进行回收的内容。由于有多个回收位置,我创建了两个函数,一个隐藏弹出窗口,另一个显示它,并使用 switch case 来确定哪个回收位置正在发生鼠标悬停事件。

例如,show 事件是这样设置的:

function showShred(event: MouseEvent, shredNum: int): void {
switch (shredNum) {
    case 1:
        TransitionManager.start(shreddingInfo_flr3_1, {
            type: Fade,
            direction: Transition.IN,
            duration: 3,
            easing: Strong.easeOut
        });
        break;
    case 2:
        TransitionManager.start(shreddingInfo_flr3_2, {
            type: Fade,
            direction: Transition.IN,
            duration: 3,
            easing: Strong.easeOut
        });
        break;
    case 3:
        TransitionManager.start(shreddingInfo_flr3_3, {
            type: Fade,
            direction: Transition.IN,
            duration: 3,
            easing: Strong.easeOut
        });
        break;
}
}

所以我添加了事件侦听器,它们只是导致错误并且似乎不喜欢该函数接受参数。

shredBtn_Flr3_1.addEventListener(MouseEvent.MOUSE_OVER, showShred(1));

我对 ActionScript 3.0 很不熟悉,因此非常感谢任何帮助和提示!

【问题讨论】:

    标签: javascript jquery actionscript-3 flash actionscript


    【解决方案1】:

    错误 #1:事件处理程序采用唯一参数:事件对象。

    错误 #2:您要订阅事件的方法,showShred(1) 立即调用该方法并返回 null,这不是有效的事件处理程序.

    Event 对象包含对事件源的引用。在您的情况下,您可以通过以下方式进行操作:

    shredBtn_Flr3_1.addEventListener(MouseEvent.MOUSE_OVER, showShred);
    shredBtn_Flr3_2.addEventListener(MouseEvent.MOUSE_OVER, showShred);
    shredBtn_Flr3_3.addEventListener(MouseEvent.MOUSE_OVER, showShred);
    
    function showShred(e:MouseEvent): void
    {
        switch (e.currentTarget)
        {
            case shredBtn_Flr3_1:
                fadeIn(shreddingInfo_flr3_1);
                break;
    
            case shredBtn_Flr3_2:
                fadeIn(shreddingInfo_flr3_2);
                break;
    
            case shredBtn_Flr3_3:
                fadeIn(shreddingInfo_flr3_3);
                break;
        }
    }
    
    function fadeIn(target:DisplayObject):void
    {
        TransitionManager.start(target, {
            type: Fade,
            direction: Transition.IN,
            duration: 3,
            easing: Strong.easeOut
        });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-21
      • 2010-09-26
      • 2018-07-23
      • 1970-01-01
      • 1970-01-01
      • 2013-01-09
      • 2011-11-28
      • 2019-07-08
      相关资源
      最近更新 更多