回答
使用system.Capabilities检测系统语言设置可能不是最佳路线采取。例如你可能会有一个说英语的人在印度工作,想要使用你的文件。
您可能想要构建某种语言选择选项。
在这个例子中,我设置了一个变量(alphabetToUse),无论选择的语言是否为拉丁语。
var myFont:Font;
var alphabetToUse:String;
myFont = new DinReg();
//for latin
var myFormat:TextFormat = new TextFormat();
myFormat.size = 14;
myFormat.align = TextFormatAlign.LEFT;
myFormat.font = myFont.fontName;
//for anything else
var myDefaultFormat:TextFormat = new TextFormat();
myDefaultFormat.size = 14;
myDefaultFormat.align = TextFormatAlign.LEFT;
myDefaultFormat.font = "_sans";
var myText:TextField = new TextField();
myText.type = TextFieldType.DYNAMIC;
myText.antiAliasType = AntiAliasType.ADVANCED;
myText.textColor = 0xFFFFFF;
myText.multiline = true;
if(alphabetToUse == "latin") {
myText.embedFonts = true;
myText.defaultTextFormat = myFormat;
} else {
myText.embedFonts = false;
myText.defaultTextFormat = myDefaultFormat;
}
myText.border = false;
myText.wordWrap = true;
myText.width = 345;
myText.height = 28;
myText.x = 0;
myText.y = 0;
addChild(myText);
myText.htmlText = "some text";
要检测客户端的当前语言,你可以使用:
flash.system.Capabilities.language; //in my case returns "en"
动态地加载在运行时的字体也有一些很好的教程在那里,包括这一个:http://bryanlangdon.com/blog/2007/03/22/loading-fonts-dynamically-in-actionscript-2-and-3/
我希望有所帮助。
编辑
要动态更改已嵌入字体,在字体的第一轮嵌入你个人的文本字段:(未经测试的代码)
myTextField_txt.embedFonts = true;
然后创建和设置文本格式您想要更改的textFields。喜欢的东西:
var myformat:TextFormat = new TextFormat();
myformat.font = "_sans";
myTextField_txt.setTextFormat(myformat);
您还可以选择设置在的TextFormat额外的东西,如大小,颜色等。
我不想加载字体 - 我只想使用_sans系统字体。如何将文本行为更改为_sans? – Uli 2012-01-28 22:02:36
请参阅编辑,如果有错别字或者我错过了让我知道的事情。 – ToddBFisher 2012-01-28 22:30:20
字体部分不起作用。字体保持不变。 – Uli 2012-01-28 23:05:53
要使用系统_sans字体使用下面的代码:
var tf : TextField = new TextField(); // create a text field
var fmt : TextFormat = new TextFormat(); // create a text format
with(fmt) {
font = "_sans"; // using sans results in the use of arial on windows and helvetica on MacOS
size = 12;
color = 0xFFFFFF; // white
}
with (tf) {
embedFonts = false; // if you skip this you'll get Times (at least in Windows)
defaultTextFormat = fmt;
}
不嵌入字体导致较小的SWF的短>>下载时间,车流量较少。 特别是如果你想能够使用不同的字符集(俄语,希腊语,中文)嵌入可以导致一个大的SWF文件大小。
- 1. 将值设置为TextField
- 2. Flash AS3 - 如何将导入的textfield movieclip设置为不可选
- 3. AS3 TextField - 将值设置为“”时将不需要的回车返回
- 4. 将TextArea转换为AS3中的TextField
- 5. iTextSharp Textfield将字体设置为粗体
- 6. 如何将焦点设置为materialUI TextField?
- 7. AS3 TextField为空,不接受我的任何设置?
- 8. textfield将不会清除,as3
- 9. AS3 TextField AntiAliasType breakWordWrap
- 10. AS3 TextField字体
- 11. AS3 AutoSize Textfield
- 12. AS3:TextField Focus
- 13. 将textfield值设置为null,用于登录j2me程序
- 14. AS3:将动画片段的帧位置设置为变量
- 15. AS3:更改MovieClip中的TextField
- 16. FireWatir TextField设置:非常慢
- 17. 如何从ParseQueryAdapter设置TextField?
- 18. 视频设置AS3
- 19. 为Heroku设置AS3; sendgrid的collectstatic错误
- 20. 如何在位置顶部设置TextField?
- 21. 没有麦克风活动,并将setLoopBack设置为false - AS3
- 22. 设置Textfield动画来移动键盘上方的TextField
- 23. 将TextField值转换为Int
- 24. as3 - 设置纹理alpha值
- 25. 在AS3中设置选择
- 26. AS3设置文本字段
- 27. 在textField中获取“arrow”符号AS3
- 28. 更改AS3中的TextField选择颜色
- 29. 如何在TextField AS3中更改大小?
- 30. AS3中TLFTextField/TextArea/TextField之间的区别
我得到一个错误**调用一个可能未定义的方法DinReg **什么是DinReg? – Uli 2012-01-29 19:31:11
这是我已经嵌入到库中的字体的名称。您需要将自己的字体嵌入到您的库中,并为其指定名称并使用该字体代替dinreg – crooksy88 2012-01-29 20:38:11
非常感谢!它正在工作! – Uli 2012-01-29 22:05:15