问题描述
我目前正在使用 Heaps 在 Haxe 中进行编码,并正在检查如何显示文本。我想做的一件事是为不同的文本提供不同的字体大小。当然,我声明了两个 Font 实例并调整了其中一个的大小。但是,两个文本都调整了大小,我无法独立调整它们的大小。我应该如何在堆中调整字体大小?
class Main extends hxd.App{
override function init(){
var font : h2d.Font = hxd.res.DefaultFont.get();
var font2 : h2d.Font = hxd.res.DefaultFont.get();
font2.resizeto(23);
var tf = new h2d.Text(font);
var tf2 = new h2d.Text(font2);
tf.text = "Hello World\nHeaps is great!";
tf.textColor = 0x00FF00;
tf.x = 100;
tf.y = 100;
tf.textAlign = Center;
tf2.text = "Hello World\nHeaps is great!";
tf2.textColor = 0x00FF00;
tf2.x = 300;
tf2.y = 300;
tf2.textAlign = Center;
s2d.addChild(tf);
s2d.addChild(tf2);
static function main(){
new Main();
}
}
解决方法
所采取的方法不起作用,因为 DefaultFont.get() 缓存了结果。
你可以:
- 通过执行
var font2 : h2d.Font = font.clone()
复制第二种字体,使其获得自己的属性。 - 调整
scaleX
和scaleY
的文本。