flash - wmode ="opaque"问题和 wmmode ="window"问题

标签 flash apache-flex z-index arcgis wmode

好的,首先我遇到了 2 个默认 wmode 为“window”的问题。我的网页导航菜单将位于我的 flex/flash 应用程序下方。另一个问题是在 Flash 应用程序中滚动时,整个页面都会滚动。

我将 wmode 更改为“不透明”,这解决了导航菜单的问题,因此现在它们显示在 Flash 应用程序上方。太好了,但现在我在 Flash 应用程序中根本没有滚动。

我意识到这是一个大问题,但我似乎找不到解决这两个(实际上是 2.5 个问题)这两个问题的解决方案。

我想 A) 让导航链接显示在 Flash 应用程序上方,这样它们就不会被隐藏; B) 允许在 Flash 应用程序内滚动;和 C) 如果鼠标悬停在 Flash 应用程序上,则阻止网页滚动。

如果你们有任何想法,那就太棒了。 :) 提前致谢。

最佳答案

我写的是什么意思:

wmode=transparent & wmode=opaque behave the same as far as mousewheel.

在大多数浏览器中,这两种模式都不会捕获 flash 中的 MOUSE_WHEEL 事件(我相信 IE 是唯一能够正确捕获 MOUSE_WHEEL 事件的浏览器)。

解决方案是通过 JavaScript 监听 MOUSE_WHEEL 事件:

//ie handles wmode=transparent correctly
//every other browser uses addEventListener
if ( !document.attachEvent )
{
  //console.log('attached');
  window.addEventListener('DOMMouseScroll', scrollListener, false);
  window.addEventListener('mousewheel', scrollListener, false);
}

scrollListener( e )
{
  var delta
  if ( e.wheelDelta )
  {
    delta = e.wheelDelta / 40;
  }
  else if ( e.detail )
  {
    delta = -e.detail;
  }
  //do stuff with delta
}

然后您需要使用 ExternalInterface.addCallback 为 JS 设置回调以提醒 flash 发生了 MOUSE_WHEEL 事件。

wmode=transparentwmode=opaque 也有其他鼠标事件的问题。

关于flash - wmode ="opaque"问题和 wmmode ="window"问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5477426/

相关文章:

html - 网页设计 : Navigatible Large Flash Background

java - 在运行时修改 AMF 响应 - 如何操作?

java - 启动 Derby 数据库失败

apache-flex - Flex 内存限制 - 如何配置

css - 为什么下拉菜单不显示在内容之上?

actionscript-3 - Flash AS3 多点触摸事件处理程序

flash - AS3 中的 A*(A 星)实现

javascript - 不会连接到 scriptcam 服务器

CSS 工具提示问题 - Span 隐藏在 Facebook 后面,如框和主体

css - Z-index 在 iframe IE8 和 IE7 中不起作用