Comunidad de diseño web y desarrollo en internet online

TextField que se adapte al tamaño de la ventana con scroll

Acabo de sacar un código para controlar que un campo de texto liquido se adapte al tamaño de la ventana y en caso de no visualizarse entero aparezca de forma automatica los botones de scroll.

Aqui les enseño el ejemplo.

Reduzcan el alto de la ventana para ver el efecto...

Y este es el código. Para ver el efecto, copialo y pegalo en el primer keyframe de tu pelicula.

Código :

function creaTexto() {
   //
   posx = 20;
   posy = 20 - (Stage.height - 400) / 2;
   alto = Stage.height - 40;
   ancho = 300;
   //
   this.createTextField("my_txt", 1, posx, posy, ancho, alto);
   my_txt.border = false;
   my_txt.multiline = true;
   my_txt.wordWrap = true;
   var my_fmt:TextFormat = new TextFormat();
   my_fmt.color = 0x000000;
   //texto falso...
   my_txt.text = "Ser una estrella de rock es difícil... no, empezaré de nuevo. Las últimas conferencias de Flex en Parquesoft (De las que hablaré pronto) y otros viajes aparte han hecho que olvide hablarles de algunas cosas que pasan en nuestra comunidad Flashera y que vale la pena resaltar. La primera de ellas es la fundación de GarageFlash, el nuevo Flash User Group peruano que nos sorprende con conferencias bimensuales de temas relacionados con el medio. En su primera edición estará Oscar Trelles con 'Flash: Guía Practica de Supervivencia, Ilustrada'; luego vendrá Giancarlo Vargas de Bluemetal (Amigo incondicional de Cristalab) con 'Proceso Creativo y técnico para alcanzar los objetivos de un proyecto'. Suenan bastante divertidas, así que si eres de Perú, no olvides registrarte. Suerte a la gente de GarageFlash, que por cierto, fue fundada por Eldervaz, un compañero del foro (Que escapó de Clab con heridas casi mortales ¡Te encontraremos donde te escondas!)";
   my_txt.text += my_txt.text;
   //...
   my_txt.setTextFormat(my_fmt);
   if (my_txt.maxscroll > 1) {
      creaScroll();
   }
}
function creaScroll() {
   this.attachMovie("b_scroll", "b_scroll1", this.getNextHighestDepth());
   this.attachMovie("b_scroll", "b_scroll2", this.getNextHighestDepth());
   this.attachMovie("b_roll", "b_roll", this.getNextHighestDepth());
   b_scroll1._x = b_scroll2._x = b_roll._x = my_txt._x + my_txt._width + 10;
   b_scroll1._y = my_txt._y;
   b_scroll2._y = my_txt._y + my_txt._height - b_scroll2._height;
   b_roll._y = b_scroll1._y + b_roll._height;
   //
   b_scroll1.onRelease = function() {
      my_txt.scroll--;
      controlaScoll();
   };
   b_scroll2.onRelease = function() {
      my_txt.scroll++;
      controlaScoll();
   };
}
function controlaScoll() {
   lineas = my_txt.maxscroll;
   trace(lineas);
   dist = (b_scroll2._y - b_scroll2._height) - (b_scroll1._y + b_scroll1._height);
   dist1 = dist / (lineas - 1);
   b_roll._y = b_scroll1._y + b_scroll1._height + dist1 * (my_txt.scroll - 1);
}
//-----------------------------------
Stage.scaleMode = "noScale";
var listener:Object = new Object();
listener.onResize = function() {
   xscroll = my_txt.scroll;
   removeMovieClip(my_txt);
   removeMovieClip(b_scroll1);
   removeMovieClip(b_scroll2);
   removeMovieClip(b_roll);
   creaTexto();
   my_txt.scroll = xscroll;
   controlaScoll();
};
Stage.addListener(listener);
//-----------------------------------
creaTexto();
stop();


Este código es solo un esbozo... pero es un comienzo

Espero les sirva de algo ;)

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate