2

iPhone 5で最初のFlexモバイルアプリをテストしましたが、新しい4インチ画面に収まらないと思っていたので、これがすでに可能かどうか誰か知っていますか?(Flex 4.6 SDKを使用)

4

2 に答える 2

3

これは少し間抜けですが、機能します。まず、FlashBuilderEclipseプラグインディレクトリに最新のAIRSDK がインストールされていることを確認します。これにより、次のトリックが実際に機能することが確認されます。

次に、プロジェクトのメインMXMLファイルに移動します(ViewNavigatorApplicationクラスインスタンスとなるビューベースのプロジェクトを構築している場合)。開始のViewNavigatorApplicationタグに、値が「@Embed('Default-568h@2x.png')」のsplashScreenImageのプロパティを配置します。次のようになります…</p>

<s:ViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                        xmlns:s="library://ns.adobe.com/flex/spark"
                        firstView="views.myFirstView"
                        splashScreenImage="@Embed('Default-568h@2x.png')">

次に、640w x 1136hのスプラッシュ画面pngを作成し、「Default-568h@2x.png」という名前を付けます。その画像ファイルをプロジェクトのルート(おそらく「src」ディレクトリ)に配置します。iPhone 5のターゲットと出来上がりのためにコンパイルしてください!

AIRは、iPhone5の画面サイズをターゲットにしていることを示すインジケーターとしてその大きなスプラッシュ画面ファイルを探します。app.xmlファイルに設定がありません。コードにプロパティはありません。そのsplashScreenImageファイル名だけです。

それは明らかですよね?

さまざまな画面サイズに対してさまざまなレイアウトを作成する限り、Rich Tretolaには、@mediaクエリを使用したレスポンシブデザインについて説明した、すばらしい安価な本、Flex4.5を使用したiOSアプリケーションがあります。彼のウェブサイトには役立つかもしれない抜粋があります…しかし、本は安くて、便利で、すぐに読むことができます。

于 2013-05-16T13:18:09.663 に答える
2

次のようにスプラッシュ画面を動的に変更できます。

<?xml version="1.0" encoding="utf-8"?>
<s:SplashScreenImage xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark">  

    <fx:Script>
        <![CDATA[
            override public function getImageClass(aspectRatio:String, dpi:Number, resolution:Number):Class 
            {
                var x:Number = Capabilities.screenResolutionX;
                var y:Number = Capabilities.screenResolutionY;


                // HTC
                if ((x == 480) && (y == 800)) return img_480_800.source;

                // iPhone 5
                if ((x == 640) && (y == 1136)) return img_1080_1920.source;

                // iPhone 4
                if ((x == 640) && (y == 960)) return img_640_960.source;

                // Samsung galaxy s3
                if ((x == 720) && (y == 1280)) return img_720_1280.source;

                // Samsung galaxy s4
                if ((x == 1080) && (y == 1920)) return img_1080_1920.source;

                // Default
                return img_1080_1920.source;
            } 
        ]]>
    </fx:Script>


    <s:SplashScreenImageSource id="img_480_800" source="@Embed('Default_480_800.png')"/>
    <s:SplashScreenImageSource id="img_640_960" source="@Embed('Default@2x.png')"/>
    <s:SplashScreenImageSource id="img_720_1280" source="@Embed('Default_720_1280.png')"/>
    <s:SplashScreenImageSource id="img_1080_1920" source="@Embed('Default-568h@2x.png')"/>

</s:SplashScreenImage>

...。

splashScreenImage="DynamicSplashScreen"
于 2013-09-01T07:25:03.563 に答える