2012-11-07 71 views
0

我有一个屏幕上的火花按钮,我动态更新标签使用ActionScript,像这样:动态标签截断火花按钮

discount.label = this.data.SelectedDiscount.discount + "%"; 

的问题是,新的标签文字截断,即使有它的空间。

最初在按钮上的标签是空白:

Black button label

后来我一改,上面有一张看起来像这样的代码标签,当它应该说“30%”:

Truncated text

但是,如果我再点击更新显示和正确呈现它的按钮:

Correct rendering of the label

我试过所有各种无效和验证方法,玩按钮宽度和更多,都没有用。如果最初的标签更宽,像“-------”这样的值,那么它可以正常工作,但不幸的是,一串空格不能实现。由于可用性的原因,我不是真的想要一串“0%”或“00%”,所以有没有简单的方法可以正常工作?

最好我想避免为了达到这个目的而点击鼠标。

+0

不应该发生的那得到了这个工作。你的皮肤类中必须有东西。你能告诉我们一些代码吗? – RIAstar

+0

折扣是Button类的一个实例,是否正确?您是否在Button的labelDisplay外观部分尝试了invalidatingSize()? (http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/spark/components/Button.html#SkinPartSummary)。展示问题的可运行示例在这里会有所帮助。 – JeffryHouser

+0

折扣是mxml中的一个按钮,如下所示:“” - 我应该提到这是在一个项目渲染器中。 –

回答

1

感谢@ www.Flextras.com的指导下,我通过调用按钮的皮肤invalidateSize()方法,而不是按钮本身,即:

discount.skin.invalidateSize(); 
+1

有趣。我不知道如果在按钮上调用invalidateSkinState()会有相同的影响。 – JeffryHouser

+1

只是出于兴趣,再次没有更新标签,直到我点击它! –