midorable
    Preparing search index...

    アセットの読み込みと取得を管理するローダー

    原則として App.createLoader() で作成されたインスタンスを使用する。

    Loader は読み込み済みのアセットを内部に保持し、同じキーを使って再取得できます。 同一のキーで複数回の読み込み要求があった場合、最初の要求が完了するまで待機し、その後はキャッシュされたアセットを返します。

    const loader = app.createLoader();
    const playerImage = await loader.load({ type: 'image', src: 'player.png' });

    // 同じキーで再度読み込むとキャッシュされたアセットが返る
    const samePlayerImage = await loader.load({ type: 'image', src: 'player.png' });
    console.log(playerImage === samePlayerImage); // true

    // 読み込み済みのアセットは get() で取得できる
    const cachedPlayerImage = loader.get('player.png');
    Index

    Constructors

    Accessors

    Methods

    • 既にロードされているアセットを取得

      Parameters

      • key: string

        取得するアセットのキー

      Returns Asset | undefined

      アセット、存在しない場合はundefined

      読み込みリクエスト中のアセットは取得できない。

    • アセットをロードする

      Type Parameters

      Parameters

      • spec: TSpec

        ロードするアセットの定義

      • Optionaloptions: LoadOptions

        オプション

      Returns Promise<ResolvedAsset<TSpec>>

      ロードされたアセット

      既に同じキーでロードされている場合はキャッシュから取得する。 同じキーで複数回のロード要求があった場合、最初の要求が完了するまで待機し、その後はキャッシュされたアセットを返す。

    • 複数のアセットを一括でロードする

      Type Parameters

      Parameters

      Returns Promise<ResolvedAssets<TAssets>>

      ロードされたアセットのマップ

      内部的には load() を呼び出しているため、同じキーでの重複したロード要求はまとめられる。 並列でのロード数は options.concurrency で制御できる。

      const assets = await loader.loadAll({
      player: { type: 'image', src: 'player.png' },
      backgroundMusic: { type: 'audio', src: 'bgm.mp3' },
      });
      console.log(assets.player); // ImageAsset
      console.log(assets.backgroundMusic); // AudioAsset
    • 複数のアセットを一括でロードし、その結果を成功・失敗に関わらず返す

      Type Parameters

      Parameters

      Returns Promise<TryLoadAllResults<TAssets>>

      ロードされたアセットの結果オブジェクト(成功・失敗の両方を含む)

      内部的には load() を呼び出しているため、同じキーでの重複したロード要求はまとめられる。 loadAll と異なり、個々のアセットのロード結果を成功・失敗に関わらず返す。全体のロードが失敗することはない。

      const results = await loader.tryLoadAll({
      player: { type: 'image', src: 'player.png' }, // 正常に取得可能なアセット
      missingAsset: { type: 'audio', src: 'missing.mp3' }, // 404 Not Found などのエラーを返すアセット
      });
      console.log(results.player); // { ok: true, value: ImageAsset }
      console.log(results.missingAsset); // { ok: false, error: ... }