Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
设置不透明度时,Flash在HTML元素下接收鼠标事件_Html_Css_Flash_Mouseevent_Opacity - Fatal编程技术网

设置不透明度时,Flash在HTML元素下接收鼠标事件

设置不透明度时,Flash在HTML元素下接收鼠标事件,html,css,flash,mouseevent,opacity,Html,Css,Flash,Mouseevent,Opacity,我有一个带有Flash对象的HTML文档,上面有一个绝对定位的HTML元素。如果我将HTML元素的opacityCSS属性设置为小于1的任何值,那么Flash对象(实际上被覆盖)将接收鼠标事件。纯HTML元素无法重现此问题。此外,Flash只接收悬停事件,因此我无法单击图层下方 我把一本书放在网上 我在Mac和Windows的Firefox3.6、Safari4.0和Chrome5.0中都有这种行为。已安装Flash插件版本10 这是一个bug还是正常和预期的行为?如果是后者,那么当Flash被

我有一个带有Flash对象的HTML文档,上面有一个绝对定位的HTML元素。如果我将HTML元素的
opacity
CSS属性设置为小于1的任何值,那么Flash对象(实际上被覆盖)将接收鼠标事件。纯HTML元素无法重现此问题。此外,Flash只接收悬停事件,因此我无法单击图层下方

我把一本书放在网上

我在Mac和Windows的Firefox3.6、Safari4.0和Chrome5.0中都有这种行为。已安装Flash插件版本10


这是一个bug还是正常和预期的行为?如果是后者,那么当Flash被半透明层覆盖时,我如何防止它接收事件?

从演示中我可以看到,Flash对象仅在鼠标进入左面板时保留悬停事件-一旦越过左面板,Flash对象不再接收悬停事件,否则为“巴西”例如,弹出窗口将继续跟随鼠标。 这种行为似乎是因为鼠标没有正确地“离开”flash对象。
如果你不介意我问,为什么你的地图被左面板部分遮住了?

从你的演示中我可以看到,当鼠标进入左面板时,Flash对象只保留悬停事件-一旦越过左面板,Flash对象不再接收悬停事件,否则会弹出“巴西”弹出窗口,例如,将继续跟随鼠标。 这种行为似乎是因为鼠标没有正确地“离开”flash对象。
如果你不介意我问你,为什么你的地图被左面板部分遮住了?

事件。鼠标离开舞台。每当鼠标离开舞台时,就会触发此操作(将鼠标悬停在另一个html元素上会触发此操作)。然后,您可以将悬停状态从任何不应该具有悬停状态的对象中删除。

侦听
事件。鼠标离开舞台上的
。每当鼠标离开舞台时,就会触发此操作(将鼠标悬停在另一个html元素上会触发此操作)。然后,您可以从任何不应该具有悬停状态的内容中删除悬停状态。

非常有趣的问题,我搜索了很多地方,只找到了Actionscript解决方案。我甚至在本地复制了这个页面,并尝试在flash和面板之间放置砖墙,但flash总是对鼠标事件做出响应。不幸的是,我唯一的解决办法是在面板出现在闪光灯上方时,用图像移动/替换闪光灯,我希望您需要一个覆盖整个地图的面板。如果你只是有一点导航,可以在一些闪光灯上滑动,那么用图像替换它可能会被证明是回避的。下面是使用jquery的代码,这是我所能想到的最好的,尽管当你从面板出来时会有一点眨眼

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $(".panel").mouseover(function() {
        $("#google-visualization-geomap-0").css({'position' : 'absolute', 'left' : '-999em'});
    });
    $(".panel").mouseout(function() {
        $("#google-visualization-geomap-0").css({'position' : 'static', 'left' : '0'});
    });
});
</script>

$(文档).ready(函数(){
$(“.panel”).mouseover(函数(){
$(#google-visualization-geomap-0”).css({'position':'absolute','left':'-999em'});
});
$(“.panel”).mouseout(函数(){
$(#google-visualization-geomap-0”).css({'position':'static','left':'0'});
});
});

希望这能有所帮助。

非常有趣的问题,我搜索了很多地方,只找到了Actionscript解决方案。我甚至在本地复制了这个页面,并尝试在flash和面板之间放置砖墙,但flash总是对鼠标事件做出响应。不幸的是,我唯一的解决办法是在面板出现在闪光灯上方时,用图像移动/替换闪光灯,我希望您需要一个覆盖整个地图的面板。如果你只是有一点导航,可以在一些闪光灯上滑动,那么用图像替换它可能会被证明是回避的。下面是使用jquery的代码,这是我所能想到的最好的,尽管当你从面板出来时会有一点眨眼

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $(".panel").mouseover(function() {
        $("#google-visualization-geomap-0").css({'position' : 'absolute', 'left' : '-999em'});
    });
    $(".panel").mouseout(function() {
        $("#google-visualization-geomap-0").css({'position' : 'static', 'left' : '0'});
    });
});
</script>

$(文档).ready(函数(){
$(“.panel”).mouseover(函数(){
$(#google-visualization-geomap-0”).css({'position':'absolute','left':'-999em'});
});
$(“.panel”).mouseout(函数(){
$(#google-visualization-geomap-0”).css({'position':'static','left':'0'});
});
});
希望这有点帮助。

重力子

我也有同样的问题,下拉菜单与我编程的flash片段重叠。听起来你找到了一些ActionScript解决方案?如有任何意见,将不胜感激

我测试了
事件。鼠标离开
侦听器,不幸的是,它无法区分鼠标直接在swf上和鼠标在swf上时在菜单上

谢谢


更新:

所以我解决了这个问题,在执行javscript变量的滚动效果之前,我强迫我的Flash片段检查它

要了解更多关于swf/js通信的信息,请查看以下内容:

或者看看我是如何应用它的,请看下面:

动作脚本:

import flash.external.ExternalInterface;
private var navOver:Boolean;
private function onPackOver(event:MouseEvent){
    //Establish if Nav is on by grabbing js variable.
    navOver = ExternalInterface.call("navOnStatus");
    if (!navOver){
    // mouse over effects
    }
}
Javascript:

//navOn Variable is changed to true when mouse if over the nav, and false when it is not;
var navOn = false;
function navOnStatus(){
return navOn;
}
重力子

我也有同样的问题,下拉菜单与我编程的flash片段重叠。听起来你找到了一些ActionScript解决方案?如有任何意见,将不胜感激

我测试了
事件。鼠标离开
侦听器,不幸的是,它无法区分鼠标直接在swf上和鼠标在swf上时在菜单上

谢谢


更新:

所以我解决了这个问题,在执行javscript变量的滚动效果之前,我强迫我的Flash片段检查它

要了解更多关于swf/js通信的信息,请查看以下内容:

或者看看我是如何应用它的,请看下面:

动作脚本:

import flash.external.ExternalInterface;
private var navOver:Boolean;
private function onPackOver(event:MouseEvent){
    //Establish if Nav is on by grabbing js variable.
    navOver = ExternalInterface.call("navOnStatus");
    if (!navOver){
    // mouse over effects
    }
}
Javascript:

//navOn Variable is changed to true when mouse if over the nav, and false when it is not;
var navOn = false;
function navOnStatus(){
return navOn;
}

也许这应该被认为是一个浏览器错误

至于谷歌Chrome 5.0.375.99和苹果Safari 5.0(6533.16),以及Flash Player 10.1 r53