0

モジュールのロード、特にCreateJSのようなライブラリのロードにRequireJSを使用するのは初めてです。SoundJS で PreloadJS を使用したかったのです。RequireJS を介して SoundJS を適切にロードしましたが、今のところ問題はありません。私が問題を抱えているのは PreloadJS です。この方法でロードします:

require.config(
  {
    paths :
    {
        soundjs   : 'core/soundjs-0.6.1.min'
      , preloadjs : 'core/preloadjs-0.6.1.min'
    }

    ,shim :
    {
        'preloadjs' : { exports : "createjs" }
      , 'soundjs'   : { exports : "createjs.Sound" }
    }
  });

require(['src/MainGameScene' , 'src/Runner' , 'core/pixi.js' , 'core/tween.min' , 'preloadjs' , 'soundjs' ]
, function(MainGameScene , Runner , PIXI, TWEEN , PreloadJS , SoundJS)
{
  console.log("Endless Runner modules loaded.");

  var screenSize = { width : 960 , height : 500};
  var renderer = PIXI.autoDetectRenderer(screenSize.width , screenSize.height);

  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")
    .once("complete" ,
      function()
      {
        var queue = new PreloadJS();
        SoundJS.alternateExtensions = ["mp3" , "ogg" , "wav" ];
        queue.installPlugin(SoundJS);
        queue.addEventListener("complete" , onFinishedLoading);
        queue.loadManifest(
          [
            {id : "bgm1"  , src : "_assets/bgm/bgm.mp3"}
           ,{id : "jump" , src : "_assets/sfx/jump.wav" }
           ,{id : "pickupcoin" , src : "_assets/sfx/pickupcoin.wav" }
          ]);
      })
    .load();

  function onFinishedLoading()
  {
    new MainGameScene(renderer , screenSize);
  }

  document.body.appendChild(renderer.view);
});

デバッガーを実行すると、PreloadJS オブジェクトに、PreloadJS の一部ではないと思われるこのプロパティがあることがわかります。プロトタイプが正しいかどうかも確認しましたが、プロトタイプとしてオブジェクトを使用しています。

noConflict: function()
parse : function parse()
runInContext : function a(b, d)
stringify : function stringify()
__proto__ : Object

私は他に何を逃したのですか?また、次のように PreloadJS をシムしようとしました。

    'preloadjs' : { exports : "createjs.LoadQueue" }
  , 'soundjs'   : { exports : "createjs.Sound" }

しかし、私はまだそれらのプロパティを持つオブジェクトを取得しています。RequireJS が必要なので、しっかりしたプリローダーを使用して SoundJS を使用できます。RequireJS で PreloadJS を使用する記事が見つからないので、何か間違ったこと、型にはまらない、文書化されていないことをしていると確信しているので、助けていただければ幸いです。

4

1 に答える 1