近日在处理项目一个小问题时发现,在AS3 项目中,通过代码方式添加TextField到场
景,无论如何都无法修改字体。反之,在Flash IDE中,直接拖一个TextField之后却可以应
用字体设置。
这个问题对于我们正在做的项目来讲,就颇为棘手了,因为我们的需求注定了我们必须
使用代码方式将TextField添加至场景。
最初我们采用以下代码将TextField加入场景:
1 public function init():void { 2 var fmt:TextFormat = new TextFormat("新宋体", 12, 0xFFFFFF); 3 _chatText = new TextField(); 4 _chatText.defaultTextFormat = fmt; 5 this.AddChild(_chatText); 6 }
但是经过测试发现,无论如何均无法设置字体。后经过在网上大量搜索相关信息,无
奈得出结论无法这样搞。后来突发奇想按理说不应该出现这种问题吧,试试能否通过这种
将TextField改变为其他英文字体,这样一测试,发现此猜想行得通。遂将上段代码改为下
段之后,发现可以正常改变字体了~~
1 public function init():void { 2 var fmt:TextFormat = new TextFormat(" NSimSun", 12, 0xFFFFFF); 3 _chatText = new TextField(); 4 _chatText.defaultTextFormat = fmt; 5 this.AddChild(_chatText); 6 }
结论:因ActionScript 3最初设计时并未考虑多国语言特性,所以导致该问题的发生。
以后出现类似问题时需多思考,网上搜索的信息不一定准确。
ps:在最近开发中还发现了其他AS3的一些bug,空了另行撰文说明之~~~
再ps一个: 本文原创,转摘时,请注明作者和出处。 & Shrimps
最后ps一下:希望该文对有需要滴人有所帮助~~~欢迎大家交流,能post me一些AS交流群吗?thx