有没有办法声明内联皮肤?

时间:2010-10-30 23:05:45

标签: flex flex4 mxml

有没有办法在Flex 4 MXML组件中声明内联?如果组件中没有内联,那么在声明或库标签中? THX

2 个答案:

答案 0 :(得分:3)

是的,你可以在声明标签中找到:

<s:Application>

<fx:Declarations>
    <fx:Component className="testSkin">
        <s:Skin>
            <s:Rect width="100%" height="100%">
                <s:fill>
                     <s:SolidColor/>
                </s:fill>
            </s:Rect>
            <s:Group id="contentGroup"/>
        </s:Skin>
    </fx:Component>  
</fx:Declarations>

<s:SkinnableContainer skinClass="{Class(testSkin)}"/>

</s:Application>

上面的代码仅仅是指导,不要指望它编译。<​​/ p>

在我的测试中,使用内联皮肤没有性能损失。

答案 1 :(得分:2)

使用skinClass样式。

在MXML中,像这样:

<s:List skinClass="com.myCustomSkins.MyCustomListSkin" />

在ActionScript中,执行以下操作:

 myListClass.setStyle('skinClass',com.myCustomSkins.MyCustomListSkin);

在CSS中,执行以下操作:

myListClass{
 skinClass : ClassReference(com.myCustomSkins.MyCustomListSkin);
}

我不确定你在问题中提到的库标签是什么。这段代码来自内存,所以我的语法可能有些偏差。