在电影中所有按钮的翻转时播放声音

时间:2015-05-09 13:08:04

标签: actionscript-3 flash user-interface audio rollover

我认为这是一件非常基本的事情,但我已经将自己搜索到了一个角落。我只想在每次悬停按钮类型元素时播放声音,无论按钮的位置,生根,父级,名称,实例名称等等。

声音文件在库中,带有类/链接“sroll”(声音翻转),我使用以下方法播放所有其他声音:

MovieClip(root).audio_channel_c = MovieClip(root).snd8.play(0,1);

在我看来,我正在寻找以下内容:

public button.eventlistener(MouseEvent.ROLL_OVER, function(){
    MovieClip(root).audio_channel_c = MovieClip(root).snd10.play(0,1);
});

我在AS3工作

2 个答案:

答案 0 :(得分:0)

经过多次搜索后,我找到了一种相当粗略的方法来做到这一点。听众在每个像素移动时拾取光标下的内容。如果光标下的像素是对象类的SimpleButton,则它确定鼠标是否仍然在已经输入的按钮上移动。如果它是一个新鲜的输入它痕迹。

每次光标进入按钮时结果都是跟踪,但是当您滚动按钮时则不会跟踪。它也适用于整个阶段中每个按钮的每个实例。

import flash.events.MouseEvent;
import flash.display.SimpleButton;
import flash.utils.getQualifiedClassName;

function getClass(obj:Object):Class {
    return Class(getDefinitionByName(getQualifiedClassName(obj)));
}

var last_button_to_mouse = "";

stage.addEventListener(MouseEvent.MOUSE_MOVE, handle_custom_event, true);
function handle_custom_event(e:Event):void
{
    if(getQualifiedClassName(e.target)!="flash.display::SimpleButton"){
        last_button_to_mouse = ""
    }

    if(getQualifiedClassName(e.target)=="flash.display::SimpleButton" && (e.target.name != last_button_to_mouse)){
        last_button_to_mouse = e.target.name;

        trace("Place your script here for when the mouse enters any button on the stage");

    }
}

答案 1 :(得分:0)

另一种选择,因为我完全是白痴,并且无法相信我没有在网上看到明确的答案,如果所有的按钮都是一个核心按钮的实例(就像我的一样)当你点击了" OVER"框架属性为您提供了应该发出什么声音的选项....