Playn文字包装和样式问题

时间:2012-05-25 09:44:18

标签: styles playn

在Effect.shadow()中,在PlayN1.3中不推荐使用。所以我之前有类似的东西:

TextFormat textFormat = new TextFormat(myFont, textWidth, Alignment.LEFT, colorCode, Effect.shadow(-16777216, shadowX, shadowY));

所以我改为:

TextFormat textFormat = new TextFormat();
textFormat.withFont(myFont);
textFormat.withWrapping(textWidth, Alignment.LEFT);

我现在不想要阴影。没关系,但我之前没有得到像结果。请继续。现在就想。然后我将此代码更改为:

TextFormat textFormat = new TextFormat().withFont(myFont).withWrapping(textWidth, Alignment.LEFT);

它给了我以前的结果,除了阴影,我现在不在乎。如果我没有错,这是上面代码的一行代表。不是吗? 那么为什么它起作用而且上面的代码没有。任何概念上的区别都存在?任何人都可以解释!

//注意:不要担心变量(textWidth,myFont),它们与此无关。

1 个答案:

答案 0 :(得分:1)

TextFormat对象是不可变的。当您调用textFormat.withFont(myFont)时,它返回一个 new TextFormat实例,上面的代码将丢弃。如果你想要第一个代码工作,你需要这样写:

TextFormat format = new TextFormat();
format = format.withFont(myFont);
format = format.withWrapping(textWidth, Alignment.LEFT);