0

簡単だと確信できることをするためにかなりの時間を探していましたが、答えが見つかりません。これに関するいくつかの一般的なチュートリアルを見つけましたが、これまでに試したもので動作させることができませんでした. 見逃していたら申し訳ありませんが、誰かが提供できる助けに感謝します。

少し前にフラッシュで作成したシンプルなボタンを HTML キャンバス ドキュメントに変換しているので、マウスオーバーでアニメーションとサウンドを使用して Web サイトに HTML コンテンツとして配置できます。HTML にパブリッシュすると、アニメーションが思いどおりに動作するようになりましたが、ActionScript 3 を使用すると、ユーザーがボタンの上にマウスを置いたときにサウンドが再生されました。ユーザーが HTML コンテンツでもマウスオーバーしたときに音を鳴らしたいのですが、ActionScript を JavaScript に変換することにまだ成功しておらず、JavaScript についてよくわかりません。

また、mp3 ファイルで動作しないブラウザ用に、コードにリンクされたオーディオ ファイルの複数のフォールバック形式 (ogg、wav) を用意したいと考えています。音声ファイルは問題なく変換できますが、これを JavaScript でコーディングする方法がわかりません…。

これは、.swf ファイルとして書き出すときに元のドキュメントで正常に動作する ActionScript コードです。

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 に変換して、.fla ファイルを HTML にパブリッシュしたときに機能するように誰かが助けてくれたら、とても助かります。前もって感謝します!

4

1 に答える 1

0

ボタンの後に次の html スニペットを追加し、other-file.ogg と other-file.wav を ogg/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="btn-Id"し、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;
  });
});

コードは Internet Explorer では機能しない可能性があり、chrome でのみテストされていることに注意してください。ユーザーがすでにドキュメントを操作した (何かをクリックした) 場合にのみサウンドを再生し、そうでない場合は再生ボタンを表示します。ほぼ同じコードを持つjsfiddleを作成しました。唯一の違いはオーディオ ソースであり、バックアップ オーディオ ファイルを使用しておらず、ボタンを追加しました。

于 2021-06-16T00:24:34.230 に答える