ActionScript到JavaScript的转换,以便在Flash CC中的HTML画布文档中播放鼠标悬停时的声音

vhmi4jdf  于 2022-11-20  发布在  Java
关注(0)|答案(1)|浏览(108)

我一直在寻找一些我确信很简单的东西,但是我找不到答案。我找到了一些关于这个的通用教程,但是到目前为止还没有能够让它与我尝试过的任何东西一起工作。如果我错过了它,我很抱歉,但是我感谢任何人可以提供的帮助。
我有一个简单的按钮,是我不久前在Flash中构建的,我将其转换为HTML画布文档,这样我就可以将其作为HTML内容放置在网站中,鼠标悬停时会显示动画和声音。当我发布到HTML时,动画就按照我希望的方式工作了,但使用ActionScript 3,我有一个声音,当用户鼠标在按钮上播放。我想让它仍然播放一个声音,当用户鼠标在我的html内容,但我还没有成功地将ActionScript转换为JavaScript,而且我也不太了解JavaScript。
我也想有多个后备格式(ogg,wav)的音频文件链接在代码中的任何浏览器,不与mp3文件。我可以转换音频文件没有问题,但不知道如何在JavaScript中编码这一点。
下面是ActionScript代码,当我导出为.swf文件时,它在我的原始文档中工作正常。

stop();
import flash.media.Sound;
import flash.net.URLRequest;
import flash.events.Event;

sprayGunbtn.addEventListener(MouseEvent.MOUSE_OVER, playSound);

var myExternalSound:Sound = new Sound();
var req:URLRequest = new URLRequest("ShortSpray.mp3");

myExternalSound.load(req);

function playSound(event:Event){
    myExternalSound.play();
}

如果有人能帮助我将此ActionScript 3代码转换为JavaScript,以便在我将.弗拉文件发布为HTML时它可以正常工作,我将非常感谢。提前感谢!

cx6n0qe3

cx6n0qe31#

为了以防万一(即使它已经发布8年了),在按钮后添加以下html代码片段,并用您的ogg/wav文件替换other-file.oggother-file.wav

<audio id="SomeCustomId">
  <source src="ShortSpray.mp3" type="audio/mpeg">
  <source src="other-file.ogg" type="audio/ogg">
  <source src="other-file.wav" type="audio/wav">
  Your browser does not support the audio tag.
</audio>

<button id="DidNotPlayAutomatically" hidden>Play</button>

并将下面的javascript添加到脚本标记中,如果还没有id,则将id="btn-Id"添加到按钮标记中;如果已经有id,则将btn-Id替换为按钮id。

var fgbnmlj = document.getElementById("btn-Id");
var audio = document.getElementById("SomeCustomId");

window.onload = fgbnmlj.addEventListener("mouseover", function() {
  audio.play().then(function() {
    console.log("No problems");
  }).catch(function(error) {
    var playButton = document.getElementById("DidNotPlayAutomatically");
    playButton.addEventListener('click', function() {
      audio.play();
    });
    playButton.hidden = false;
  });
});

由于浏览器的策略,默认情况下自动播放声音是被阻止的,所以它只在用户已经与页面交互过的情况下播放声音(点击或滚动页面),如果没有,它会显示一个播放按钮。我做了一个jsfiddle,它的代码几乎完全相同,唯一的区别是音频源,我没有使用备份音频文件,我添加了一个按钮。

相关问题