1

我使用图像作为背景创建了一个皮肤。

当我的视图将皮肤作为 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 回答