FLASH中鼠标悬停在某按钮上显示某个图层内容,移开后该图层消失.

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FLASH中鼠标悬停在某按钮上显示某个图层内容,移开后该图层消失.相关的知识,希望对你有一定的参考价值。

我想在flash中图层1上添加几个按钮,比如bt1,bt2.
鼠标悬停在bt1上就显示图层2和图层1内容,在bt2上悬停就显示图层3和图层1的内容,图层2消失,如果鼠标没停留在任何按钮上,则只显示图层1的能容,试着写了如下代码,但是提示报错.

bt1.on(rollOver) = function()tc1._visible = false;;
bt1.on(rollOut) = function()tc1._visible = true;

bt1和tc1分别为按钮1和图层2的实例名,报错为:

**错误** 场景=场景 1, 图层=图层 1, 帧=1:第 1 行: '.' 运算符后应该有字段名称。
bt1.on(rollOver) = function()tc1._visible = false;;

**错误** 场景=场景 1, 图层=图层 1, 帧=1:第 2 行: '.' 运算符后应该有字段名称。
bt1.on(rollOut) = function()tc1._visible = true;

ActionScript 错误总数:2 报错:2

求高手指导.

参考技术A 你到底用的AS3还是AS2啊

AS2,如果是写在帧上应该是
btn1.onRollOver = function()

//代码实现
;

如果你写在原件上应该是
on(rollOver)
//代码实现


AS3应该写在帧上
btn1.addEventListener(MouseEvent.ROLL_OVER,
function(e:MouseEvent)
//代码实现
);追问

flash不是太会,我的意思就是.有一个图层是一直显示的,叫图层1,其余的就是需要显示的图层,图层1上有一些按钮.
就是想实现,鼠标悬停在一个按钮上,就把某一个图层和图层1一起显示出现,鼠标移开某图层消失,图层1依旧在.

追答

因为AS3和AS2的元件属性名和事件写法都有很大区别,你必须看你是AS几的代码。

前面我已经写明了不同版本写在不同地方的实现方式,使用到的事件就2个:rollOver和rollOut,分别是鼠标覆上和移开的事件;另外你要清楚一个问题,图层是不可能隐藏起来的,图层只是时间轴上的,你要隐藏只有隐藏图层上的元件,给元件一个实例名,调用其visible / _visible 来调整其隐藏或者显示

要想知道当前文挡使用的脚本版本,在菜单-》文件-》发布设置里,swf项可以看到脚本类型,Action Script 2.0或者3.0

本回答被提问者采纳
参考技术B

代码写帧上:

tc1._visble=false
//先使实例名为tc1的影片剪辑不可见
bt1.onRollOver=function()
tc1._visble=true
//鼠标停在实例名为bt1的按钮上时,tc1可见。

bt1.onRollOut=function()
tc1._visble=false
//鼠标离开实例名为bt1的按钮上时,tc1不可见。

悬停、鼠标悬停和鼠标移出

【中文标题】悬停、鼠标悬停和鼠标移出【英文标题】:Hover, mouseover and mouse out 【发布时间】:2011-05-26 16:33:45 【问题描述】:

我正在学习和使用 jQuery,并希望为某些元素显示一个删除图标。

我有一个外部主 div,其中包含元素的包装器数量。在元素包装器内部,我想在用户将鼠标悬停在元素包装器上时显示一个删除图标,并在用户移出元素包装器时将其删除。

使用mouseovermouseout,我可以显示和删除图标,但是只要我将鼠标移到删除图标上,它就会被删除,因为它会触发元素包装器的mouseout 事件。我做错了什么?

【问题讨论】:

在“doh!”中片刻,我将缺少的 CSS 答案添加到我的答案中。你实际上并没有说你不得不用 JavaScript 来做这件事,对吗? :-) 但是还有一个 JavaScript 选项(如果你想要 IE6 支持,你将需要它)。 【参考方案1】:

两种选择

    CSS 的 :hover 伪类(但前提是您不必支持 IE6) mouseentermouseleave 事件

CSS 的 :hover 伪类

如果您不需要 IE6 支持,您可以使用 :hover 伪类让浏览器完成所有工作:

/* Don't show `child` elements inside `parent` elements...*/
parent child 
    display: none;


