如何以不同的方式格式化不同的文本行,从AS3中创建的文本字段,以及从txt文件填充的文本?

时间:2016-04-01 16:52:23

标签: actionscript-3 flash actionscript adobe action

所以我在AS3中有一个flash文件,最新版本的flash。

它在AS3中创建一个文本框。然后它使用AS3从文本文件中抓取文本(2行)并加载它。然后我使用更多代码来格式化文本大小,字体,颜色等。

但是现在......我需要文本框的第1行是某种格式(大,上限),第二行是不同的格式(更小,没有上限)

以下是我的所有代码:

//BEGIN TXT LOADER
var myTextLoader:URLLoader = new URLLoader();
var winnerText:TextField = new TextField();

myTextLoader.addEventListener(Event.COMPLETE, onLoaded);

function onLoaded(e:Event):void {
winnerText.text = e.target.data;
addChild(winnerText);
}

myTextLoader.load(new URLRequest("EditableText.txt"));

//BEGIN TEXT BOX FORMATTING
winnerText.width = 1920;
winnerText.height = 300;
winnerText.y = 430;

//BEGIN TEXT & FONT FORMATTING
var casinoBranding:TextFormat = new TextFormat();

casinoBranding.size = 90;
casinoBranding.align = TextFormatAlign.CENTER;
casinoBranding.font = "Bliss Pro";
casinoBranding.leading = -50;
winnerText.defaultTextFormat = casinoBranding;

2 个答案:

答案 0 :(得分:0)

您可以像@Aaron建议的那样应用TextFormat。另一种方法是使用样式表。这是一个例子

http://snipplr.com/view/39474/as3-textfield-and-stylesheet-example-created-in-actionscript/

答案 1 :(得分:0)

您可以使用TextField/setTextFormat()TextFormat应用于特定范围的文字。

要将不同的文本格式应用于第一行文本,您可以执行以下操作:

var casinoBranding:TextFormat = new TextFormat();
var casinoBrandingFirstLine:TextFormat = new TextFormat();
// ... apply formatting options

function onLoaded(e:Event):void {
    winnerText.defaultTextFormat = casinoBranding;
    winnerText.text = e.target.data;
    winnerText.setTextFormat(casinoBrandingFirstLine, 0, winnerText.getLineOffset(1));
}

请注意,如果涉及自动换行,则会更改"第一行"真的意思是。