Comunidad de diseño web y desarrollo en internet online

problema textfield multiline ancho fijo

Citar            
MensajeEscrito el 28 Sep 2008 01:40 pm
Hola,
Estoy intentando utilizar un código de elchininet (gracias a el) que vi en este post para consegir unn listado de titulos de noticias.
Mi problema es que quiero un ancho fijo para un textfield multiline, con el alto que crece con el texto que contiene. Y no hay manera, he probado cosas con multiline, wordwrap y width, pero no lo consigo, siempre se queda el texto en una linea con el ancho que crece sin fin con el contenido.

El código es el siguiente:

Código :


this.onData = function () {
   
import flash.filters.GlowFilter; 
 
//---Variables 
var boton:MovieClip; 
var fondo:MovieClip; 
var texto:TextField; 
 
var estilo:TextFormat = new TextFormat(); 
 
var ancho:Number; 
var alto:Number; 
var posY:Number = 0; 
 
with(estilo){ 
   font = "Arial"; 
   size = 12; 
   color = 0x666666; 
   border = true;
} 
 
//---Ciclo de crear los botones y darle acciones 
//for(var i:Number = 1; i<=ligne; i++){ esto regoge el numero de lineas de la tabla de DB. Lo remplazo por un valor fijo para que lo podaís probar
for(var i:Number = 1; i <= 3; i++){ 
    
   boton = this.createEmptyMovieClip("boton" + i, this.getNextHighestDepth()); 
   fondo = boton.createEmptyMovieClip("fondo", boton.getNextHighestDepth()); 
   texto = boton.createTextField("texto", boton.getNextHighestDepth(), 0, 0, 0, 0); 
   
   //---Crear el texto 
   with(texto){ 
      //text = this["tit_"+i]; lo que uso normalmente, que recoge los titulos de noticias a partir de un archivo php. Esto va, pero para que lo podaís probar, pongo un texto fijo
      text = "sfsadfads sdfgds fasf sdfg dfsg dfsg dfsg dfsg df"
     autoSize = true; 
     setTextFormat(estilo); 

} 
    
   //---Dibujar el fondo depende de las medidas del texto    
   //ancho = texto._width; 
   ancho = 100;
   alto = texto._height; 
    
   with(fondo){ 
       
      beginFill(0x000000, 10); 
      moveTo(-2, -2); 
      lineTo(ancho + 4, -2); 
      lineTo(ancho + 4, alto + 4); 
      lineTo(0, alto + 4); 
      lineTo(0, 0); 
      endFill(); 
       
   } 
    
   //---Situar los botones 
   boton._y = posY; 
    
   posY += boton._height + 20; 
    
   //---Acción de los botones 
    
   boton.onRollOver = function():Void{ 
       
      var glow:GlowFilter = new GlowFilter(0x000000, 100, 3, 3, 1, 10); 
       
      var filterArray:Array = new Array(); 
      filterArray.push(glow); 
       
      this.texto.filters = filterArray; 
       
       
   } 
    
   boton.onRollOut = function():Void{ 
       
      this.texto.filters = []; 
       
       
   } 
    
   boton.onPress = function():Void{ 
       
      this.texto.filters = []; 
      this.texto.textColor = "0xFF0000"; 
       
       
   } 
    
   boton.onRelease = function():Void{ 
       
      this.texto.filters = []; 
      this.texto.textColor = "0x666666"; 
       
       
   } 
    
   boton.onReleaseOutside = function():Void{ 
       
      this.texto.filters = []; 
      this.texto.textColor = "0x666666"; 
       
       
   } 
    
} 
}

stop();


Agradezco la ayuda.
Un saludo.

Por z7

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Sep 2008 02:16 pm
Habías probado todo lo que necesitabas, lo que quizás no a la misma vez:

Código ActionScript :

//---En esta línea pones donde dice "ancho" el ancho que quieres que tenga el campo de texto 
texto = boton.createTextField("texto", boton.getNextHighestDepth(), 0, 0, ancho, 0);

//---Y aquí pones estas propiedades
with (texto) {
   
   autoSize = true;
   wordWrap = true;
   multiline = true;
   
   text = "sfsadfads sdfgds fasf sdfg dfsg dfsg dfsg dfsg df";
   setTextFormat(estilo);

}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 28 Sep 2008 03:20 pm
Hola elchininet;
Muchas gracias por tu ayuda, va perfectamente ;)
Solo tube que definir el valor del ancho antes del "for i=", sino, nada salía.

Un saludo.

Por z7

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Sep 2008 03:37 pm
Recuerda que ya había una variable "ancho", no puedes utilizar la misma, lo mejor es que pongas el valor directo en la instrucción, por ejemplo si quieres un ancho de 100:

Código ActionScript :

texto = boton.createTextField("texto", boton.getNextHighestDepth(), 0, 0, 100, 0); 

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 28 Sep 2008 04:55 pm
pués, si, mejor.. gracias otra vez. :D

