javascript - 在 Adob​​e AIR HTML 应用程序中悬停时播放声音

标签 javascript jquery actionscript-3 flash air

我正在制作一个基于 HTML 的 Adob​​e AIR 应用程序,当用户将鼠标悬停在链接上时,我想在其中播放哔声。 mouseenter 事件由 jQuery 处理,然后调用一个函数。对于 Web,它使用 Web Audio API(由 Howl.js 提供支持),但由于 AIR 不支持该 API,我回退到使用 Flash API。

我目前拥有的是:

// if Adobe AIR
if (window.runtime){
            var myChannel = new window.runtime.flash.media.SoundChannel();
            var beep;
            $('ul.menu a').on('mouseenter', function(){
                // stop all sounds... (should I be stopping all sounds though?)
                window.runtime.flash.media.SoundMixer.stopAll();
                // set beep as a new sound
                beep = new window.runtime.flash.media.Sound();
                // load mp3
                beep.load(new URLRequest('./assets/beep.mp3'));
                // once file has loaded
                beep.addEventListener(air.Event.COMPLETE, function(){
                    myChannel = beep.play();
                });
            });

// we're running in the browser
} else {

    var sound = new Howl({
      urls: ['./assets/beep.mp3', './assets/beep.ogg']
    });

    $('ul.menu a').on('mouseenter', function(){                 
        sound.play();
    });

}

但它不起作用...我做错了什么?

最佳答案

这个有效:

var myChannel = new window.runtime.flash.media.SoundChannel();
var beep;
$('a').on('mouseenter', function(){

    // stop all sounds... (should I be stopping all sounds though?)
    window.runtime.flash.media.SoundMixer.stopAll();
    // set beep as a new sound
    beep = new window.runtime.flash.media.Sound();
    // load mp3
    beep.load(new air.URLRequest('./assets/beep.mp3'));

    // once file has loaded
    beep.addEventListener(air.Event.COMPLETE, function(){
        myChannel = beep.play();
    });
});

但是你不需要 myChannel 并且可以调用 beep.play();

事实上你可以用三行来完成:

var beep = new air.Sound();
beep.load(new air.URLRequest('./assets/beep.mp3'));
beep.play();

关于javascript - 在 Adob​​e AIR HTML 应用程序中悬停时播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24576277/

相关文章:

javascript - 提及后返回消息

javascript - 作为对象属性的回调

javascript - Meteor:循环模板的模板级别订阅或所有订阅完成时

apache-flex - 是否可以在ActionScript 3中定义通用类型Vector?

actionscript-3 - JWPlayer:试图将视频播放器绑定(bind)在我自己的容器中

javascript - 悬停在谷歌图表图例上,工具提示在模态后面

javascript - 按下鼠标后,抓取 child 的(数字)位置

javascript - 如何覆盖jquery中的点击事件

javascript - JSON 解析转义字符串

actionscript - stage.width 和 stage.stageWidth 的区别