如何在flex 4中设置皮肤警报框

时间:2011-12-28 15:59:11

标签: flex actionscript flex4 alert skinning

如何在flex 4中设置皮肤警报框? 我对通过css自定义警报框不感兴趣,我该如何创建皮肤?

例如,对于TextInput我会写css:

s|TextInput
{
    skinClass: ClassReference("skins.TextInputSkin");
}

和TextInputSkin.mxml

<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:fb="http://ns.adobe.com/flashbuilder/2009" 
    alpha.disabledStates="0.5" blendMode="normal">

    <fx:Metadata>
    <![CDATA[ 
        /** 
         * @copy spark.skins.spark.ApplicationSkin#hostComponent
         */
        [HostComponent("spark.components.TextInput")]  
        ...etc..

全局更改TextInput 如何为Alert制作类似的内容?我无法理解警报的主机组件是什么。

2 个答案:

答案 0 :(得分:2)

可以说MX Alert组件不是单一控件。它基本上是面板,标签和按钮组件的组合。试试这个,Skin / Style一个标准的MX Panel组件并将其全局应用到你的应用程序中。你会注意到当你尝试调用alert组件时,它也会受到影响,因为它会采用你刚应用的样式。您可以对Flex 4面板进行Skin,然后将其设置为自定义弹出组件以实现相同的效果。

答案 1 :(得分:1)

mx.controls.Alert控件是一个MX组件,因此不使用Spark组件使用的相同外观架构,这是您的示例所使用的。坦率地说,尽管Adobe仍然将其称为“皮肤化”(参见,Skinning MX Components),但它似乎并不像Spark过程那样。

我并没有声称提供全面的答案(这就是为什么我在社区维护这个),但据我所知,你不会四处寻找使用风格。

您可能需要知道的其他相关信息是警报来自mx.containers.Panel类。因此,无论您在何种程度上“专注”专家小组,您最终都能够“通过”“保护”警报。