Comunidad de diseño web y desarrollo en internet online

problema con createTextField

Citar            
MensajeEscrito el 26 Oct 2007 11:05 am
hola, tengo un codigo que dice asi:

Código :

this.createTextField("cuerpo_n", this.getNextHighestDepth(),-420 , 198, 300 , 300);
cuerpo_n.multiline = true;
cuerpo_n.html=true;
my_txt.wordWrap = true;
cuerpo_n.htmlText="<b> machucho </b>";


no tendria xq dar ningun problema, pero el caso es que no muestra nada y tampoco dibuja los bordes de la caja. Crea el campo de texto donde kiero, pues sale lo de seleccionar texto cuando paso el raton por encima, pero no muestra nada. ¿¿¿ Alguien sabe que puede estar pasando con el texto q le mando ???...
.....o ¿alguien tiene una pistola?

Por pericles

71 de clabLevel



Genero:Masculino  

in Dublin

firefox
Citar            
MensajeEscrito el 26 Oct 2007 11:26 am
es mas, al poner esto:

trace(cuerpo_n.text);
trace(cuerpo_n.border);

me devuelve:

<b> machucho </b>
true

:twisted: ya no se que hacer....espero q les sirva de ayuda para ayudarme, jeje.

Gracias.

Por pericles

71 de clabLevel



Genero:Masculino  

in Dublin

firefox
Citar            
MensajeEscrito el 26 Oct 2007 12:14 pm
bueno, creo que esto de postear tanto en mi propio tema no esta bien, asi lo primero es pedir disculpas, pero ahora tengo esto:

Código :

n = new LoadVars();
n.load("vernoticia.php");
n.onLoad = function() {

   pacotxt.html=true;
   pacotxt.border=true;
      
   registro_n.text = this.numero;
   pacotxt.htmlText = this.noticia;
   titulo_n.htmlText = this.titulo;
   loadMovie(this.foto,foton);
   
}


pues bien, ya reconoce el html, o mas o menos.
He conseguido que imprima el texto que le paso, y que salgan cosas como: <b>textoquelemando</b>
Pero el texto sale normal, es decir, sale solo textoquelemando, cuando tendria que salir textoquelemando

[/code]

Por pericles

71 de clabLevel



Genero:Masculino  

in Dublin

firefox
Citar            
MensajeEscrito el 29 Oct 2007 07:02 am
como mola mi monologo, jeje, bueno por si a alguien le sirve en un futuro. Lo que sucede es que el php de mi compi de curro le manda a mi flash cosas como:

Código :

<span style="font-weight: bold;">hola</span>


esto para flash es irreconocible, pues esta esperando <b>hola</b> para ponerlo en negrita. Desapues de estar un rato buscando e visto en algun foro (me ha extrañado que no fuera en este) una posible solucio, que es la de crearse un estilo en flash para que reconozca este tipo de etiquetas php.

Si consigo resolver este problema pienso dejar un tuto indicando la solucion.

Nuevamente pido disculpas por el monologo. :oops:

Por pericles

71 de clabLevel



Genero:Masculino  

in Dublin

firefox
Citar            
MensajeEscrito el 29 Oct 2007 11:19 am
buenas :-)
te recomiendo que cuando quieras leer de un archivo externo, lo hagas desde un txt, que le puedes meter las etiquetas html que quieras y luego se las pasa tal cual al flash a traves del loadVars. por lo que me ha parecido, tu tienes una serie de noticias y quieres que las muestre el flash. el flash te permite que cuando leas un archivo de texto, le puedas meter "variables" de forma que en tu txt tienes algo como esto: &titulo=esto es el titulo de mi articulo&cuerpo=esto es el cuerpo de mi articulo.
luego tienes dos opciones, tratar el estilo de esas variables desde el flash haciendo algo como this.titulo= "<b>"+this.titulo+"</b>;
o que lo hagas directamente desde el txt asi: &titulo=<h1>titulo</h1>&cuerpo=<i>cuerpo</i> y luego le digas que tu caja de texto donde lo muestre tenga algo asi: cajaTexto.htmlText=this.titulo; y eso deberia funcionar perfectamente

NOTAS DE INTERES:
el archivo de texto, es OBLIGATORIO que este guardado como UTF-8, porque si no te dara muchos problemas con temas de caracteres extraños. si te sigue dando problemas con caracteres extraños o con una coletilla al final del texto, mirate esta funcion: unescape

espero que te haya servido de ayuda y no tengas que andar pringando con quitar caracteres a coss que recibes y tal, que eso te complicara muchisimo la vida y no es muy elegante

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 29 Oct 2007 12:55 pm
Mola, gracias maije, pero tu solucion creo que no podria usarla en este caso en concreto, ya que esto me pondria el cuerpo de la noticia entero en negrita o cursiva o lo que fuese.

