2016-04-01 19 views
0

Also ich habe eine Flash-Datei in AS3, neueste Version von Flash.Wie formatiere ich verschiedene Textzeilen unterschiedlich von einem Textfeld, das in AS3 erstellt wurde, mit Text, der aus einer TXT-Datei besteht?

Es erstellt ein Textfeld in AS3. Es verwendet dann AS3, um Text aus einer Textdatei (2 Zeilen) zu greifen und lädt es. Ich benutzte dann weiteren Code, um die Textgröße, Schriftart, Farbe usw. zu formatieren.

Aber JETZT ... Ich benötige Linie 1 von das Textfeld ein bestimmtes Format (große, Kappen) und die zweite Linie zu sein ein anderes Format (kleine, keine Kappen)

Hier ist mein Code unten zu sein:

//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; 
+0

Können Sie klarstellen, was Sie mit der "ersten Zeile" meinen? Ist dies der gesamte Text vor dem ersten Zeilenumbruch ('\ n') oder der ersten Zeile vor dem eigentlichen Zeilenumbruch? – Aaron

Antwort

0

Sie können eine Anwendung TextFormat wie @Aaron schlägt vor. Eine andere Möglichkeit besteht darin, Stylesheets zu verwenden. Hier ist ein Beispiel

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

+0

Danke, aber ich bin mir sicher, dass es einen anderen Weg geben muss. Ich fand eine Lösung, die Textbereiche wie diese zu verwenden ist myTextField.setTextFormat (myformat, 49, 65); Aber leider ändern sich die Bereiche gemäß dem Text im Textdokument ... (Bitte beraten Sie mich, wie man Code in Kommentaren formatiert) – user2442016

+0

@ user2442016 Sie können Backticks ('\' code \ '') verwenden Format-Code in Kommentaren. (Klicken Sie auf den Link "Hilfe" neben dem Eingabebereich für Kommentare.) – Aaron

+0

@SameerJain 'TextFormat' muss nicht auf den gesamten Text angewendet werden. – Aaron

0

Sie ein TextFormat zu einem bestimmten Textbereich TextField/setTextFormat() mit anwenden kann.

Um einen anderen Textformat in die erste Zeile des Texts anwenden, dies zu tun:

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)); 
} 

Beachten Sie, dass, wenn Zeilenumbruch handelt es ändert sich, was die „erste Zeile“ wirklich bedeutet.

+0

Danke, ich kämpfe um diese Arbeit zu machen – user2442016

+0

Würdest du das mit meinem bestehenden Code integrieren können, damit ich es einfügen kann? Ich habe versucht, aber es scheint mit meinem Code zu widersprechen. Auch Sie haben einen Zeitraum zwischen CasinoBranding und FirstLine vergessen. Und ich denke FirstLine gilt für eine andere Art von Textfeld .... – user2442016

+0

Nein, ich habe nicht "einen Zeitraum vergessen" und es gilt nicht für eine andere Art von Textfeld ". 'casinoBrandingFirstLine' ist nur ein anderes' TextFormat' für wie auch immer die erste Textzeile von 'winnerText' aussehen soll. Stellen Sie einfach die gewünschten Formatierungen ein. Sie können 3 Zeilen "winnerText" -Code in Ihren 'onLoaded'-Handler einfügen, der Rest des Codes ist der gleiche. – Aaron