【问题标题】:How to skin Alert box in flex 4如何在 flex 4 中为警报框设置皮肤
【发布时间】:2011-12-28 15:59:10
【问题描述】:

如何在 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 制作类似的东西?我不明白什么是警报的主机组件。

【问题讨论】:

    标签: apache-flex actionscript flex4 alert skinning


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      mx.controls.Alert 控件是一个 MX 组件,因此不使用与 Spark 组件相同的皮肤架构,这就是您的示例所使用的。坦率地说,尽管 Adob​​e 仍将其称为“剥皮”(参见 Skinning MX Components),但它似乎与 Spark 进程不太相似。

      我并没有声称要提供一个全面的答案(这就是我在社区 wiki 上写这个的原因),但据我所知,你不会使用样式来解决问题。

      您可能需要了解的其他相关信息是,Alert 派生自 mx.containers.Panel 类。因此,无论您可以在多大程度上“剥皮”面板,您最终将能够在多大程度上“剥皮”警报。

      【讨论】:

      • 有道理,反正我是自定义组件提醒。
      猜你喜欢
      • 2011-03-24
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多