使用CoronaSDK更改字体样式

我一直在查看 Corona 文档,但我没有看到任何更改 display.newText 对象字体样式的内容。我知道当您首次创建对象时,可以将字体参数设置为您喜欢的任何内容。我知道您还可以通过将字体名称添加到构建设置文件中来进行自定义字体。但是,我想做的是在已经声明 display.newText 后更改文本的字体样式。我试图做的是这样的:

local text = display.newText("title", display.contentWidth/2, display.contentHeight/2, native.systemFont, 12)

text.font = "Comic Sans MS"

上面的代码没有在终端中给出任何错误,但字体没有更改。有什么想法吗?

点赞
用户501459
用户501459

【The Text object doesn't support that.】(http://developer.anscamobile.com/content/text-display-objects) 它的接口总体上非常贫乏(你可以在那个页面上看到5个月前的相关投诉)。【在这里也能看到】(http://developer.anscamobile.com/forum/2010/03/03/set-font-text-object-iterate-over-obejct-properties)

(旁注:如果您是经验丰富的开发人员,尚未深入一个项目,一个替代方案是切换到MOAI,它是免费的,开源的,拥有更加灵活的API。您可以完全控制文本([MOAITextBox](http://getmoai.com/docs/class_m_o_a_i_text_box.html),[MOAITextStyle](http://getmoai.com/docs/class_m_o_a_i_text_style.html),[MOAIFont](http://getmoai.com/docs/class_m_o_a_i_font.html))等其他方面。然而,它也非常不友好。)

2012-06-15 23:13:02
用户1137788
用户1137788

查看此教程,了解如何使用自定义字体

http://www.coronalabs.com/blog/2011/07/13/custom-fonts-corona/

编辑

好的,我没有完全阅读您的问题。您想动态更改字体。 我想唯一的方法是删除显示对象,并使用新字体重新插入它。

像这样

local text = display.newText("title", display.contentWidth/2, display.contentHeight/2, native.systemFont, 12)

--过些时间
local txt = text.text
local size = text.size
local left = text.contentBounds.xMin
local top  = text.contentBounds.yMin

text:removeSelf()
text = display.newText(txt, left, top, "Comic Sans MS",size)
2012-06-18 05:10:26