Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 文本格式和文本字段在FlashPlayer外部显示不同_Actionscript 3_Flashdevelop - Fatal编程技术网

Actionscript 3 文本格式和文本字段在FlashPlayer外部显示不同

Actionscript 3 文本格式和文本字段在FlashPlayer外部显示不同,actionscript-3,flashdevelop,Actionscript 3,Flashdevelop,我一直在使用像这样的文本字段为游戏渲染文本。我一直在用FlashDevelop开发,所以SWF是用Flex编译器编译的 我的问题是,当我在浏览器中查看此文本时,它没有以适当的格式显示,而不是使用flashplayer(看起来不错)。不同的屏幕分辨率在如何扭曲浏览器中的文本方面往往有所不同。为什么会这样 var welcomeText:TextField = new TextField(); //formatText creates a TextFormat object, sets thos

我一直在使用像这样的文本字段为游戏渲染文本。我一直在用FlashDevelop开发,所以SWF是用Flex编译器编译的

我的问题是,当我在浏览器中查看此文本时,它没有以适当的格式显示,而不是使用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";
试着看一看。我知道我过去在格式化方面遇到过麻烦,所以我设置了一个TextFormat对象,就像你一样,而且我使用

testfield.SetStyle()
指挥也是如此。您可以通过与本例类似的SetStyle(字体系列、颜色、甚至文本格式)设置许多参数

TextFormat textStyle;
// Set properties for textstyle
textField.setStyle("textFormat", textStyle);

希望这能有所帮助。我想,尽可能多地设置它。

这很可能是因为您没有嵌入字体。相反,您使用的是系统(或浏览器)可用的Courier字体。虽然这样可以节省文件大小(字体没有打包在SWF中),但它看起来并不总是那么好

为了使用嵌入式字体,您需要做两件事

1。将文本字段的“EmbeddeFonts”设置为true

welcomeText.embedFonts = true;
2。嵌入字体

您可以使用AS3中的元数据嵌入字体文件,如下所示:

[Embed(source="C:\WINDOWS\Fonts\COURIER.TTF", fontFamily="Courier")]
var _courier:String;
myTextFormat.font = _courier;
var _font:Courier_Font = new Courier_Font();
myTextFormat.font = _font.fontName;
注意:您还可以在Flash Professional库中创建字体链接。在库中,选择“新建字体…”,将其命名。完成后,右键单击字体并选择“链接…”给它一个类名(比如“Courier_font”),然后导出为SWC。将其添加到IDE中的类路径中,字体将如下所示:

[Embed(source="C:\WINDOWS\Fonts\COURIER.TTF", fontFamily="Courier")]
var _courier:String;
myTextFormat.font = _courier;
var _font:Courier_Font = new Courier_Font();
myTextFormat.font = _font.fontName;

我很确定这就是问题所在。区别不在于屏幕分辨率或浏览器,而在于操作系统。在Windows上渲染效果良好,但在Mac和Linux中,文本突然出现问题(恢复到某些默认设置)。嵌入flashpro看起来很简单,但是当我使用flashdevelope时,嵌入文本比预期的要复杂。这是另一个在这个网站上被广泛报道的问题。谢谢