Por z7

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Sep 2008 10:25 pm
vuelvo otra vez..
Ahora, he querido meter este código en un scroller que tengo, y no me aparece el texto. Si aparecen los fondos, con los altos correspondientes a la cantidad de texto, y si trazo el texto, me sale correcto a la salida, pero no se ve.

A parte de eso mi scroller ni funcciona, pero creo que será ojeto de otro post, vamos a ir por pasos...
Si hay alguna sugerencia, un link o lo que sea para hacer un buen scroller conteniendo botones dinámicos, me interesa.

Gracias,
Un saludo.

Por z7

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Sep 2008 08:17 pm
Como tienes hecho el scroller?
Por casualidad le tienes puesta alguna máscara?
De ser por código postea el código que utilizas para hacerlo.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 30 Sep 2008 05:36 am
si si, exacto... va con una mascara + 2 archivos actionscript externos..
¿no se puede aplicar, verdad?
Dime si hace faltta que lo cuelgue..
(también probe con el scroller del tutorial de esta web, que tambien va con mascara, y tampoco va... :? )

Gracias.
Un saludo.

Por z7

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Sep 2008 10:35 am
Si quieres enmascarar un texto dinámico, la fuente que este utiliza debe estar embedida.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 01 Oct 2008 07:00 am
Hola,
a ver si te sorprendo: no consigo embedear la fuente :? .
El vínculo que acabas de dar permite embedear la fuente, pero no para un textfield generado con createTextField.
Lo intente con "embedFonts = true;" e añadiendo la tipografía en la biblioteca, pero nada, sin resultado.
Adjunto un zip con el scroller q use, con un ejemplo funccionando con texto estático, y otro con texto dinamico que no me funcciona.
Gracias.

Un saludo.

aaaaarffffffffff..!! no puedo adjuntar nada?¿?¿?
Se puede descargar aquí.

Por z7

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Oct 2008 08:12 pm
Ve a la biblioteca da click derecho y escoge "New Font", en la ventana que sale escoge tu fuente, un tamaño mayor de al que la vas a utilizar y le pones un nombre en "Name", si quieres el mismo de la fuente. Después le das click derecho a esta fuente creada y escoges "linkage" en identifier pones un nombre sin espacios ni caracteres especiales Este es el nombre que utilizarás en el código, dejas marcada la opción de "Export in first frame" y presionas "OK".

Después suponiendo que le hayas dado un linkage como "myFont", el código debe ser algo como esto:

Código ActionScript :

var myFormat:TextFormat = new TextFormat();

with(myFormat){
   
   font = "myFont";
   size = 11;
   
}

var myText:TextField = this.createTextField("myText", this.getNextHighestDepth(), 0, 0, 200, 0);

with(myText){
   
   autoSize = true;
   wordWrap = true;
   embedFonts = true;
   text = "Texto que quieras poner";
   setTextFormat(myFormat);
   
}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 02 Oct 2008 06:33 am
ok..
en realidad, al preparar el archivo para el foro aislando el scroller, perdí la fuente de la biblioteca, pero la tenia antes, y aun así, no me iba.
Pero descubrí el porque del fallo. Me traía la fuente a la biblioteca copiandola de la biblioteca de otro archivo que funccionaba y pegandola. Esto no funcciona..
Borrandola y creandola desde 0, todo funcciona.

Gracias!
Ahora me queda hacer que el scroll funccione, este no va porque al parecer, mide el alto del clip que contiene antes de que este sea generado dinamicamente (bueno, supongo que esta es la razón). A ver cómo lo hago..

Si alguien tiene vinculos que me podrían ayudar a hacer un scroller mas moderno y sobre todo que funcciona, será bienvenido.

Por z7

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Oct 2008 08:11 pm
Tu scroll es un componente UIScrollBar o está realizado mediante AS?

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 03 Oct 2008 01:49 am
puessss.... como ya te habrás dado cuenta, mi nivel es bastante flojo.. a tal punto que no se ni contestar, lo monte adaptando tutoriales.
Pero creo que es as.. de todas formas, lo puedes descargar todo desde unos posts más arriba..
Hay 2 archivos as adjuntos: VirtualScroller.as y GUIScroller.as

Por z7

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Oct 2008 09:08 pm
Parece ser generado con script entonces. Y no te conviene hacerlo con los componentes?

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 06 Oct 2008 07:50 am
Puede ser que si... lo que más me importa es la personalización gráfica, quiero poder usar un scroller con el aspecto del q puse a descargar (personalizar las flechas, la barra, etc)
¿Se puede hacer esto con componentes? Te refieres al UIScrollerBar? Si es así, no veo ni como aplicarlo a mi conjunto de botones, ni cómo personalizarlo graficamente... algún vínculo?
Gracias ;)

Por z7

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Oct 2008 04:55 pm
Consulta en la ayuda de flash Action Script 2 Components > UIScrollBar Component > Customizing the UIScrollBar component

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 21 May 2009 12:30 pm
Hola,
Vuelvo varios meses después de haber montado mi textfield dinámico para ver si se puede tener más control en cuanto a los atributos html del texto enseñado.
El textfield enseña el texto correctamente, los <br> y las imágenes, pero tengo los siguientes problemas:

