1

画像を背景としてスキンを作成しました。

View がスキンを skinClass としてインポートすると、他のすべてのコントロールが覆われます。

すべてのコントロールをスキンの上に表示するにはどうすればよいですか?

これは Background.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">
    <!-- host component -->
    <fx:Metadata>
        [HostComponent("spark.components.supportClasses.SkinnableComponent")]
    </fx:Metadata>
    <s:Image source="assets/Sunflower.gif" smooth="true" left="0" right="0" top="0" bottom="0">

    </s:Image>

    <s:states>
        <s:State name="normal" />

    </s:states>

</s:Skin>

これは、デフォルト パッケージのメイン ビューです。

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

                                   skinClass="BackgroundImage"
                                  >
    <s:ViewNavigator label="Add" width="100%" height="100%" firstView="views.AddView"/>
    <s:ViewNavigator label="List" width="100%" height="100%" firstView="views.ListView"/>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
</s:TabbedViewNavigatorApplication>
4

1 に答える 1

0

コントロールの Z インデックスを調整する必要があるようです。次のように z-index を変更できます。

parent.setChildIndex(childObject, i)

たとえば、コントロールを常に前面に配置したい場合は、次のものが必要です。

myControls.parent.setChildIndex(myControls, myControls.parent.numChildren -1)

コードなしで答えるのが難しい場合でも、これが役立つことを願っています...

于 2012-02-16T15:41:33.773 に答える