[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: