Flex 4.6 モバイル アプリを実行しています。アセット .png ファイルを追加して、さまざまなビューと向きでアプリケーションの背景として表示しようとしています。誰かがこれを行う方法をまだ考え出しましたか?
どんな助けでも大歓迎です:)
Flex 4.6 モバイル アプリを実行しています。アセット .png ファイルを追加して、さまざまなビューと向きでアプリケーションの背景として表示しようとしています。誰かがこれを行う方法をまだ考え出しましたか?
どんな助けでも大歓迎です:)
私はこの穴の中にいて、出口を知っています。
アプリケーションのスキン クラスを作成する必要があります。複雑すぎる必要はありません。私のファイル (appSkin.mxml) は次のようになります。
<?xml version="1.0" encoding="utf-8"?><s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Metadata>
[HostComponent("spark.components.View")]
</fx:Metadata>
<!-- states -->
<s:states>
<s:State name="disabled" />
<s:State name="normal" />
</s:states>
<s:BitmapImage source="@Embed('assets/bg.png')" width="100%" height="100%" />
<s:Group id="contentGroup" width="100%" height="100%" minWidth="0" minHeight="0" />
<!-- SkinParts
name=contentGroup, type=spark.components.Group, required=false
-->
次に、アプリケーションの開始タグで、そのファイルをアプリケーションのskinClassとして宣言する必要があります…</p>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="320"
creationComplete="creationCompleteHandler()" xmlns:views="views.*" skinClass="skins.appSkin">
次に、最後の手順を 1 つ実行する必要があります。各 View コンポーネントは不透明な背景レイヤーを持っているため、それぞれでそのbackgroundAlpha値を明示的に 0 に設定する必要があります。
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" title="Start" backgroundAlpha="0">
これで、アプリケーションの共通の背景画像を複数のビューで維持するという使命を達成できるはずです。
次のようなことを試してください:
<s:View>
<fx:Script>
[Embed(source="myImage.gif")]
public var myImage :Class;
</fx:Script>
<s:Image source="myImage" width="100%" height="100%"/>
</s:View>
ただし、完璧な結果は期待できません。PNG は、事前にレンダリングされたビットマップです。ほとんどの場合、すべてのビューと方向 [および解像度] で正しく表示されない可能性があります。これは、PNG の要素がその場でサイズ変更され、歪んだり、引き伸ばされたり、圧縮されたりする可能性があるためです。たとえば、縦向きから横向きに切り替えるとき。