通常、アセットを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とデスクトップアプリの両方で機能します。