3

私は Flash ゲーム (Flixel を使用) を作成しており、ゲームに含める必要がある画像 (主に .png 形式) のスプライトがたくさんあります。私は次のようなコードの使用に慣れています:

[Embed(source = "../../lib/ship-0001.png")]private var _ship0001Sprite:Class;

画像ファイルを含めるため。埋め込み以外にこれを行う方法はありますか?可能であれば、必要なすべてのファイルを番号で取得する for ループを使用したいと思います。代わりに、各船の種類に複数の行がある場合 (スプライト、アイコン、ストア ビューなどを取得するため)、変数 (NUM_SHIP_TYPES など) を変更して、新しい船の番号でファイルを追加するだけです。

ファイルが .swf に含まれている場合にこれを行う唯一の方法は埋め込みですか、それとも別の方法がありますか? または、埋め込みで for ループ使用する方法はありますか?

4

3 に答える 3

5

これは一般的な答えではないかもしれません。しかし、それは好みに依存します。I'm not trying to start a best practices discussion, just listing a possibility.

船ごとに複数の画像がある場合。また、各船あたりの画像数が同じである場合は、以下の可能性があります。そうではなく、私が提案することを完全に無視してください。

船の種類ごとにフォルダを用意し、そのフォルダ内にクラスファイルを作成し、そのフォルダ内にクラスファイルと一緒に画像を配置します。

package shipimages.ship1 { class Ship1Images {
    [Embed(source="0001.png")] public var img0001:Class;
    [Embed(source="0002.png")] public var img0002:Class;
    [Embed(source="0003.png")] public var img0003:Class;
} }

package shipimages.ship2 { class Ship2Images {
    [Embed(source="0001.png")] public var img0001:Class;
    [Embed(source="0002.png")] public var img0002:Class;
    [Embed(source="0003.png")] public var img0003:Class;
} }

しかし、私が言ったように、これは小さなケースのシナリオでのみ有益ですが、それはすべてがより細かく分割されていることを意味し、インターフェイスを作成する場合はファクトリパターンで簡単に実行できます。

于 2011-11-04T09:19:20.393 に答える
5

アセットが多数ある場合、最善の方法は、それらを外部ファイルとして残し、 を使用Loaderしてロードすることです。

そうすることでプログレスバーを表示することができますし、おっしゃる通りアセットの管理もしやすくなります。

于 2011-11-04T05:14:32.000 に答える
0

同じswf内でオブジェクトをすぐに利用できるようにしたいですか、それとも外部にロードしたいですか。私の頭に浮かぶ最初の質問になります。

  • swf内に画像を埋め込みたい場合:すべてをflaに追加し、そこからswcを作成して、プロジェクトで使用します。何かを変えたいときは、flaを変えてください。swcを再生成します。再コンパイルします。

  • 実行時に画像をロードする場合は、UrlLoaderを使用します。個人的には、greensockパッケージの一部であるLoaderMaxを使用することをお勧めします。これにより、読み込みを操作するためのより多くのオプションが提供されます。これがあなたを助けるための例です:http ://www.greensock.com/loadermax-tips/

于 2011-11-04T06:50:37.680 に答える