gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 23:28:49 24 4
gpt4 key购买 nike

我有这个非常简单的自定义组件,由两个 Labels 组成: _左 _对 .

它应该代表游戏中的几种分数: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}"/>

并更改 _颜色 成员,但我不想再引入一个数据绑定(bind),因为我的应用程序中会有很多 ScoreLabel:

screenshot

(如您在上面看到的,所有数字都是绿色的 - 尽管 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);

它应该工作。

关于apache-flex - 设置 spark.components.Label 的文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8164597/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com