私は現在、Pixi.js とそのビルトイン ローダーを使用しています。コードを覗いてみると、サウンドもロードできることがわかりました。SoundJS内にも組み込まれているSound用の別のローダーを使用しています。
問題は、これを達成するために 2 つの異なるローダーを管理しなければならないことです。1 つはサウンド用、もう 1 つはテクスチャ用です。
次のように、Pixi.js にサウンド ファイルをロードしてもらいます。
new PIXI.loaders.Loader()
.add("_assets/textures/p1_walk/Von.json")
.add("_assets/textures/p2_walk/Don.json")
.add("_assets/textures/p3_walk/Bon.json")
.add("_assets/textures/tiles.json")
.add("_assets/textures/textures.json")
//.add('bgm1' , '_assets/bgm/bgm.mp3')
.add('jump' , '_assets/sfx/jump.wav')
.add('pickupcoin' , '_assets/sfx/pickupcoin.wav')
.add('hit' , '_assets/sfx/hit.wav')
.add('hit1' , '_assets/sfx/hit1.wav')
.add('died' , '_assets/sfx/died.wav')
.on("progress" , function(loader , resource)
{
console.log("Finished loading : " + resource.name + " progress : " + loader.progress);
})
.once("complete" , function()
{
console.log("Finished loading assets");
//soundManifest = soundManifest.concat(
// [
// {id : "bgm1" , src : "_assets/bgm/bgm.mp3" }
// , {id : "jump" , src : "_assets/sfx/jump.wav" }
// , {id : "pickupcoin" , src : "_assets/sfx/pickupcoin.wav" }
// , {id : "hit" , src : "_assets/sfx/hit.wav" }
// , {id : "hit1" , src : "_assets/sfx/hit1.wav" }
// , {id : "died" , src : "_assets/sfx/died.wav" }
// ]);
//createjs.Sound.alternateExtensions = ['mp3' , 'ogg' , 'wav' ];
//createjs.Sound.addEventListener('fileload' , handleLoad);
//createjs.Sound.registerSounds(soundManifest);
SoundJS.play("jump");
loadingScene = new LoadingScene(renderer , screenSize);
})
.load();
残念ながら、これはうまくいきません。ジャンプ音が鳴りません。まったく別の/無関係なローダーによって、SoundJS が既に読み込まれているサウンドを読み込み/再生する方法がわかりません。
2 つの別々のローダーを管理するにはどうすればよいですか? 以前のものの問題は、最初のローダーが 0 ~ 100% の進行状況を表示できたことです。これは、進行状況バーで使用できるようにするために必要です。しかし、これはテクスチャ専用です。パーセンテージにサウンドを含めたかったので、おそらくローダーのみを使用して、SoundJS にそこからファイルをロードさせることができると判断しました。
これはまったく可能ですか?
ありがとう!