【问题标题】:Flash Expandable Banner - Detect Mouse LeaveFlash 可扩展横幅 - 检测鼠标离开
【发布时间】:2012-08-04 16:31:43
【问题描述】:

我在 Flash 中制作了一个展开式横幅广告。一切都很棒,除了一件事。如何检测用户何时不再将鼠标悬停在 Flash 广告上?我尝试添加一个“命中区域”,可用于检测MOUSE_OUT。问题是,有一个视频播放,以及需要可点击的社交媒体按钮。如果我在这些上面放置一个点击区域,它们就不再是可点击的。如果我将点击区域放在按钮后面,当您将鼠标悬停在按钮上时,MOUSE_OUT 事件就会触发。

对于这种情况,最佳做法是什么?我还尝试在舞台对象上检测MOUSE_LEAVE,但是一旦部署在 HTML 页面上,这似乎无法正常工作。感谢您的帮助。

【问题讨论】:

  • 也许这个功能不可行?我见过的大多数这样的展开式 Flash 广告通常会保持展开状态,直到用户点击关闭按钮。大多数人会同意这一点吗?
  • 嗯不确定您是否可以在主容器上使用 roll_out 事件 topLevelSprite.addEventListener(MouseEvent.ROLL_OUT, buttonRollOutHandler);或者可能将其添加到舞台...另一种选择是在 div 上使用 ExternalInterface 和 javascript 方法来检测推出和回调到 flash

标签: actionscript-3 flash banner mouseout


【解决方案1】:

您可以尝试添加一个不断检查stage.mouseXstage.mouseYENTER_FRAME 事件。当鼠标位于 Flash 内容上时,这些值应该正确报告,并且当鼠标不再在舞台上时,将报告最后已知的鼠标坐标。但是,最后一个已知的鼠标坐标可能并不总是舞台的实际宽度或高度,因此您可能需要在其中添加一些容差。

例如,如果您的(展开的)Flash 内容宽度为 500 像素,则在 ENTER_FRAME 事件中,您可以检查 stage.mouseX 是小于 10 像素(鼠标向左移动)还是大于 490 像素(鼠标移动向右)并最小化 Flash 内容。重复高度,并根据需要调整公差值。

这应该会给你想要的效果。我能看到的唯一缺点是 ENTER_FRAME 事件的开销只是为了检查鼠标是否离开了内容,但我没有看到任何解决办法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    • 2015-09-03
    • 2011-10-24
    • 2017-12-06
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    相关资源
    最近更新 更多