【问题标题】:Flex change values of custom Skin at run timeFlex 在运行时更改自定义皮肤的值
【发布时间】:2011-03-05 16:08:30
【问题描述】:

我已经为我的 Flex 应用程序构建了一个基本主题。我想添加对其他预定义主题的支持。默认情况下,应用程序有一个主题,我希望当用户从下拉列表中选择一个主题时它会改变。这可以通过使用 styleManager 加载 swf 文件来完成。然而,所有的皮肤都有硬编码的颜色。因此,为了实现这一点,我必须复制皮肤并更改颜色值。

有没有更好的方法来做到这一点?我可以只拥有一个可以根据用户选择动态更改颜色值的皮肤吗?

【问题讨论】:

    标签: apache-flex flex4 skinning


    【解决方案1】:

    最好的方法是将所有硬编码的颜色从皮肤移动到 css。 您必须更新您的自定义皮肤才能利用这一点。

    所以如果你有一个<SolidStoke color="0xff0000" /> 您需要将其替换为<SolidStroke color="{getStyle('yourCssPropertyName')} />

    【讨论】:

      【解决方案2】:

      另一种方法是编写你的皮肤,这样它们就可以引用它们的宿主组件(参见 [1])。然后扩展当前主机组件,使它们具有您要指定的每种颜色的属性(例如,您将使用borderColor 和fillColor 作为新属性,而不是使用)。

      不过,老实说,弗洛里安的回答可能是更好的选择。

      [1] - http://www.adobe.com/devnet/flex/quickstarts/skinning_components.html#host

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多