回答
使用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