/* ...unless the `parent` element is being hovered over */
parent:hover child 
    display: block; /* or inline-block or whatever */

Live example

但是,IE6 不支持 :hover 伪类,a 元素除外。 IE7+ 和所有最近的其他浏览器都可以。

mouseentermouseleave 事件

如果 CSS 不适合您,您正在寻找 mouseentermouseleave 事件,它们是 IE 特定的,但在所有其他浏览器上由 jQuery 模拟。 jQuery 甚至还有一个方便的函数hover,用于将处理程序连接到这两个事件,这样您就可以轻松完成您想要做的事情。

$(...your parent element...).hover(
    function() 
        // Called when the mouse enters the element
    ,
    function() 
        // Called when the mouse leaves the element
    
 );

这是一个完整的live example:

HTML:

<div>Hover over me <span class='del'>[X]</span></div>
<div>And me <span class='del'>[X]</span></div>
<div>And me <span class='del'>[X]</span></div>

使用 jQuery 的 JavaScript:

$('div').hover(
  function() 
    $(this).find('span.del').show();
  ,
  function() 
    $(this).find('span.del').hide();
  
);

mouseovermouseout 遇到问题的原因是它们冒泡,因此父元素上的 mouseout 处理程序从底层元素中看到冒泡的 mouseout当您的鼠标移动到删除元素时。 mouseentermouseleave 不会冒泡,所以他们没有这个问题。

【讨论】:

嘿,谢谢,实际上我已经使用 jquery 使用了这种方法,但就我而言,我想在悬停时附加图标。使用上述方法,当我将鼠标移到图标上时,多个图标会添加到元素包装器中。如何阻止这种情况? @KutaPHP:根据您的描述,听起来您尝试使用mouseovermouseout 而不是mouseentermouseleave。同样,它们是不同的事件,它们的行为也不同(请参阅上面答案末尾的注释)。但如果你真的使用mouseentermouseleave,听起来你并没有删除mouseleave 上的元素。如果你这样做,效果很好:jsbin.com/umalu4/2 但是添加到 DOM 和从 DOM 中删除是比显示/隐藏更重的操作,建议显示/隐藏。 嘿,再次感谢...我修复了这个...我直接添加图像,我将它作为背景添加到跨度中,我做到了。 :)【参考方案2】:

您是否尝试过改用 mouseentermouseleave 事件?

【讨论】:

【参考方案3】:

您可以在 jQuery 事件 onmouseover 和 onmouseout 上应用样式。当用户将鼠标悬停在菜单上时,此事件将触发,您可以在那里设置效果。

<style type="text/css">
        .menu 
            background-color: #CDDC39;
            list-style: none;
            margin: 100px;
            padding: 0;
            width: 10em;
        
            .menu li 
               margin: 0;
               padding: 5px;
           
            .menu a 
            color: #333;
           
    </style>
    <ul class="menu">
        <li onmouseover="this.style.backgroundColor='#F44336';" onmouseout="this.style.backgroundColor='transparent';" style="background-color: transparent;">
            <a href="http://www.infinetsoft.com/">learn dot net skills</a>
        </li>
        <li onmouseover="this.style.backgroundColor='#F44336';" onmouseout="this.style.backgroundColor='transparent';" style="background-color: transparent;">
            <a href="http://www.infinetsoft.com/htmltry">Work out html</a>
        </li>
        <li onmouseover="this.style.backgroundColor='#F44336';" onmouseout="this.style.backgroundColor='transparent';" style="background-color: transparent;">
            <a href="http://www.infinetsoft.com/Category/JQuery/9/1">jQuery tutorials</a>
        </li>
    </ul>

for more details

【讨论】:

以上是关于FLASH中鼠标悬停在某按钮上显示某个图层内容,移开后该图层消失.的主要内容,如果未能解决你的问题,请参考以下文章

html如何实现鼠标悬停显示文字,鼠标移走文字消失。

HTML 怎么让鼠标悬停显示,移出隐藏 如下

html如何实现鼠标悬停显示文字,鼠标移走文字消失。

在鼠标悬停时突出显示L.divIcon或在Leaflet地图中以编程方式突出显示

display属性 鼠标悬停时显示隐藏内容,

更改嵌套 div 内鼠标悬停时的图层颜色