【问题标题】:Setting text color of spark.components.Label设置 spark.components.Label 的文本颜色
【发布时间】:2011-11-17 09:11:20
【问题描述】:

我有一个非常简单的自定义组件,由两个 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 次)。

【问题讨论】:

  • 我测试了你的代码,它对我有用......也许你应该给我们更多的细节。
  • 感谢您的尝试,我很抱歉:我的主要源代码中有一个错字 - 来自于我的业余项目的深夜工作。

标签: apache-flex label flex4 flex4.5 flex-spark


【解决方案1】:

如果没有对 Label 的隐式转换,Flash Builder Premium 4.6 似乎根本无法编译,因为它说明了以下内容:

此行有多个标记: -标签显示 -1061: 通过静态类型 spark.core:IDisplayText 的引用调用可能未定义的方法 setStyle。

如果你改变:

_right.setStyle('color', n);

到这里:

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

它应该可以工作。

【讨论】:

  • 请哪个版本的 flash builder 编译此代码?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-29
  • 1970-01-01
  • 1970-01-01
  • 2013-07-29
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多