2010-12-15 18 views
0

IN EINEM NUTSHELL
Ich habe eine Flash-Anwendung (für Flash Lite - ActionScript 2). Wenn ich in meiner Anwendung eine XML Datei laden und ich es in einem Objekt verarbeiten. Ich bekomme die korrekte HTML-Eingabe in einem Textfeld.
Allerdings, wenn ich Hardcode das Objekt, verschwinden alle HTML-Tags aus dem .htmlText-Attribut und es ist Code vor dem Text platziert. Es ist meine Absicht, das Objekt hart zu codieren, da das Laden viel schneller geht als xml.Flash Lite: htmlText Formatierung

lange Geschichte kurz: string.html = true; löscht alle Span-Tags, während ich diese brauche. Wie bekomme ich die span-Tags im htmlText meines Textfelds?

WEITERE INFORMATIONEN UNTER

In meiner Anwendung ich erstelle Textfelder in ihnen einen Text setzen und dann den richtigen x- und y-Wert, so dass sie alle gut unter ihnen gestellt werden.

innerhalb der Funktion:

//ABOVE I CREATE TEXTFIELD USING THE .CREATETEXTFIELD FUNCTION 
this["text" + this._textFieldCounter].html = true; 
this["text" + this._textFieldCounter].multiline = true; 
this["text" + this._textFieldCounter].wordWrap = true; 
this["text" + this._textFieldCounter].autoSize = true; 
this["text" + this._textFieldCounter].styleSheet = this._styleSheet; 
this["text" + this._textFieldCounter].condenseWhite = true; 
this["text" + this._textFieldCounter].htmlText = "<span class=\"page\">" + strHtmlText + "</span>"; 
//trace(this["text" + this._textFieldCounter].htmlText); 

Als ich die htmlSpuren ich

<P ALIGN="LEFT"> 
<FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> 
//here comes the strHtmlText 
</FONT> 
</P> 

Blitz automatisch diejenigen p und font-Tag vor meinem Text setzen. Mein Stylesheet zeigt also nicht den richtigen Stil an. Wie entferne ich das erste align und font tag, aber behalte das Textfeld weiterhin als html?

EDIT
Durch ein Textformat-Einstellung ich einen Weg, um dieses Problem gefunden haben ... JEDOCH
Ich habe ein neues Problem:
In meinem strHtmlText gibt es Spanne-Tags (<span class="text-in">blabla</span>), aber das bekommt ausgefiltert. Warum ist das ? Mein Stylesheet macht nichts ohne diese Stile.

(Text wird von einem Array geladen)

Antwort

1

es etwas mit dem zu tun hat, muß in dem Sie die Eigenschaften des TextField- zuweisen. Es sollte sein: 1. field.html auf true einstellen, 2. styleSheet zuweisen, 3. htmlText einstellen. Das styleSheet muss gesetzt werden, bevor htmlText zugewiesen wird - Ich habe ursprünglich einen Link zur as3-Dokumentation veröffentlicht, dies gilt jedoch sowohl für AS2 als auch für AS3.

Versuchen Sie Folgendes: Setzen Sie ein TextField auf die Bühne eines neuen AS2 FLA. Stellen Sie seinen Typ auf dynamisch ein. Nennen Sie es "_textField". Setze die Schriftart auf Verdana, 16px, Schwarz. Geben Sie "Fehler" ein oder etwas ähnliches in das TextField, damit es etwas Text enthält. Klicken Sie auf "Schriftarten einbetten", achten Sie darauf, eine ausreichende Anzahl von Buchstaben wie ASCII oder Latin-1 zu enthalten. Geben Sie in der Timeline diesen Code in das erste Bild des Films ein.

var style:TextField.StyleSheet = new TextField.StyleSheet(); 
style.parseCSS("p {font-family:Verdana; font-size:12px; color:#FF0000;}"); 
_textField.html = true; 
_textField.styleSheet = style 
_textField.htmlText = "<p>This is a test.</p>"; 
trace (" new text:"+_textField.htmlText); 

Nun, wenn Sie das Programm ausführen, sollte es den Text ändern, um „Dies ist ein Test“, die Farbe auf Rot und die Schriftgröße auf 12 Pixel. Es tut auf meinem Computer. Die Ablaufverfolgung druckt den exakt gleichen Text, der htmlText10 zugewiesen wird.

Jetzt gehen Sie zurück und tauschen Sie die Linien aus, die die styleSheet und htmlText Eigenschaften zuweisen. Führen Sie das Programm erneut aus. Es wird alle zusätzlichen Tags haben, über die Sie sich beschweren.

+0

Ich arbeite mit AS2 (wie in den Tags definiert) ... aber wenn ich die Stylesheet-Eigenschaft vor dem htmlText festlegen, ist es immer noch das gleiche Problem. – Jozzeh

+0

Ich habe den ursprünglichen Beitrag bearbeitet und stattdessen ein Beispiel bereitgestellt. Ich denke immer noch, dass etwas mit der Reihenfolge falsch ist, in der Sie styleSheet und htmlText zuweisen. Oder vielleicht ist das styleSheet nicht richtig initialisiert. Dies ist jedoch kein Fehler in Flash. – weltraumpirat

+0

Ich stimme zu, dass Ihre Argumente und Ihr Beispiel funktionieren. Wenn ich es jedoch in meiner Anwendung versuche, werden die span-Tags immer noch aus der Zeichenfolge entfernt, wenn der html-Parameter auf "true" gesetzt ist. Ich würde sogar sagen, dass alle normalen html wie fett und kursiv Tags auch entfernt werden. Es bleibt nur das Flash-Font-Tag und doppelte Br-Tags werden zu einem geschlossenen Absatz-Tag. – Jozzeh