Comunidad de diseño web y desarrollo en internet online

Cargando CDATA en flash...

Citar            
MensajeEscrito el 01 Feb 2006 04:51 pm
Hola:
Queria hacer que en un solo campo de texto dinamico cargara la siguiente linea:

Código :

<datos><![CDATA[<b>Patrick Genard (Namur, Bélgica – 1954)</b><br>Arquitecto e Ingeniero Civil (U.C.L., Louvain la Neuve, Bélgica, 1978)]]></datos>


El campo es html = true y htmlText como bien hay que hacerlo, pero solo obtengo esto:

Código :

<b>Patrick Genard (Namur, Bélgica – 1954)</b><br>Arquitecto e Ingeniero Civil (U.C.L., Louvain la Neuve, Bélgica, 1978)


Tambien he probado a darle estilo desde un css externo y con una clase para esto, asi:

Código :

<p class='negrita'>Patrick Genard (Namur, Bélgica – 1954)</p><br>... etc etc
pero nada, ni <br> ni estilos... ya no se como hacerlo, con CDATA solo he conseguido hacer bien algo referente a la etiqueta <font> si nada mas...
Espero que alguien me sepa ayudar.
Gracias de antemano.

Por frenadoll

922 de clabLevel

6 tutoriales

Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 01 Feb 2006 05:40 pm
He descubierto que el problema esta en el archivo XML:

Código :

<?xml version="1.0" encoding="utf-8"?>
<equipo>
   <director>
      <datos><![CDATA[<b>Patrick Genard (Namur, Bélgica – 1954)</b><br>Arquitecto e Ingeniero Civil (U.C.L., Louvain la Neuve, Bélgica, 1978)]]></datos>
   </director>
</equipo>
   


Como accedo al primer nodo de todos llamado <datos> si tengo por ejemplo mi_xml como objeto xml?

Por frenadoll

922 de clabLevel

6 tutoriales

Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 01 Feb 2006 06:23 pm
Pon esto cuando termine la carga del XML, por supuesto:

Código :

trace(this.firstChild.childNodes[0].childNodes[0].firstChild);

Por Altrix

156 de clabLevel



 

Cuba, Ciudad de la Habana

firefox
Citar            
MensajeEscrito el 02 Feb 2006 12:33 pm
Las salidas ya las controlo, pero no consigo que interprete bien las etiquetas html :S, ya te digo me devuelve toda la linea con las etiquetas incluidas

Por frenadoll

922 de clabLevel

6 tutoriales

Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 02 Feb 2006 02:55 pm
Bien, para que te des cuenta de lo que pasa, mira lo que te devuelve cuando haces un

Código :

trace(xml.firstChild.childNodes[0].childNodes[0].firstChild);

te devuelve los códigos en HTML que representan < (&lt;), > (&gt;), es decir, esto:

Código :

&lt;b&gt;Patrick Genard (Namur, Bélgica – 1954)&lt;/b&gt;&lt;br&gt;Arquitecto e Ingeniero Civil (U.C.L., Louvain la Neuve, Bélgica, 1978)

y por eso es que te muestra eso.....pero en realidad no sé como resolverlo, seguiré investigando.

Por Altrix

156 de clabLevel



 

Cuba, Ciudad de la Habana

firefox
Citar            
MensajeEscrito el 02 Feb 2006 03:59 pm
despues de hacer el trace da exactamente esto que dices... como resolverlo? llevo horas intentandolo xD

Por frenadoll

922 de clabLevel

6 tutoriales

Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 06 Feb 2006 08:18 pm
Aunque no es la solución más adecuada y repito que no es la más adecuada, lo que podrías hacer es cuando recuperes el texto, reemplazar las entidades (&lt; y &gt;) por los caractéres (< y >), así:

Código :

function replaceText(text:String, findText:String, rplText:String):String {
   return text.split(findText).join(rplText);
};
trace(replaceText(replaceText(xml.firstChild.childNodes[0].childNodes[0].firstChild, "&lt;", "<"), "&gt;", ">"));

Espero que te sirva, aunque se debe poder resolver de otra forma más eficiente....:wink:

Por Altrix

156 de clabLevel



 

Cuba, Ciudad de la Habana

firefox
Citar            
MensajeEscrito el 06 Feb 2006 08:52 pm
Hey man, navegando un poco encontré esto, justamente lo que necesitas: Tutorial, y pincha muy bien, de lo que se trata es solamente poner

Código :

texto.htmlText = miXML.firstChild.childNodes[0].childNodes[0].firstChild.nodeValue;

el nodeValue, con eso pinchó......

Por Altrix

156 de clabLevel



 

Cuba, Ciudad de la Habana

firefox
Citar            
MensajeEscrito el 07 Feb 2006 05:45 pm
Este tutorial ya lo vi. Parece que todo esta correcto pero flash tiene un problema parseando CDATA, parece ser que todo llega a la perfeccion, las etiquetas se leen bien pero a la hora de escribirlo en un campo de texto hay problemas y flash no parsea el html que habia en CDATA, he leido foros de otros sitios y hay gente que propone:

1º La solucion que tu has dado o directamente escribir los atributos del xml con el html &lt; &gt; en caracteres especiales.
2º Colocar el texto entre etiquetas y leerlo como firstChild, el conejo ninja hace uso de ello en su blog aunque soy mas partidario de los atributos xml para este tipo de cosas.

Esperemos que resuelvan esto en proximas versiones porque es un problema serio. Tan solo funciona correctamente la etiqueta <font> sin hacer ningun truco.

Puede que me equivoque pero al menos con mis campos de texto creados con AS no funcionó.

Por frenadoll

922 de clabLevel

6 tutoriales

Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 08 Feb 2006 12:08 pm
Se me plantea otra cuestión relacionada con esto...

Se pueden dar formatos de texto (TextFormat) a una caja de texto dinámico? Lo digo porque una caja debe llevar algo, arial, verdana y un tamaño como minimo...

Y si es así por qué el AS no aplica TextFormat cuando yo se lo pido a menos que la caja sea generada por código.

Además, se pueden asignar dos formatos de texto diferentes en la misma caja dinamica por AS?

Si me puedes responder me sacas de un lio :)

Por frenadoll

922 de clabLevel

6 tutoriales

Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 09 Feb 2006 02:30 pm
Te respondo por preguntas:

1- Si se puede dar formato a una caja de texto dinámico....
2- Si se puede asignar 2 formatos a una misma caja de texto....pero te recomiendo que uses CSS, para aplicar formato....

Aquí te va:

Código :

var formatoTitulo:TextFormat = new TextFormat("Arial", 15, 0x666666);
var formatoTexto:TextFormat = new TextFormat("Arial", 11, 0x888888);
this.createTextField("texto_txt", 0, 20, 20, 510, 0);
with(texto_txt) {
   autoSize = "center";
   multiline = true;
   wordWrap = true;
   selectable = false;
   html = true;
   htmlText = "<b>X-Men III</b><br>Aun se desconoce la historia que centrará la trama de X-Men 3, aunque se espera que continúe la historia de la segunda. La saga de X-Men está basado en el popular comic publicado por Marvel Comics desde la década del 60.";
   setTextFormat(formatoTexto);
   setTextFormat(0, 9, formatoTitulo)
}

Por Altrix

156 de clabLevel



 

Cuba, Ciudad de la Habana

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.