Quien crea sitios web en HTML jamás se habrá planteado el problema del
desplazamiento del texto, puesto que la gestión de esta parte se le deja al
browser, que es el que se ocupa de ello. Sin embargo, en Flash es necesario "adaptarse" y encontrar
un modo oportuno para solucionar este inconveniente.
Flash propone una manera muy funcional en la técnica, aunque un poco menos
estéticamente.
Hay dos propiedades Flash que permiten la gestión del
desplazamiento del texto, estas propiedade son .scroll y .maxscroll.
Asociadas con una casilla de texto, permiten gestionar la visión en
líneas:
-
texto.scroll Ofrece el numero de la línea
superior visibile en la casilla de texto. Este valor puede
modificarse dinámicamente.
-
texto.maxscroll Muestra el limite maximo que
resulta en el scroll de texto. Este valor es constante y no se puede
cambiar.
Para entender mejor las dos propiedades pongamos un simple
ejemplo.
Si la tabla de aquí abajo fuese una casilla de texto llamada texto:
Éste es un ejemplo para
entender de la mejor forma posible las propiedades
.scroll y .maxscroll de Flash.
Con estas propiedades y pos- |
la propiedad texto.scroll ofrecería valor 1 (en
tanto que se muestra en la anto la primera línea del texto) mientras que la propiedad testo.maxscroll
daría valor 5 (el número de la línea que representa el límite del
campo de texto). Si aumentáramos en 1 el valor de texto.scroll (por tanto
resultaría 2) tendríamos:
entender de la mejor manera las propiedades
.scroll y .maxscroll de Flash.
Con estas propiedades se puede programar el...,etc... |
, por tanto la segunda linea se convierte en el límite superior y .maxscroll adopta
siempre un valor igual a 5.
Teniendo estos dos valores, resulta fácil ocuparse del desplazamiento. Dándole
a +1 la propiedad .scroll del campo de texto, automáticamente
se desplazará hacia abajo, mientras si se da -1 para desplazamientos hacia arriba.
Crear una casilla de texto con desplazamiento
Explicaré paso a paso cómo crear una casilla de texto que puede desfilar en la pantalla
a través de las propiedades .scroll y .maxscroll.
Antes de nada, añadir en un nuevo nivel de la movie, una casilla de texto y
darle un nombre... por ejemplo texto, para no complicarnos. Programar ya las
dimensiones que tiene que tener usando el cursor para las dimensiones del texto:

Programamos las propiedades para la nueva casilla de texto apenas
creada:

Es necesario Multiline, si no la casilla de texto tiene la dimensión de una sola línea.
Seleccionamos también Disable editing para evitar cambios por parte
del usuario, pero dejamos desactivada la voz Disable selection, ya que
podría resultarle útil al usuario seleccionar el texto para
copiarlo.
Como ya se ha dicho, este método para el scrolling es muy
funcional, pero pierde estéticamente. Y esto sucede porque la casilla de texto texto
tiene que tomar el valor (es decir el texto... perdonad el juego de palabras) a través de
la action Set Variable (así
no se podrá tener formateado del texto). Es
necesario actuar de esta manera porque si el texto se añade en el momento
de la creación de la casilla, esta toma altura según sea la anchura del
campo y no puede cambiarse (por lo tanto no podremos elegir la dimensión
que queramos). En efecto, la altura de la casilla se adapta de acuerdo con la anchura
programada (sólo si hay texto dentro).
Dicho esto, incluir en el keyframe de la casilla la action:
Set Variable: "texto" = "bla bla
bla"
donde, obviamente, en lugar de "bla bla bla" se incluirá el texto
elegido.
En este momento, introducimos en un nuevo nivel las dos clip botón que
representan el "arriba" y el "abajo" para el texto.
Para desfilar en la pantalla hacia abajo y hacia arriba, por desgracia no es suficiente aumentar o disminuir en 1
(1 línea) la propiedad .scroll, es necesario también añadir controles que
permitan "parar" el scrolling una vez que se ha llegado a la última
línea, para el scrolling hacia abajo, y a la primera línea, para el scrolling hacia
arriba. Por lo que respecta a la primera línea, no hay problema: el valor de la
primera línea será siempre igual a 1, mientras que el valor de la última línea podemos
tomarlo de .maxscroll.
He aquí la action para la clip botón "arriba":
On (Release)
Set Variable: "scr" = texto.scroll
If (scr > 1)
Set Variable: "texto.scroll" = scr - 1
End If
End On |
Por tanto, cuando el usuario suelta el botón, la variable scr toma
el valor de la primera línea mostrada en ese momento, y después se ejecuta el
control: si scr es mayor de 1 (por tanto, no es la primera línea), entonces
disminuye en 1 el valor de texto.scroll de modo que la casilla
se mueva una línea hacia arriba, si no, si scr es igual a 1 (estamos
en la primera línea), no es mayor de 1, no pasa nada.
He aquí la action para la clip botón
"abajo":
On (Release)
Set Variable: "scr" = texto.scroll
If (scr < texto.maxscroll)
Set Variable: "texto.scroll" = scr + 1
End If
End On |
Cuando se suelta el botón, scr toma el valor de la primera líneaa
visualizada en ese momento y después de hace el control: si scr es
menor de texto.maxscroll (por eso no estamos en la última línea), entonces
aumenta en uno el scroll, si no, si scr es igual a texto.maxscroll
no pasa nada.
Veamos cómo resulta el ejemplo que acabamos de crear:
Para entender lo mejor posible el procedimiento, he incluido también los valores de
texto.scroll y texto.maxscroll.