【发布时间】:2011-09-02 18:34:46
【问题描述】:
我有各种通过程序化皮肤进行皮肤设计的组件。皮肤类引用了一个单例类,该类包含要应用于组件不同方面的各种颜色。单例类的默认颜色设置为黑色/灰色等变体。我从 XML 文件加载自定义颜色,然后将其加载到单例中。我正在通过包含在主应用程序 mxml 中的 css 样式表应用自定义皮肤。
问题是当 swf 最初加载时,在屏幕上绘制的组件是黑色的,并且不反映从 XML 文件加载的颜色变化。我有一些下拉窗口显示在按钮单击上,这些下拉窗口确实反映了 XML 文件中的正确颜色。因此,系统工作正常,但组件的初始绘制显然发生在 XML 加载并应用于单例之前。
我的问题是,有没有办法通过调用构造函数以编程方式将皮肤应用于元素?
我的 css 文件中有这个:
.PanControlsBackground {
borderSkin:ClassReference('skins.buttons.PanControlsBackground');
}
我正在应用这个类:
_app.panControls.styleName = "PanControlsBackground";
有没有办法调用:
_app.panControls.styleName = new PanControlsBackground();
或类似的东西?这样,我可以在 css 文件中删除皮肤的加载并控制它们何时被实例化,以确保在显示各种组件之前应用正确的颜色。
【问题讨论】:
标签: actionscript-3 apache-flex flex4