2011-06-29 48 views
0

我有一个html/flex应用程序加载在iframe中,并且wmode设置为“不透明”。我将'mousemove'监听器附加到flex应用程序文档和父文档中。一旦我在iframe的flex部分打开鼠标并移动鼠标,我可以看到iframe中的日志。但是,当我在父项中移动鼠标时,我没有看到来自父项的日志。但是,如果我对iframe的html部分感兴趣,我可以从iframe和parent都看到日志。Firefox flash wmode = opaque iframe问题

是否有解决此问题的方法?

在Firefox 4/5中报告了相同类型的错误,该错误会中断HTML部分。访问 https://bugzilla.mozilla.org/show_bug.cgi?id=625313

有关如何解决此问题的任何想法?

回答

0

听起来好像flash窗口捕捉拖放场景中典型的鼠标事件。如果Flash代码试图跟踪拖动,那么它需要做这个捕获。我想知道是否有一种方法可以将Flash应用程序/对象配置为仅获得鼠标点击而不是鼠标拖动事件,因此当鼠标移动到鼠标时,正常的鼠标事件将流向鼠标下的任何对象(事件发生在flash对象)。我对Flash库一无所知,但在Google搜索中,我确实看到它具有.startDrag()和.stopDrag()。这听起来像你需要确保startDrag()不会被鼠标调用。

+0

不,我甚至没有调用startDrag()方法。由于窗口模式设置为不透明,JavaScript还会收到mousedown事件,该事件通过mousemove事件显示光标后面的图像。我猜想iframe不断收到mousemove事件的原因是因为鼠标被flash捕获。我尝试手动调度mouseout和mouseleave事件,但没有运气。 – Nish

+0

闪光灯环境中的某些东西是在鼠标下方捕捉鼠标。 – jfriend00

+0

是的,我也这么认为。我试过event.preventDefault()方法,但没有运气......啊 – Nish