认为这会奏效......
var bFormat:TextFormat, bStartText:TextField, bQuitText:Textfield;
bFormat = getFormat();
bStartText = getText("Start");
bStartText.defaultTextFormat = bFormat;
bQuitText = getText("Quit");
bQuitText.defaultTextFormat = bFormat;
stage.addChild(bStarText);
stage.addChild(bQuitText);
function getFormat():TextFormat {
var bFormat:TextFormat = new TextFormat();
bFormat.font = "Arial";
bFormat.color = 0X000000;
bFormat.size = 28;
bFormat.align = "center";
return bFormat;
}
function getText(sText):TextField {
var bText:TextField = new TextField();
bText.text = sText;
bText.x = -4;
bText.y = 4;
return bText;
}
两个文本字段都显示在舞台上,但是我没有获得getFormat()中指定的任何格式。我把getFormat()的代码放在主代码中(而不是它自己的函数),它工作正常。我错误地传递了它吗?
答案 0 :(得分:3)
defaultTextFormat
之前,需要设置 text
。由于您在getText中设置了TextField的text
,因此它没有任何效果。
试试这个:
var bFormat:TextFormat, bStartText:TextField, bQuitText:Textfield;
bFormat = getFormat();
bStartText = getText("Start",bFormat);
bQuitText = getText("Quit",bFormat);
stage.addChild(bStarText);
stage.addChild(bQuitText);
function getFormat():TextFormat {
var bFormat:TextFormat = new TextFormat();
bFormat.font = "Arial";
bFormat.color = 0X000000;
bFormat.size = 28;
bFormat.align = "center";
return bFormat;
}
function getText(sText:String, tf:TextFormat):TextField {
var bText:TextField = new TextField();
bText.defaultTextFormat = tf;
bText.text = sText;
bText.x = -4;
bText.y = 4;
return bText;
}
如果您想更改已设置的文本字段的格式,可以在setTextFormat
类上使用TextField
。