我一直在使用像这样的TextField来渲染游戏的文本。我一直在使用FlashDevelop进行开发,因此使用Flex编译器编译SWF。
我的问题是,当我在浏览器中查看该文本而不是flashplayer(看起来很好)时,该文本不会以适当的格式显示。不同的屏幕分辨率往往会改变它们在浏览器中扭曲文本的方式。为什么会这样?
var welcomeText:TextField = new TextField();
//formatText creates a TextFormat object, sets those values into TextFormat
//then returns after doing TextField.defaultTextFormat = TextFormatObj;
formatText(welcomeText, 3, 0xFFFFFF, "Courier");
welcomeText.width = 385;
welcomeText.height = 25;
welcomeText.x = 60;
welcomeText.y = 60;
welcomeText.text = "Cogito ergo sum";
答案 0 :(得分:0)
尝试查看this。我知道我以前在格式化方面遇到了麻烦,所以我设置了一个TextFormat对象,就像你一样,我使用
testfield.SetStyle()
命令也是如此。您可以通过类似于此示例的SetStyle(字体系列,颜色,甚至文本格式)设置许多参数...
TextFormat textStyle;
// Set properties for textstyle
textField.setStyle("textFormat", textStyle);
希望这会有所帮助。我想尽可能多地设置它。
答案 1 :(得分:0)
这很有可能发生,因为您没有嵌入字体。相反,您正在使用他们的系统(或浏览器)可用的Courier字体。虽然这节省了文件大小(字体没有打包在SWF中),但它看起来并不总是那么好。
要使用嵌入字体,您需要做两件事
<强> 1。将TextField的“embedFonts”设置为true
welcomeText.embedFonts = true;
<强> 2。嵌入字体
您可以在AS3中使用元数据来嵌入字体文件,如下所示:
[Embed(source="C:\WINDOWS\Fonts\COURIER.TTF", fontFamily="Courier")]
var _courier:String;
myTextFormat.font = _courier;
注意:您还可以在Flash Professional库中创建字体链接。在库中,选择“New Font ...”,将其命名。完成后,右键单击该字体并选择“Linkage ...”,为其指定一个类名(例如“Courier_Font”)并导出为SWC。将它添加到IDE中的类路径中,可以像这样访问字体:
var _font:Courier_Font = new Courier_Font();
myTextFormat.font = _font.fontName;