方法2:
1.a.swf取消自身的鼠标滚动监听事件, 添加滚动处理接口供JS调用, 例如wheelToFlash(value).
2.鼠标移入a.swf滚动区域的时候: 告知JS, 例如mouseIsInFlashWheelRange=true.
3.鼠标移出a.swf滚动区域的时候: 告知JS, 例如mouseIsInFlashWheelRange=false;
4.JS监听鼠标滚动事件, 在事件监听处理函数中我们需要做如下判断
Javascript代码:
代码如下:
if(mouseIsInFlashWheelRange==true)
{
/**调用a.swf提供的接口使a.swf模拟滚动*/
/**"flash"是html嵌入的a.swf的ID, value为html滚表滚动的值*/
document.getElementById("flashID").wheelToFlash(value);
/**阻止html页面鼠标事件的冒泡, 通常是event.preventDefault()*/
event.preventDefault();
}
else
{
/**处理html正常的滚动, 我们可以什么都不需要做*/
}
总结: 与方法1相比没有了wmode="window"的限制; Alt+Tab的问题仍然存在。
注意: 在写JS代码的时候我们需要注意兼容性的问题, 不同浏览器对鼠标事件的监听以及滚动值的获取均不相同!