gpt4 book ai didi

javascript - ActionScript 3 EventListener 和带有参数的函数

转载 作者:行者123 更新时间:2023-11-29 19:04:48 24 4
gpt4 key购买 nike

所以我正在使用 Adob​​e Animate 开发一个项目,它是一个交互式 map 。

我想要做的是当我将鼠标悬停在关键区域上时让弹出窗口淡入。例如,一个弹出窗口,解释什么可以在回收区进行回收。由于有多个回收位置,我创建了两个函数,一个用于隐藏弹出窗口,另一个用于显示它,并且我使用 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 非常陌生,因此非常感谢任何帮助和提示!

最佳答案

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

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

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

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
});
}

关于javascript - ActionScript 3 EventListener 和带有参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43769375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com