2009-07-21 12 views
1

私はAS3とAIRでゲームを開発しています。私は表示要素のためにロードする必要がある大量のイメージを持っています。ゲームが必要とするすべての画像を埋め込むのではなく、一度にすべての画像をメモリに保存することを避けるのがいいでしょう。それは小規模なプロジェクトでは大丈夫ですが、ここでは意味がありません。AS3/AIR:ランタイムイメージデータの管理

ランタイム中に画像を読み込む方法が不思議です。私の現在のプロジェクトでは、すべてのファイルが非常に小さく、ローカルなので、要求に応じてロードするのが最良の解決策かもしれませんが、私はこれを管理するためにどのようなアイディアがあるのか​​聞きたいと思います。

ボーナスポイントについては、オンデマンドのサーバー側の画像を読み込むためのソリューションについても興味があります。

答えて

0

ソリューションは、オンデマンドのデータの読み込みと保存を管理し、再利用可能なシングルトンロードクラスを作成することでした。参照を格納するLOCALまたはREMOTEと、完全にロードされた後にマネージャークラスにマップされるロードされたデータ自体を管理する「ジョブ」を管理します。

私は本当にback2dosの提案のように、SWFの資産毎回の変更の(再)作成を管理することは、私の目的のために最適ではないですが。

0

あなたのプロジェクト は、amfphpとmysql blob-storageを使用してソリューションを作成できます。このリンクでは、あなたはどのようにmysqlのBLOBストレージを理解することができます。

http://www.anyexample.com/programming/php/php_mysql_example__image_gallery_%28blob_storage%29.xml

とAMFPHPのためにも、良いアイデアのようになり http://www.bytearray.org/?p=90

+0

as3プロジェクトの読み込みを効率的に行う方法がわかりません。気軽に説明してください。これは、MySQLのような画像読み込みの種類のために残っているようだ。外部データ構造が必要な場合は、おそらくXMLで十分だろう。 – grey

1

、外部のSWFを作成するには、このAMFPHPライブJPEGエンコーダをご確認ください。また、 http://www.amfphp.org/

とを参照してください、その埋め込みそれが可能なのであれば一緒に使う可能性のある画像... projectiles.swf、obstacles.swf、enemies.swf、misc.swf ....私は知らない...何か理にかなっています...おそらく、 lsなど...単純なインタフェースを使用して、swfからアセットを抽出することができます。たとえば、常にクラスAssetsがあり、静的メソッドgetAllがあり、これはオブジェクトを返し、文字列識別子をクラスに対応するので、あなたのようなものでしょう:

function onComplete(e:Event) {//this is the handler for the loading operation 
    var map:Object = (e.target as LoaderInfo).applicationDomain.getDefinition("Assets").getAll();//should return something like {"bullet1":Bullet1,"bullet2":Bullet2,...} 
    //do whatever you need to do with it 
} 

利点:...

    • 画像は別のに対して、圧縮1を取得し、その全体的なファイルサイズが減少するであろうことは、あなたが大幅にカウント要求を減らしますあなたのサーバー...
    • いくつかの名前/パスの規則に従って、n-hundred個のファイルを作成しないでください(またはファイルインデックスをどこかに置いて、どのファイルが存在し、どのファイルが存在しないかを知る必要があります)。
    • あなたは別々の画像を別々に読み込むのではなく、別のswfを読み込んで簡単にアプリケーションを再作成することができます...
    • このアプローチの究極の利点は、クラスを持ち、イメージを何度も読み込むのではなく...最初の操作は同期的ですが、後者はそうではありません。実際に行う必要がある場合はByteArrayにバイナリ形式でイメージをロードしてからURLLoaderを読み込み、ステージLoader::loadBytes ...

    swfmillを使用してserversideにswfsを生成して、プロセスを自動化することができます。私は上のセトリング終わっ

    greetz

    back2dos

  • +0

    これはかなり実行可能なソリューションのようです。私はインターフェイス要素のためにこれをやっているのが好きです。それは完全に確かなアイディアです。私の唯一の問題は分類です。 私の資産の大半はグループ化するのにはあまり意味がありません。レベルデザインのためにミックス・アンド・マッチするようにデザインされた領域には、多くのタイルシートがあります。そのようなバンドルされていないソリューションに対する他の考えはありますか? また、私はswfmillを指し示すための喝采もあります。これは、パッケージ資産へのフレンドリーなアプローチのようです。このプロジェクトには理想的ではありませんが、今後のいくつかの可能性を想像することができます。 – grey