如何使用 Apache Royale 设置按钮样式

How to style Button with Apache Royale

使用 apache-royale-0.9.6-bin-js\royale-asjs\examples 中的示例,我尝试更改按钮的背景或字体颜色。

所以,我找到了一个如何为 js|TextButton 使用样式的示例,但我问了自己几个问题:

1) 如何用 j|Button 做同样的事情?

2) 如果我想在 clic 上更改 j|Button 的颜色怎么办(搜索 'setStyle' 等效项)

完整代码如下:

<js:Application 
               xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:js="library://ns.apache.org/royale/basic" 
               xmlns:j="library://ns.apache.org/royale/jewel" >

    <fx:Style>
        @namespace j "library://ns.apache.org/royale/jewel";
        @namespace js "library://ns.apache.org/royale/basic";

        j|Button {
            color : #ffA3EE ; /*Has no effect, not sure I do the right things*/
        }

        js|TextButton {
            background-color: #fc0000;
            border-radius : 6px ;
            font-weight : normal ;
            line-height : 1.4 ;
            color : #ffA3EE ;
            font-size : 15px ;
            padding : 5px ;
        }

        js|TextButton:hover {
            background-color: #CFCFCF;
            vertical-align: middle;
            border: none;
            border-radius: 6px;
        }

        js|TextButton:active {
            background-color: #77CEFF;
            color: #FFFFFF;
        }
    </fx:Style>

    <fx:Script>
        <![CDATA[
            private function ev_clic_jbutton():void{
                //jbutton.setStyle("color",0x00ff00); // How to do to change color ?
            }
        ]]>
    </fx:Script>


    <js:valuesImpl>
        <js:SimpleCSSValuesImpl />
    </js:valuesImpl>

    <js:beads>
        <js:ApplicationDataBinding />
    </js:beads>

    <js:initialView>
        <js:View width="100" height="100" >

            <j:HGroup gap="10">
                <j:Button id="jbutton" click="ev_clic_jbutton()" text="J Button" width="100" height="100"/>
                <js:TextButton text="JS TextButton" width="100" height="100"/>
            </j:HGroup>

        </js:View>
    </js:initialView>
</js:Application>

此致

对于 Jewel,样式是通过 CSS 修改的。选择器使用以下格式:.jewel.<component-name>。在 Jewel Button 的情况下,使用以下立即影响 all 个珠宝按钮并将文本标签的颜色更改为红色:

    <fx:Style>
    .jewel.button
    {
        color: #ff0000;
    }
    </fx:Style>

(您也可以在外部 CSS 文件中添加此选择器,而不是在 MXML 或 AS3 中)

编译器将输出此选择器规则而不是 Jewel 主题中的规则,因为您的项目优先。

仅更改一个实例:

    .jewel.button.mystyle
    {
       color: #00ff00;
    }

并使用它:

<j:Button text="A Button" className="mystyle"/>

上一个按钮会将文本标签的颜色更改为绿色。

此外,您可以像以前一样使用 j|Button 在运行时更改或添加珠子 (IBead)

对于基本组件,所有组件都是通过 js|Button、珠子和 CSS 样式完成的。