- La imagen solo se puede "incrustar" en el texto. Para que el texto sigua debajo de la imagen, tengo que darle varios <br> en el html, un control dificíl y un poco cutre la verdad.
¿hay una forma de que el textfield respete el atributo html "align" de la imagen? (es cómo siempre tener align="left", a pesar de tener right o nada)
Otro problema con las imagenes ocurre si la imagen es igual de ancha o más que el textfield: se queda peguado el texto en el borde derecho de la imagen, con una letra por línea. Unica solución que encontre para evitar eso: la solución cutre de los <br>. A ver si este problema es conocido...?

- El otro problema, el más importante, tiene que ver con los vinculos. El textfield los respeta, pero a veces, el clic no funcciona (sobre todo cuando es un link sobre una imagen, pero también ocurre con un link sobre texto): en vez de abrir el link, selecciona la línea de texto (como cuando seleccionamos un trozo de texto para copiarlo).
El código html es normal, en plan: <a href="http://www.xxxx.es/">http://www.xxxx.es/</a>
¿Alguién ha experimentado el mismo problema?
¿De que puede venir, y cómo solucionarlo?

Gracias de antemano.
Un saludo.

Por z7

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 May 2009 05:00 pm
El html en flash es bastante limitado, te encontrarás con estos problemas y otros más. Para el problema de la selección del texto en los links pon la propiedad selectable en false en el campo de texto.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 21 May 2009 07:32 pm
Gracias por tu respuesta.

- el selectable en false: peor, ya no abre nunca nada el vinculo.. sale el underline, pero al pinchar nada.
antes a veces se abria, con un doble clic.

- Y lo de la gestión de imagenes limitada: he visto webs con secciones dinamicas y artículos en plan blog, muy largos y con imagenes, pero todo en flash, no tenian problema ninguno, ¿habría otro metodo para hacer secciones de noticias dinamicas con imagenes en flash?

Un saludo.

Por z7

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 May 2009 07:45 pm
Es raro lo que comentas del link, postea un link online para observarlo.

Pues claro que se pueden hacer secciones de noticias con imágenes y texto que no las bordee, lo que no es tan sencillo como introducir un texto en html y ya, mediante una función puedes separar las imágenes del texto y dinámicamente en un movieClip vas insertando los textos y las imágenes según corresponda, después lo que escroleas es este movieClip completo.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 21 May 2009 08:00 pm
interesante lo de esta funcción, pero corrigeme si me equivoco:
Es el opuesto, es texto / imagen / texto sin incrustación (el align="left" del html no puede hacer que el movie clip de la imagen separada se incruste en el texto?).

La verdad es que la nterpretacion html de flash casi me vale si no fuera que una imagen de ancho = al ancho del textfield provoca un amontamiento de lettras en la derecha de la imagen...
Me gusta controlar si se incrusta o no, segun el tamaño de la imagen.

Por z7

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 May 2009 08:42 pm
Si me refiero a texto / imagen / texto sin incustración, si el tag de img tuviera un align left o right, entonces ese cuadro de texto lo insertas con imagen y todo, sólo debes separar las imágenes que no lo tengan.

El html de flash ayuda pero no tanto, si no fuera por este problema, porque los tags de <li> no pueden tener saltos de líneas y a la vez no se puede cambiar el bullet por estilos, que sólo soporta CSS1, que la decoración del texto sólo admite "none" y "underline", entre otras muchas cosas, fuera perfecto, pero siempre ha estado limitado. La forma de resolverlo cuando se quiere hacer un trabajo decoroso es utilizarlo hasta donde llega y lo demás hacerlo uno mismo. Es una pena la verdad :(

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 22 May 2009 07:19 am
Si, una pena...
Estoy imaginando cómo hacer esta funcción, y bueno, la idea, lo tengo claro, pero el detalle técnico, ya me veo con unos cuantos obstáculos, y seguro que hay más que no veo.
Detectar el tag <img parece sencillo, pero detectar el tag "align" de <img, si es que hay, pues... y los tags de tamaño de imágen.. mmmmm.... y detectar el fín del código de una imagen..
¿Tendrías un vínculo que trata del tema, tutorial o ejemplos de esta funcción? (me imagino que hacer esto es corriente..?)

Gracias.
Un saludo.

Por z7

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 May 2009 08:11 am
Mira este post, te dará una idea de como extraer los tags de <img>, después que hayas extraido en un arreglo tipo array(texto, <img>, <texto con img>, texto, <img>) puedes acceder a todas las propiedades del tag de img (align, width, height, etc) conviertiendo el tag a XML y accediendo a estos valores como si fueran atributos, al convertir un tag de img a XML debe quedarte algo como esto:

Código XML :

<img src="mifoto.jpg" align="left" width="100" height="80">
</img>


Por lo tanto la propiedad de align sería:

Código ActionScript :

xml.firstChild.attributes.align;


Creo que esto te dará una idea de cómo lo debes hacer.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 22 May 2009 08:44 am
Ok, muchas gracias ;)

Por z7

20 de clabLevel



 

firefox

 

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