0

フレックス アプリケーションをフラッシュ ランタイムではなくエア ランタイムで実行しようとしています。画像以外は問題なく動作しているようです。Adobe Air ランタイムはそれらを読み込もうとします。イメージのルート アドレスをサーバー側に変更する方法はありますか? 可能であれば、フラッシュ ランタイムとエア ランタイムに同じコードを使用したいと思います..「単一のコードベース ;-)」

var icon:Image = new Image();
icon.source = "images/test.png";

よろしくシリル

4

1 に答える 1

1

通常、アセットをAIRアプリにパッケージ化するだけです。そうすれば、相対パスはWebアプリとデスクトップアプリの両方で有効になります。ただし、コメントで10000枚の画像について話していると指摘されたため、別の解決策を見つける必要があります。

必要なのは、プロジェクトのタイプごとに構成可能な変数です。画像にアクセスするための最終的なコードは次のようになります。

var icon:Image = new Image();
icon.source = rootUrl + "/images/test.png";

これrootUrl""、Webアプリと"http://www.mydomain.com"デスクトップアプリの場合があります。または、どちらの場合も絶対パスである可能性があります。それは問題ではありません。そのURLをアプリケーションにハードコーディングしたくありません。

の値を含む.propertiesファイル(またはXML、JSON、任意の構成ファイル)を作成し、rootUrlそれをアプリケーションモデルに読み込みます。この構成ファイルは、AIRアプリにパッケージ化できます。

.propertiesファイルは次のようになります。

#myapp.properties
rootUrl=http://www.mydomain.com

ファイルの読み取りには、 AIRのファイルストリーミング機能を使用できますが、:を使用して昔ながらの方法でロードすることをお勧めしますURLLoader。この方法では、Webとデスクトップアプリの両方で機能します。

于 2012-07-09T09:03:55.687 に答える