从函数设置TextField的defaultTextFormat

时间:2013-03-18 20:17:18

标签: actionscript-3 flash flashdevelop

认为这会奏效......

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()的代码放在主代码中(而不是它自己的函数),它工作正常。我错误地传递了它吗?

1 个答案:

答案 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