El caso es que tenemos un editor de texto en html para que nuestro cliente pueda subir y editar la noticia a su antojo.

Bien este editor de texto tiene definidas etiquetas en html que flash no reconoce, asi que aunque lo guardase en un archivo txt en lugar de guardarlo directamente en la BD tendria el mismo problema, que al leer la variable que me pasan con el contenido de la noticia contendria esto <span style="font-weight: bold;"> contenido </span>, que flash interpreta com contenido, sin ponerlo en negrita ni na. Para que lo ponga en negrita haria falta que me mandase <b> contenido </b>, el problema viene a raiz de que este editor en html no lo programamos nosotros, algo que hicimos por ahorrar tiempo, y que ahora nos esta dando dolor de cabeza. Pues bien, como no lo programamos nosotros no se sabe donde se le dice al boton de negrita que en lugar de poner delante y detras del texto <span style="font-weight: bold;"></span>, ponga <b></b>, asi pues el problemna cada vez fue creciendo mas.
Lo que me gustaria es que flash fuera capaz de reconocer <span style="font-weight: bold;"></span>, como etiquetas html.
Nose si me estoy encerrando en algo y no me estoy explicando bien.

En cualquier caso os dejo un consejo: No useis codigo "a pelo" de otras personas por ahorrar tiempo sobretodo si los comentarios estan en otro idioma, a la larga os va a retrasar como me esta pasando a mi, ya que ahora estoy en un punto en el que tengo que hacer en flash un editor de texto, y una serie de movidas que me traen de cabeza.

Nuevamente gracias maije.

Por pericles

71 de clabLevel



Genero:Masculino  

in Dublin

firefox
Citar            
MensajeEscrito el 29 Oct 2007 06:09 pm
buenas pericles :D
estuve a punto de responder a tu post del editor de texto y decirte que si no controlas mucho de flash que lo dejaras... mas que nada porque yo ahora estoy finiquitando un editor de XHTML en flash y es un infierno... mucho mas desaconsejaria bajarte un editor ya hecho e intentar modificarlo sin tener cierto nivel programando en flash, porque al final se convierte en una locura...

yo seguiria intentando ajustarlo todo con *.txt. si he entendido bien tu tienes una web donde un cliente quiere poder subir noticias, y esas noticias, tu quieres que esten todas monas en HTML y eso es exactamente lo que ando haciendo yo ahora. un generador de texto enriquecido a partir de texto plano a golpe de click... bueno, pos es complicadillo porque el flash no te facilita nada el tratamiento de cadenas ni la interpretacion de HTML, porque el mismo genera cosas en HTML de estilos. para verlo, te basta con escribir:

Código :

txtCaja1.text="hola";
txtCaja2.htmlText=txtCaja1.text;
txtCaja1.text=txtCaja2.text;

y ya veras la coletilla de estilo <font...> que te ha generado antes del hola con la fuente de tu caja de texto, el tamaño, el color, etc...lo cual, te amarga la vida sobremanera, aunque en un principio supongo que estaba puesta para ayudar a los usuarios no avanzados y que les apareciera el texto HTML con las mismas fuentes y todo que las de la caja de texto.... :?
para lo de la bbdd te toca, en resumen, una cosa tal que asi:
flash da una orden al php (loadVars)
php trasfiere esa orden al MySQL
MySQL genera una consulta y se la devuelve al php
php te la devuelve al flash
flash la muestra
para hacerlo con archivos de texto te toca:
flash lee del archivo de texto(loadVars)
flash muestra contenido de archivo de texto

de esta forma simplificas muchisimo, tu codigo es mas mantenible y a no ser que haya muuchos miles de noticias, puedes "emular" las busquedas de la bbdd creando carpetas para fechas donde guardas los txt y asi tienes una estructura de arbol muy rapida para buscar txt que hasta una escala media no va a suponer un ralentizamiento de tu aplicacion. luego esta el tema de como hacerlo... te sugeriria lo siguiente:
cada txt:
&titulo=blablabla
&cuerpo=blablabla
&fecha=blablabla
entonces en un principio recorres todos los txt desde el flash que esten dentro de una rama de tu arbol de carpetas (imaginate que has ordenado tus carpetas por fecha) la rama puedes cogerla mas o menos troncal dependiendo del numero de noticias que esperes que haya para mostrar...imaginate que hay 2 noticias diarias, pues coges todos los txt metidos dentro de la carpeta Octubre por ejemplo...o primera quincena dentro de octubre o asi... muestras solo los titulos de los txt y al hacer click sobre ellos, que te despliegue la noticia de la forma que tu quieras con el cuerpo y al fecha de ese txt (al tenerlo en variables te es muy facil hacerlo asi). dentro de esa noticia, si el usuario esta autorizado (la parte de autorizacion SI deberias hacerla dentro de bbdd) apareceria una cosa que se llamara modificar, que hiciera modificable el texto, si quieres con dos ventanas como aqui, una donde vas viendo el texto que escribes y en otra el resultado HTML (el HTML de flash no es ni mucho menos el que puede interpretar un explorador normal, pero vale de forma temporal para previsualizar). tienes botones de actualizar, negrita, hipervinculo, buscar, etc... (que me temo que te tocara programar las funciones...y es un absoluto coñazo) y cuando termina de modificar el texto, boton guardar y actualizas el txt de la noticia cambiada.
yo de momento te cuento como tengo mi aplicacion:
tengo funciones propias para convertir en string, convertir en array, buscar palabras en el texto, actualizar, poner etiquetas, limpiar etiquetas de codigo seleccionado, cargar archivos externos y mas... luego como objetos que se crean, tengo dos cajas de texto situadas al lado una de otra, botones para las negritas, italicas, limpiar etiqueta, poner hipervinculo, poner imagen, buscar y cargar archivo (txt,rtf). en la ventanita de la izda se muestra el codigo HTML que se genera y en la de la derecha, que no es modificable, el HTML en vista previa que se muestra a cada cambio que se hace en el texto.

este proyecto todavia esta un poco verde y me faltan muchos botones de estilos, boton guardar, boton buscar siguiente, etc... pero son cosas que espero me lleven menos tiempo. espero haberte aclarado, por lo menos un poco, el planteamiento del asunto. en un futuro quizas lo convierta en una clase (EditorHTML.as)...pero eso seria ya bastante mas curro, porque tendria que hacer funciones de cambio de estilo, de renderizar o no elementos y un largo etc... asi que de momento no estoy muy por la labor.

PD: se que a lo mejor te habria venido bien codigo bien explicadito de cada funcion o incluso los archivos del proyecto, pero si hago eso, el cliente, que es elque me paga, se puede sentir ofendido de que un codigo que le pertenece, porque lo esta comprando, ande rulando por ahi gratis...y no me vuelva a contratar mas :-( asi que lo siento si no puedo darte mas que directrices.
PD2: si quieres lo que si que puedo hacer es irte guiando por los pasos o decirte sobre que cosas puedes buscar informacion o que se usa para cada parte y aunque no pueda darte cachitos del camino, si que puedo decirte por donde va ;-)

un saludo
atentamente
maije

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 29 Oct 2007 06:22 pm
al final me fui por las ramas y no se si se desprende la respuesta bien... lo que digo es que tu sitio editor de HTML lo hagas si quieres en flash, pero que lo que haga sea generarte html a partir de txt y luego cargarlos y no dentro de una caja de texto, porque, por mi experiencia, eso no se puede hacer de forma automatica. el flash no reconoce(interpreta) todas las etiquetas de HTML, ni siquiera el estandar y no te deja hacer cosas como meter en negrita una letra en cursiva o viceversa o usar etiquetas de titulo <h1>... o meter barras separadoras <hr> y un largo etcetera, sin contar con el codigo que autogenera y que no he encontrado ningun sitio donde poder modificar un valor y que no te lo haga...
a vista del cliente, el resultado deberia de ser el mismo... el edita una caja de texto (cuyo contenido es el contenido del txt) y al "guardar la noticia", se sobreescriben el txt y el html generados.
espero que esta respuesta me haya quedado mas clarita :S

PD: quiero que quede muy claro que yo hablo desde la version Flash 8.0 Professional. puede que se haya mejorado en su version posterior o que el AS3 solvente algunos o todos de los problemas que se dan en el otro.

un saludo
atentamente
maije

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 30 Oct 2007 06:44 am
Gracias maije, se ve que estas pueto en el tema. Creo que intentare lo de los archivo de texto, que parece mas sencillo.
No te preocupes, comprendo lo de tu cliente, y creo que de momento no tengo nivel suficiente como para meterme con el editor de texto en flash, ya que he encontrado alguno y al ver el codigo no se por donde meterle mano.
asi que lo dicho, intentare lo de los archivos txt, que parece que tendria que funcionar.

Gracias otra vez y suerte con tu editor que parece que te lo estas currando bastante.

Por pericles

71 de clabLevel



Genero:Masculino  

in Dublin

