1

私は最低限の Adob​​e Air アプリケーションを持っています。それは基本的に a のs:SkinnableContainer中にありmx:WindowedApplicationます。SkinnableContainer. _ s:SkinnableContainerは Flex 4 Beta3 (spark コンポーネント) のタグであることに注意してください。

バックグラウンド

問題を説明する前に、このアプリの背景を少し説明します。この Air アプリケーションはサーバー側で実行され、データベースを定期的にチェックし、SkinnableContainer. このマークアップは、実際にはエンドユーザーがこのグラフィック コンテンツを作成するために使用する Flex Web アプリケーションから取得されます。この Air アプリケーションが行うことになっているのは、Flex Web アプリケーションで使用される画像の非常に高解像度のバージョンを使用し、エンドユーザーがブラウザーで作成したグラフィック コンテンツの高解像度バージョンを再作成することです。SkinnableContainerAir アプリケーションは、最終的に の内容をビットマップとしてファイルに書き出します。

Air アプリケーションを使用する理由は、ブラウザーでレンダリングされる小さいバージョンのグラフィック コンテンツと、Air アプリケーションが生成する高解像度バージョンとの間でレンダリングの 100% の一貫性を確保するためです。

問題

私が直面している問題は、この 3.20MB のイメージが にs:Skin適用されるソースとして設定されている場合に表示されないことSkinnableContainerです。サイズが 3000 x 4500 ピクセルで 1.73MB の小さいバージョンの画像を使用すると、アプリケーションでレンダリングされます。アプリケーションをデバッグ モードで実行していますが、大きなイメージが失敗しても例外は発生しません。どちらの場合も、子のグラフィカル要素はSkinnableContainer適切にレンダリングされます。

その他の実装メモ:

  • スキンのソースは、現在、画像への URLhttp://localhost/foo/bar.pngです。Firefox からヒットすると、画像に問題なくアクセスできます。
  • ソースを次のように設定しますBitmapImage([get the skin].backgroundImage).source = "http://localhost/foo/bar.png"

Air によって適用される、注意すべきメモリ制限はありますか? これは、spark コンポーネントの 1 つのバグですか? 例外が発生しないのはなぜですか? 最も重要なのは、これを修正するにはどうすればよいですか?

4

1 に答える 1

1

おそらくメモリの割り当て方法が原因で、BitmapData オブジェクトの大きさに内部的な制限があるため、ロードされた画像もそれにぶつかると推測しています。制限の詳細については、こちらを参照してください。

それを修正することに関しては、獣をいくつかのサブイメージとして読み書きするのが最も簡単だと思います.3分の1または4分の1に分割します.半分はまだ制限を超えているからです.

于 2010-01-13T13:47:59.043 に答える