[ascoders] Re: Escape Sequencen?
- From: Ralf Siegel <ralf@xxxxxxxxxxx>
- To: ascoders@xxxxxxxxxxxxx
- Date: Mon, 26 Jan 2004 22:37:31 +0100
Hi Peter
Ob ich jetzt mit HTML Tags oder Escape Sequenzen in diesem Fall arbeite
ist eigentlich egal, es wird alles so dargestellt wie ich es mir vorstelle.
ah, okay. Das liegt daran, daß Escape-Sequenzen für einen Zeilenumbruch
automatisch über die getter/setter htmlText-Eigenschaften in <p>-Abschnitte
umgewandelt werden (schau mal ins Ausgabefenster, bzw. unten in die
Beispiele).
Ein HTML-Text-Renderer selbst kann wie gesagt \n und \r nicht darstellen
(und darf eigentlich auch nicht).
Bei geparsten XML Files mit Escape Sequenzen im CDATA Tag funktioniert
das dummerweise nicht.
Wenn ich Dich jetzt richtig verstanden habe bedeutet dass, das der
normale Textrenderer Escape Sequenzen
der Art \n \r und so weiter versteht und der HTML Text Renderer nicht?
Wie oben gesagt - nur durch die automatische Konvertierung erhält man einen
Zeilenumbruch auch im HTML-Feld. Ich hab mal ein paar Testfälle gebastelt,
die das ganze vielleicht verdeutlichen (mit MX 2004 getestet, sollte aber
auch unter MX laufen).
Besonders interessant ist jetzt sicherlich vor allem 4.) und 5.) - je nach
dem gesetzten Wert für ignoreWhite wird der Zeilenumbruch außerhalb CDATA
als Whitspace ignoriert oder nicht. Der Zeilenumbruch im CDATA bleibt aber
vom Parser unangetastet und wird wieder in <p> umgewandelt.
____________________________________________________________________
/*
* 1.
*/
this.createTextField("tf_text", 1, 10, 10, 200, 300);
this.tf_html.html = false;
this.tf_text.text = "Hallo\nDu";
this.tf_text.border = true;
this.tf_text.autoSize = "left";
/*
------------------------------------------------------
Ausgabefenster 1.)
------------------------------------------------------
text = "Hallo\rDu",
htmlText = "Hallo\rDu",
======================================================
*/
/*
* 2.
*/
this.createTextField("tf_htxt", 2, 110, 10, 200, 300);
this.tf_htxt.html = true;
this.tf_htxt.htmlText = "Hallo\nDu";
this.tf_htxt.border = true;
this.tf_htxt.autoSize = "left";
/*
------------------------------------------------------
Ausgabefenster 2.)
------------------------------------------------------
text = "Hallo\rDu",
htmlText = "<P ALIGN=\"LEFT\"><FONT FACE=\"Times New Roman\" SIZE=\"12\"
COLOR=\"#000000\">Hallo</FONT></P><P ALIGN=\"LEFT\"><FONT FACE=\"Times New
Roman\" SIZE=\"12\" COLOR=\"#000000\">Du</FONT></P>"
======================================================
*/
/*
* 3.
*/
this.createTextField("tf_html", 3, 210, 10, 200, 300);
this.tf_html.html = true;
this.tf_html.htmlText = "<b>Hallo\nDu</b>";
this.tf_html.border = true;
this.tf_html.autoSize = "left";
/*
------------------------------------------------------
Ausgabefenster 3.)
------------------------------------------------------
text = "Hallo\rDu",
htmlText = "<P ALIGN=\"LEFT\"><FONT FACE=\"Times New Roman\" SIZE=\"12\"
COLOR=\"#000000\"><B>Hallo</B></FONT></P><P ALIGN=\"LEFT\"><FONT
FACE=\"Times New Roman\" SIZE=\"12\" COLOR=\"#000000\"><B>Du</B></FONT></P>",
======================================================
*/
/*
* 4.
*/
var x:XML = new XML();
x.ignoreWhite = true;
x.parseXML("<b>\n<![CDATA[Hallo\nDu]]></b>");
this.createTextField("tf_idata", 4, 310, 10, 200, 300);
this.tf_idata.html = true;
this.tf_idata.htmlText = x.toString();
this.tf_idata.border = true;
this.tf_idata.autoSize = "left";
/*
------------------------------------------------------
Ausgabefenster 4.)
------------------------------------------------------
text = "Hallo\rDu",
htmlText = "<P ALIGN=\"LEFT\"><FONT FACE=\"Times New Roman\" SIZE=\"12\"
COLOR=\"#000000\"><B>Hallo</B></FONT></P><P ALIGN=\"LEFT\"><FONT
FACE=\"Times New Roman\" SIZE=\"12\" COLOR=\"#000000\"><B>Du</B></FONT></P>",
======================================================
*/
/*
* 5.
*/
var x:XML = new XML();
x.ignoreWhite = false;
x.parseXML("<b>\n<![CDATA[Hallo\nDu]]></b>");
this.createTextField("tf_cdata", 5, 410, 10, 200, 300);
this.tf_cdata.html = true;
this.tf_cdata.htmlText = x.toString();
this.tf_cdata.border = true;
this.tf_cdata.autoSize = "left";
/*
------------------------------------------------------
Ausgabefenster 5.)
------------------------------------------------------
text = "\rHallo\rDu",
htmlText = "<P ALIGN=\"LEFT\"><FONT FACE=\"Times New Roman\" SIZE=\"12\"
COLOR=\"#000000\"><B></B></FONT></P><P ALIGN=\"LEFT\"><FONT FACE=\"Times
New Roman\" SIZE=\"12\" COLOR=\"#000000\"><B>Hallo</B></FONT></P><P
ALIGN=\"LEFT\"><FONT FACE=\"Times New Roman\" SIZE=\"12\"
COLOR=\"#000000\"><B>Du</B></FONT></P>"
======================================================
*/
____________________________________________________________________
ich glaube, es gab noch irgendwelche Gemeinheiten - die fallen mir jetzt
gerade nicht ein *g*
sollte ich mir da
am besten eine Funktion schreiben die den kompletten Text liest und
bestimmte Schlagwörter durch in Flash definierte Tags ersetzt oder gibt
es da vielleicht eine bessere Methode?
Ich fürchte da wirst du nicht drumrum kommen - zu überlegen wäre
vielleicht, das ganze serverseitig zu machen?
ralf ...
-------------------------------------------------------------
Ralf Siegel - Freelance Developer
Recommended Listening: Isobell Campell - Amorino (Snowstorm)
http://www.isobelcampbell.com
-------------------------------------------------------------
------------------------------------------------------
Archiv : //www.freelists.org/archives/ascoders/
Optionen : //www.freelists.org/list/ascoders
------------------------------------------------------
Other related posts: