Akashic Engine 逆引きリファレンス

シーン内で動的にアセットを読み込む

セキュリティ上の制約から、ユーザ投稿ニコ生ゲームやゲームアツマールではこの機能は利用できません。

シーン内で動的にアセットを読み込むには、g.Scene#requestAssets() を利用します。

凡例

scene.requestAssets(
  [
    {
      id: "textData",
      uri: "./text/data.json",
      type: "text"
    }
  ],
  function() {
    if (scene.assets.textData != null) {
      var textData = scene.asset.getTextById("textData");
    }
  }
);

利用例

次のコンテンツは、一度だけ画面をクリックした場所に画像を動的に読み込み表示します。

詳細

シーン内で動的にアセットを読み込むには g.Scene#requestAssets() を利用します。読み込むアセットは game.json に登録されている必要はありません。 g.Scene#requestAssets() はシーンの読み込み完了前には呼び出すことが出来ない点に注意してください。また、サーバ上にあるアセットを読み込む場合は、オリジン間リソース共有(CORS) でエラーとなる場合があるので注意してください。 ユーザ投稿ニコ生ゲームやゲームアツマールではセキュリティ上の理由により利用することができません。

アセット読み込み失敗を検知するには、g.Scene#onAssetLoadFailure ハンドラに渡るイベントを利用します。このシーンのアセットが一つ読み込みに失敗する度に fire されます。ハンドラは引数の AssetLoadFailureInfo#cancelRetry を真にすることでゲーム続行を断念することができます。

scene.onAssetLoadFailure.add(function(failureInfo) {
  // エラー時の処理
  failureInfo.cancelRetry = true; // この値を真に変更することで、読み込み再試行をキャンセルしゲーム続行を断念させます
});

関連情報