【发布时间】: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