Flex中的CSS寻址:仅RichTextEditor中的按钮?
我想更改RichTextEditor工具栏中按钮的字体特征,但我希望它们与应用程序中的其他按钮不同有没有办法只使用CSS就可以做到这一点?我知道如果需要,我可以使用setStyle…有一种方法可以做到这一点,因为RichTextEditor的子组件是用MXML声明的,因此可以公开访问,那就是在运行时分别分配它们的Flex中的CSS寻址:仅RichTextEditor中的按钮?,css,apache-flex,addressing,Css,Apache Flex,Addressing,我想更改RichTextEditor工具栏中按钮的字体特征,但我希望它们与应用程序中的其他按钮不同有没有办法只使用CSS就可以做到这一点?我知道如果需要,我可以使用setStyle…有一种方法可以做到这一点,因为RichTextEditor的子组件是用MXML声明的,因此可以公开访问,那就是在运行时分别分配它们的样式名属性(在容器的creationComplete事件触发后,确保编辑器及其所有子项都已创建),如下所示: <mx:Style> .myRTECombo
样式名
属性(在容器的creationComplete
事件触发后,确保编辑器及其所有子项都已创建),如下所示:
<mx:Style>
.myRTECombo
{
color: #FF0000;
}
</mx:Style>
<mx:Script>
<![CDATA[
private function creationCompleteHandler(event:Event):void
{
rte.fontFamilyCombo.styleName = "myRTECombo";
rte.fontSizeCombo.styleName = "myRTECombo";
}
]]>
</mx:Script>
<mx:RichTextEditor id="rte" />
桃金娘
{
颜色:#FF0000;
}
Flex文档不调用子组件(“boldButton”、“fontSizeCombo”等)通过ID,但组件的源代码可供查看,因此您应该能够从源代码本身获取所需的所有信息。由于我使用FlexBuilder,我通常使用Eclipse Ctrl+单击快捷键,在标记/类名上跳转到关联的类定义文件,但您也可以直接在[installDir]打开源文件/sdks/[version]/frameworks/src/mx/RichTextEditor.mxml让您自己看看
我确信还有其他方法(setStyle
就是其中之一,尽管出于性能原因,通常不鼓励显式使用它),但这应该适合您。不过,当您深入了解组件的源代码时,您会发现,默认按钮集中的许多按钮实际上使用PNG(例如,icon\u style\u bold.png
),而不是文本,这就是为什么我的示例中包含了对组合框的引用,以便您可以看到颜色更改是如何应用的;如果您想更改按钮的外观,请注意它们使用的是可设置样式的icon
属性,而不是字体样式设置,以获得它们的外观和感觉
希望有帮助!一种方法是,因为RichTextEditor的子组件是用MXML声明的,因此可以公开访问,所以在运行时(在容器的
creationComplete
事件触发后,确保编辑器及其所有子项都已创建)分别分配它们的styleName
属性,例如:
<mx:Style>
.myRTECombo
{
color: #FF0000;
}
</mx:Style>
<mx:Script>
<![CDATA[
private function creationCompleteHandler(event:Event):void
{
rte.fontFamilyCombo.styleName = "myRTECombo";
rte.fontSizeCombo.styleName = "myRTECombo";
}
]]>
</mx:Script>
<mx:RichTextEditor id="rte" />
桃金娘
{
颜色:#FF0000;
}
Flex文档不调用子组件(“boldButton”、“fontSizeCombo”等)通过ID,但组件的源代码可供查看,因此您应该能够从源代码本身获取所需的所有信息。由于我使用FlexBuilder,我通常使用Eclipse Ctrl+单击快捷键,在标记/类名上跳转到关联的类定义文件,但您也可以直接在[installDir]打开源文件/sdks/[version]/frameworks/src/mx/RichTextEditor.mxml让您自己看看
我确信还有其他方法(setStyle
就是其中之一,尽管出于性能原因,通常不鼓励显式使用它),但这应该适合您。不过,当您深入了解组件的源代码时,您会发现,默认按钮集中的许多按钮实际上使用PNG(例如,icon\u style\u bold.png
),而不是文本,这就是为什么我的示例中包含了对组合框的引用,以便您可以看到颜色更改是如何应用的;如果您想更改按钮的外观,请注意它们使用的是可设置样式的icon
属性,而不是字体样式设置,以获得它们的外观和感觉
希望有帮助!谢谢@Christian Nunciato!这是我的最后一段代码,在我的组件RichTextEditor(扩展它)中。在creationComplete中,我称之为
private function setUpStyleNames():void {
setUpStyleNamesInner(toolbar.getChildren());
setUpStyleNamesInner(toolBar2.getChildren());
}
private function setUpStyleNamesInner(children:Array):void {
for each (var child:DisplayObject in children) {
if (child is UIComponent) {
UIComponent(child).styleName = "rteInnards";
}
}
}
然后在我的样式表中,我有这个
.rteInnards {
color: #FF0000;
fontSize: 25px;
}
太棒了。再次感谢!谢谢@Christian Nunciato!这是我的最后一段代码,在我的组件中是一个RichTextEditor(扩展它)。在creationComplete中,我称之为
private function setUpStyleNames():void {
setUpStyleNamesInner(toolbar.getChildren());
setUpStyleNamesInner(toolBar2.getChildren());
}
private function setUpStyleNamesInner(children:Array):void {
for each (var child:DisplayObject in children) {
if (child is UIComponent) {
UIComponent(child).styleName = "rteInnards";
}
}
}
然后在我的样式表中,我有这个
.rteInnards {
color: #FF0000;
fontSize: 25px;
}
太棒了。再次感谢!太棒了……我实际上在RTE中添加了组件,并在工具栏中添加了按钮。我只是不知道你可以给东西命名样式名称……我会尝试一下,但这是一个很好的方法。谢谢。你明白了——让我知道它是怎么回事!干杯。检查我的答案(下面或上面?)问题:工作起来很有魅力。那太棒了……我实际上在RTE中添加了组件,并在工具栏中添加了按钮。我只是不知道你可以给东西命名样式名称……我会尝试一下,但这是一个很好的技巧。谢谢。你明白了——让我知道它是怎么回事!干杯。检查我的答案(下面或上面?)对问题的回答是:工作起来很有魅力。