Kev*_*ore 10 apache-flex flexbuilder flex3
我正在创建一个新的Flex组件(Flex 3).我希望它有一个默认样式.是否有命名约定或我的.cs文件的某些内容使其成为默认样式?我错过了什么吗?
Christian对于应用CSS是正确的,但如果您计划在项目库中使用组件,那么您将要为该库编写默认的css文件.这是你如何做到的:
这就是Adobe团队设置所有默认样式的方式,现在您也可以这样做.刚想出来这个巨大的
通常有两种方式.一个是直接引用类名 - 例如,如果您MyComponent
在ActionScript中创建了一个新的组件类,或者通过使MXML组件扩展另一个调用的UIComponent来间接MyComponent
,则在这两种情况下,组件都会获取声明的样式在外部样式表中,只要样式表已导入到您的应用程序中(例如,通过Style source
):
MyComponent
{
backgroundColor: #FFFFFF;
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是设置UIComponent的styleName
属性(作为字符串):
public class MyComponent
{
// ...
this.styleName = "myStyle";
// ...
}
Run Code Online (Sandbox Code Playgroud)
...并在CSS文件中定义样式,如下所示(注意点符号):
.myStyle
{
backgroundColor: #FFFFFF;
}
Run Code Online (Sandbox Code Playgroud)
合理?
除了Christian Nunciato所建议的,另一个选择是为Flex组件的样式定义一个静态初始化器.这允许您设置默认样式,而无需开发人员包含CSS文件.
private static function initializeStyles():void
{
var styles:CSSStyleDeclaration = StyleManager.getStyleDeclaration("ExampleComponent");
if(!styles)
{
styles = new CSSStyleDeclaration();
}
styles.defaultFactory = function():void
{
this.exampleNumericStyle = 4;
this.exampleStringStyle = "word to your mother";
this.exampleClassStyle = DefaultItemRenderer //make sure to import it!
}
StyleManager.setStyleDeclaration("ExampleComponent", styles, false);
}
//call the static function immediately after the declaration
initializeStyles();
Run Code Online (Sandbox Code Playgroud)