【问题标题】:Label does not render the string "0" (Flex 4.5)标签不呈现字符串“0”(Flex 4.5)
【发布时间】:2011-10-05 06:36:31
【问题描述】:

我正在编写一个自定义图表组件。为了添加标签,我创建了一个火花标签并将其添加到屏幕上。尽管渲染了所有其他标签,但我注意到零标签根本没有渲染。这是我的代码:

var invisibleTextField:TextField = new TextField();
var zeroLabel:spark.components.Label = new spark.components.Label();
zeroLabel.text = "0";
zeroLabel.name = "0Label";
invisibleTextField.text = " 0 ";
zeroLabel.width = invisibleTextField.textWidth;
zeroLabel.height = invisibleTextField.textHeight;
addChild(zeroLabel);

经过多次尝试,我认为标签将“0”丢弃为空字符串。我设法在零之前和之后使用空格来解决。只有一个空间也可以,但我需要居中对齐。有人知道为什么会这样吗?

【问题讨论】:

  • 很可能在幕后某处正在执行“if(text)”并且您的 0 值返回 false。您可能必须倾注框架代码才能找到并修复它。也就是说,给标签命名以数字开头是非常不寻常的。名称(和 ID)通常应遵循变量命名约定。
  • 真的吗?就 AS3 而言,Boolean("0")==true
  • 为什么是 TextField?这是您解决方法的一部分吗?
  • @sixfeetsix TextField 的要点。很有可能考虑到 invisibleTextField 从未作为子项添加,它没有高度或宽度。
  • 所以,标签确实在那里,但它的宽度和高度值令人困惑。

标签: string actionscript-3 apache-flex label flex-spark


【解决方案1】:

将文本填充到文本字段与更新其尺寸之间存在延迟。尝试使用 TextExtent 而不是不可见的文本字段来执行您正在执行的操作。

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/TextExtent.html

【讨论】:

    猜你喜欢
    • 2021-11-14
    • 2013-07-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    相关资源
    最近更新 更多