Flex:在 AS3 中更改 Flex 组件样式

Posted

技术标签:

【中文标题】Flex:在 AS3 中更改 Flex 组件样式【英文标题】:Flex: changing Flex component styles in AS3 【发布时间】:2010-12-13 04:53:42 【问题描述】:

在 MXML 中,有一个 Button 类,您可以像这样实例化它:

<mx:Button id="something />

但是如果您想在 AS3 中动态构建它并将其动态添加到 Flex 应用程序,而不使用组件(仅 AS3)然后修改 Flex 的样式,例如,您可以在此处访问 Button 的属性并设置它们:

var btn:Button = new Button();
btn.height = 50;
btn.width = 75;
btn.x = 100;
btn.y = 40;

但是您将如何更改样式,例如:

btn.downSkin = "something";
btn.color = "0xfffff";

我开始倾向于在 MXML 中制作一个 flex 组件,而不仅仅是让它可见真/假,但我喜欢我在 AS3 中创建一个对象,然后在我不需要它时销毁它的事实不再,而不是在需要时再次创建它。

【问题讨论】:

【参考方案1】:

您可以使用 CSS,内联或作为外部 CSS 文件。这样您就不必在每次创建按钮时手动设置属性。

/* CSS file */
Button 
    borderColor: red;

查看Styling Button control, by Peter deHaan(另请阅读该帖子中的 cmets)。

【讨论】:

是的,我正在考虑将它与 CSSStyleDeclaration 类一起使用。不确定哪个会更好。 我更喜欢扁平的外部 CSS 文件作为我的通用样式。然后,如果我需要一些不同的东西,我会使用 setStyle。没必要把事情复杂化。让自己轻松一点。【参考方案2】:

This page有解决问题的办法:

在 ActionScript 中设置和获取 Style 属性:
// setting a components styleName to reference a CSS class
component.styleName = "highlight";

// set a Button's background color and font size
submitButton.setStyle( "backgroundColor", 0x000000 );
submitButton.setStyle( "fontSize", 14 );

// get a TextArea's font family and color
textArea.getStyle( "fontFamily" );
textArea.getStyle( "color" );

【讨论】:

啊……我不知道我是怎么错过的。非常感谢杰森。

以上是关于Flex:在 AS3 中更改 Flex 组件样式的主要内容,如果未能解决你的问题,请参考以下文章

为不可编辑的 textinput 和 textarea flex 组件设置样式

AS3/Flex 自定义 TextInput 组件填充

如何创建自定义 Flex 4 组件

可以在状态更改时更改组件 - Flex

Flex Builder AS3 项目迁移

为啥 flex 属性在反应样式的组件中不起作用?