0

私が尋ねようとしていることは単純すぎるかもしれませんが、私の問題に対する解決策を見つけることができませんでした.

私はAIRアプリを開発しています。Spark コンポーネントのウィンドウ アプリケーション用のカスタム スキンがあります。そのスキンでは、windowedapplication の背景を設定するビットマップ イメージを追加しました。

また、「ヘッダー」と呼ばれるカスタム コンポーネントがあります。それは、いくつかのテーブル ヘッダーを描画することです。

<ui:header width="100%" and height="40"\>ここで、ビットマップイメージの直後にスキンのようにヘッダーを追加すると、ヘッダーが想定どおりに表示されます。しかし、windowedapplication 内にヘッダーを配置すると、ビットマップ画像が削除されない限り表示されないビットマップ画像の下に表示されます。

ビットマップイメージとヘッダーコンポーネントの深さを適切な順序で変更することでこの問題を解決しようとしましたが、これはうまくいきません。

アイデアがあれば、私を助けてください。ありがとう

ここにコードのビットがあります

`

<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"    xmlns:s="library://ns.adobe.com/flex/spark"                         xmlns:mx="library://ns.adobe.com/flex/mx"                           skinClass="ui.uiskin"
height = "728" width="910"                     
xmlns:ui="ui.*">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <ui:header x="0" y="{.0258*height}" depth="0"
               height="{0.0774*height}" width="100%"/>
</s:WindowedApplication>

`

ウイスキンは

`

<s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:ui="com.youspin.components.ui.*"
        depth="-10">
    <!-- host component -->
    <fx:Metadata>
        [HostComponent("spark.components.WindowedApplication")]
    </fx:Metadata>

    <fx:Script>
        <![CDATA[

        ]]>
    </fx:Script>
    <!-- states -->
    <s:states>
        <s:State name="disabledAndInactive" />
        <s:State name="normalAndInactive" />
        <s:State name="disabled" />
        <s:State name="normal" />
    </s:states>

    <s:BitmapImage source="@Embed('../../images/ui/background.png')" depth="-10"/>

    <s:TitleBar left="0" right="0" top="1" 
                height="{0.0258*height}" 
                skinClass="titleSkin"/>

    <ui:header x="0" y="{.0258*height}" depth="0"
               height="{0.0774*height}" width="100%"/>  

</s:Skin>

`

そしてヘッダーは

`

<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx"
         width="100%" height="100%"
         >
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <s:Rect width="100%" height="{.04*height}">
        <s:fill>
            <s:SolidColor color="black"/>
        </s:fill>
    </s:Rect>

    <s:Rect width="100%" height="100%"
            left="0" top="2"
            alpha=".2"
            >
        <s:fill>
            <s:SolidColor color="black"/>
        </s:fill>
    </s:Rect>

    <s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
             xmlns:s="library://ns.adobe.com/flex/spark" 
             xmlns:mx="library://ns.adobe.com/flex/mx"
             width="100%" height="100%"
             top="2" left="0"
             id="headingsGroup"
             >
        <mx:Image source="@Embed('../../images/header/logo.png')" 
                  width="{0.2*headingsGroup.width}"
                  left="{0.015*headingsGroup.width}" top="{0.04*headingsGroup.height}"/>

        <!-- left line drop -->
        <s:Rect left="{.25*headingsGroup.width}" top="0"
                width="2" height="{.23*headingsGroup.height}">
            <s:fill>
                <s:SolidColor color="black"/>
            </s:fill>
        </s:Rect>

        <!-- middle line drop -->
        <s:Rect left="{.50*headingsGroup.width}" top="0"
                width="2" height="{.23*headingsGroup.height}">
            <s:fill>
                <s:SolidColor color="black"/>
            </s:fill>
        </s:Rect>
        <!-- side line drop -->
        <s:Rect left="{.75*headingsGroup.width}" top="0"
                width="2" height="{.23*headingsGroup.height}">
            <s:fill>
                <s:SolidColor color="black"/>
            </s:fill>
        </s:Rect>

        <s:Label text="artist"
                 top="{0.06*headingsGroup.height}"
                 horizontalCenter="{-0.125*headingsGroup.width}"
                 styleName="balonez"/>
        <s:Label text="song"
                 top="{0.06*headingsGroup.height}"
                 horizontalCenter="{0.125*headingsGroup.width}"
                 styleName="balonez"/>
        <s:Label text="album"
                 top="{0.06*headingsGroup.height}"
                 horizontalCenter="{0.375*headingsGroup.width}"
                 styleName="balonez"/>

        <!-- bottom line -->
        <s:Rect left="{.25*headingsGroup.width}" top="{.22*headingsGroup.height}"
                width="{.75*headingsGroup.width}" height="2">
            <s:fill>
                <s:SolidColor color="black"/>
            </s:fill>
        </s:Rect>
    </s:Group>


    <fx:Style>
        @font-face {
            src:url("../../fonts/balonez fantasia.ttf");
            fontFamily: myFontFamily;
            advancedAntiAliasing:true;
        }

        .balonez{
            font-family:myFontFamily;
            font-size:25;
        }
    </fx:Style>
</s:Group>

`

コードの一部はここには示されていませんが、上記で私が何をしようとしているのかがわかると思います。

私がやろうとしていたのは、ウィンドウ化されたアプリケーションにカスタムスキン、つまり uiskin があることです。また、「ヘッダー」と呼ばれる別のコンポーネントもあります。uiskin.mxml 内に、windowedapplication の背景として使用するビットマップ画像を追加しました。そして、windowedapplication 内にヘッダーを追加しました。これを行うと、ヘッダーが画像の後ろに表示されます。

今のところ、私が行ったことは、ビットマップイメージの後に uiskin 内にヘッダーを追加することです。これで、ヘッダーがビットマップ画像の上に表示されます。しかし、実際にはヘッダーをカスタムスキン内ではなく、windowedapplication 内に配置したいと考えています。これを行う方法はありますか。

4

3 に答える 3

1

私は自分の質問に対する答えを見つけました。必要だったのは、ウィンドウ化されたアプリケーションのコンテンツをウィンドウ化されたアプリケーションのスキンに設定された画像の上に表示するためのグループ タグだけでした。

<s:Group id="contentGroup" left="0" top="0" right="0" bottom="0" />

IDも保持するように注意してください。IDを削除するとうまくいきませんでした。また、誰かがそれを必要とする場合は、ここにリンクがあります。

于 2011-09-15T09:07:56.847 に答える
1

コードを見せてもらえますか?MXML を使用して表示リストにコンポーネントを追加する場合、それらを書き込む順序が重要になるためです。たとえば、次のコードはラベルを追加してから画像を追加します。2 つのコンポーネントの座標が重なっている場合、画像がラベルを覆います。フレックス コンポーネントの mxml 部分は、上から下に実行されます。見る ?

<s:Label
    id="labelContent"
    width="100%" height="100%"/>
<s:Image id="imageContent" horizontalCenter="0" verticalCenter="0"/>
于 2011-09-06T06:24:50.007 に答える
0

私はあなたによって投稿されたもののいくつかを理解しています. 画像を配置してからヘッダーを配置すると、ヘッダーによって画像が非表示になります。私の解決策はこれです

高さ 100% 幅 100% の Hgroup を持つ

<s:HGroup width="100%" height="100%">
     <ui:header width="100%" height="40"\>
     <s:Image width="100%" height="60%"\>
</s:HGroup>
于 2011-09-06T07:44:02.420 に答える