私は最低限の Adobe Air アプリケーションを持っています。それは基本的に a のs:SkinnableContainer
中にありmx:WindowedApplication
ます。SkinnableContainer
. _ s:SkinnableContainer
は Flex 4 Beta3 (spark コンポーネント) のタグであることに注意してください。
バックグラウンド
問題を説明する前に、このアプリの背景を少し説明します。この Air アプリケーションはサーバー側で実行され、データベースを定期的にチェックし、SkinnableContainer
. このマークアップは、実際にはエンドユーザーがこのグラフィック コンテンツを作成するために使用する Flex Web アプリケーションから取得されます。この Air アプリケーションが行うことになっているのは、Flex Web アプリケーションで使用される画像の非常に高解像度のバージョンを使用し、エンドユーザーがブラウザーで作成したグラフィック コンテンツの高解像度バージョンを再作成することです。SkinnableContainer
Air アプリケーションは、最終的に の内容をビットマップとしてファイルに書き出します。
Air アプリケーションを使用する理由は、ブラウザーでレンダリングされる小さいバージョンのグラフィック コンテンツと、Air アプリケーションが生成する高解像度バージョンとの間でレンダリングの 100% の一貫性を確保するためです。
問題
私が直面している問題は、この 3.20MB のイメージが にs:Skin
適用されるソースとして設定されている場合に表示されないことSkinnableContainer
です。サイズが 3000 x 4500 ピクセルで 1.73MB の小さいバージョンの画像を使用すると、アプリケーションでレンダリングされます。アプリケーションをデバッグ モードで実行していますが、大きなイメージが失敗しても例外は発生しません。どちらの場合も、子のグラフィカル要素はSkinnableContainer
適切にレンダリングされます。
その他の実装メモ:
- スキンのソースは、現在、画像への URL
http://localhost/foo/bar.png
です。Firefox からヒットすると、画像に問題なくアクセスできます。 - ソースを次のように設定します
BitmapImage([get the skin].backgroundImage).source = "http://localhost/foo/bar.png"
。
Air によって適用される、注意すべきメモリ制限はありますか? これは、spark コンポーネントの 1 つのバグですか? 例外が発生しないのはなぜですか? 最も重要なのは、これを修正するにはどうすればよいですか?