这是一个非常奇怪的问题。我创建了我自己的CustomTextField类,用于嵌入字体并设置defaultTextFormat。这工作非常好,但由于某种原因,当我尝试在除了父应用程序之外的任何模块中创建新的CustomTextField时,文本文本仅有时显示。Flex模块和自定义文本字段
这里是我CustomTextField类:
package uk.package.text
{
import flash.text.AntiAliasType;
import flash.text.Font;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
public class CustomTextField extends TextField
{
[Embed(source='../assets/fonts/Arial.ttf',fontName='CustomFont',fontWeight='regular',
unicodeRange='U+0020-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+0080-U+00FF,U+0100-U+017F,U+0400-U+04FF,U+0370-U+03FF,U+1E00-U+1EFF',
mimeType='application/x-font-truetype'
)]
public static var MY_FONT:Class;
[Embed(source='../assets/fonts/Arial Bold.ttf',fontName='CustomFont',fontWeight='bold',
unicodeRange='U+0020-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+0080-U+00FF,U+0100-U+017F,U+0400-U+04FF,U+0370-U+03FF,U+1E00-U+1EFF',
mimeType='application/x-font-truetype'
)]
public static var MY_FONT_BOLD:Class;
public static const DEFAULT_FONT:String = "Arial";
public static const DEFAULT_TEXT_COLOUR:int = 0x000000;
public static const DEFAULT_TEXT_SIZE:int = 14;
private var _tf:TextFormat = new TextFormat(DEFAULT_FONT, DEFAULT_TEXT_SIZE, DEFAULT_TEXT_COLOUR);
public function CustomTextField():void
{
var CustomFont:Font = new MY_FONT();
_tf.font = CustomFont.fontName;
_tf.size = 16;
embedFonts = true;
antiAliasType = AntiAliasType.ADVANCED;
defaultTextFormat = _tf;
autoSize = TextFieldAutoSize.LEFT;
}
public override function set htmlText(value:String):void
{
super.htmlText = value;
setTextFormat(_tf);
}
public function get textFormat():TextFormat
{
return _tf;
}
}
}
这很奇怪它怎么有时工作,有时不......或许有一些奇怪的事情与模块?
我试过这两个,但仍然遇到问题。如果你确实设法找出答案,它会非常感激! – Hanpan