firefox
Citar            
MensajeEscrito el 30 Oct 2007 09:58 am
hola pericles :D
hoy internet me va fatal, espero que no se me corte a mitad de respuesta, que me da algo :D. aqui va una primera ayudita que espero te sea de utilidad: es la funcion que he creado para buscar:

Código :

var posicion:Array = new Array();
var contPos:Number = 0;
var iniSel:Number = 0;
var finSel:Number = 0;
//my_txt es la caja de texto en cuestion donde esta alojado el texto donde hay que buscar
//y esta relacionada con una variable llamada texto que es un string ;)
function search(cad:String, txt:String) {
   var cont:Number = 0;
   var posible:String = "";
   var j:Number = 0;
   textoBusqueda = toArray(txt);
   cadena = toArray(cad);
   for (var i = 0; i<textoBusqueda.length; i++) {
      cont = 0;
      if (textoBusqueda[i] == cadena[cont]) {
         posible = "";
         posicion[contPos] = i;
         while ((textoBusqueda[i] == cadena[cont]) && (i<textoBusqueda.length)) {
            posible += textoBusqueda[i];
            cont++;
            i++;
         }
      }
      if (toString(cadena) == posible) {
         Selection.setFocus("my_txt");
         iniSel = posicion[0];
         finSel = Number(posicion[0]+cadena.length);
         Selection.setSelection(iniSel, finSel);
         contPos++;
         posible = "";
      }
   }
   contPos = 0;
}


si te fijas, posicion es un array, precisamente para sacar despues facilmente la funcion buscarSiguiente (searchNext();) ya que almacenamos en ese array todas las posiciones de inicio de las palabras coincidentes, asi que luego es solo recorrerlo, decir que la seleccion empieza ahi y termina en esa posicion+longitud de la cadena a buscar. ten en cuenta que he declarado el array posicion y su contador fuera de la funcion, para que en un futuro, cuando hagas la funcion buscarSiguiente, sean visibles esas variables fuera del ambito de la funcion "buscar". lo ideal seria modularizado completamente y tal, pero me resultaba mas comodo de esta forma y mas sencillo al no tener que andar pasando parametros de un sitio a otro
:D

PD: esta funcion esta hecha por mi, seguro que se puede optimizar, o quizas todavia tenga algun fallo, porque todavia no he hecho baterias de pruebas exhaustivas, pero funciona con todas las que he hecho de momento.
PD2: lo mas importante de esta funcion son los iniSel y finSel, que los tienes que almacenar a lo largo de la ejecucion (y los modificaras), porque el texto perdera el foco constantemente y si quieres meter negritas o cosas asi y has perdido el foco, tienes que volver a seleccionar el texto que tenias y darle la etiqueta correspondinte solo a esa parte.
PD3: el otro hueso de esta aplicacion es la deteccion de cuando el usuario selecciona texto con el raton y le da al boton de etiqueta que sea...pero cuando llegues a ese problema, dame un toque y lo solucionamos de forma MUY sencilla, que no quiero liarte con problemas que todavia no hayas tenido y no viene tampoco mal pensarlos un poco por uno mismo hasta que necesite una ayudita
;)
PDx: vaya chapa de postdatas pensaras... yap, lo siento ;) que se me ocurren segun releo dudas que pudieras tener... esta es la ultima y va de que este codigo esta copido y pegado del mio, a lo mejor hay alguna declaracion que falte y tengas que crear objetos como cajas de texto y darles el nombre que les he dado yo o cambiar el nombre en mi codigo...tu veras lo que te es mas sencillo, pero lo que te quiero decir es que esta funcion no va a ser copy-paste en tu codigo y funcionar, probablemente tegas que hacer cosas. te la dejo aqui para que la entiendas y que veas como he solucionado los problemas con los que te encontrarias si l hicieras, por lo que mi consejo es que intentes hacerla por tu cuenta y luego, cuando llegues a los problemas, cojas este codigo y digas, ah mira! lo soluciono de esta forma y aunque al final te quede exactamente igual, habras apredido mucho mas :D

un afectuoso saludo
atentamente
maije

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 30 Oct 2007 01:58 pm
juer, estas exo un fenomeno maije :meditar: , gracias por el codigo, de momento no quiero ni insinuarle a mi cliente la posibilidad de hacer busquedas en las noticias :lol: , pero prometo exarle un vistazo este puente para futuros trabajos, ya que de momento ando un poco justo de tiempo, que como sabras es muy valioso, :crap:

Por pericles

71 de clabLevel



Genero:Masculino  

in Dublin

firefox
Citar            
MensajeEscrito el 30 Oct 2007 03:16 pm
disfrutalo con salud ;) y entiendelo con paciencia :D

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox

 

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