加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex – 设置spark.components.Label的文本颜色

发布时间:2020-12-15 01:46:40 所属栏目:百科 来源:网络整理
导读:我有这个非常简单的自定义组件,由两个 Labels:_left和_right组成. 它应代表游戏中的几种得分:1.2.3.4.5.6 最后一个数字(上例中的“6”)如果刚刚更改(在当前游戏回合中),则应采用粗体字体,否则所有数字应该相同. 最后一个数字也应该是红色或绿色(取决于它是
我有这个非常简单的自定义组件,由两个 Labels:_left和_right组成.

它应代表游戏中的几种得分:1.2.3.4.5.6

最后一个数字(上例中的“6”)如果刚刚更改(在当前游戏回合中),则应采用粗体字体,否则所有数字应该相同.

最后一个数字也应该是红色或绿色(取决于它是“坏”还是“好”分数).

这是ScoreLabel.mxml的源代码:

<?xml version="1.0" encoding="utf-8"?>
<s:HGroup 
    xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    gap="0">

    <fx:Script>
        <![CDATA[
            public function setText(str:String,changed:Boolean=false):void {
                if (!changed) {
                    _right.text = '';
                    _left.text = str;
                    return;
                }

                var array:Array = str.split('.');
                _right.text = array.pop();
                _left.text = array.join('.') + '.';
            }

            public function setColor(n:uint):void {
                _right.setStyle('color',n);
                trace('setColor: ' + n);
            }
        ]]>
    </fx:Script>

    <s:Label id="_left" width="100%" textAlign="right"/>
    <s:Label id="_right" width="25" fontWeight="bold" color="#006600"/>

</s:HGroup>

我的问题是:当我调用myLabel.setColor(0xFF0000)时;文本不会更改为红色,但保持默认的绿色 – 即使我可以在调试器中看到跟踪.

请问有什么想法,为什么颜色不变?

我也知道,我可以将上面的组件更改为:

private var _color:uint;

    <s:Label id="_right" width="25" fontWeight="bold" color="{_color}"/>

并更改_color成员,但我不想再引入一个数据绑定,因为我将在我的应用程序中有许多ScoreLabel:

(如上所示,所有数字都是绿色 – 尽管setColor(0xFF0000)已被调用3次).

解决方法

似乎没有对Label的隐式转换,Flash Builder Premium 4.6根本不会编译,因为它说明如下:

Multiple markers at this line:
-labelDisplay
-1061: Call to a possibly undefined method setStyle through a reference with static type spark.core:IDisplayText.

如果你改变:

_right.setStyle('color',n);

对此:

(_right as Label).setStyle('color',n);

它应该工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读