Comunidad de diseño web y desarrollo en internet online

scroll en texto

Citar            
MensajeEscrito el 25 Ene 2007 12:26 pm
Tengo un problema, les cuento:

He creado un campo de texto dinámico, llamado 'carga_textos'.

A su vez he creado un par de botones (una flecha hacia arriba y otra hacia abajo) de modo que pueda subir o bajar cuando el texto que cargo sea tan grande que no cabe entero en el campo de texto dinámico. A estos botones les he puesto el siguiente código:

Botón Arriba:
on (release) {
carga_textos.scroll = carga_textos.scroll - 1;
}


Botón Abajo:
on (release) {
carga_textos.scroll = carga_textos.scroll + 1;
}


Con esto consigo que cada vez que pulse uno de los botones el texto suba o baje una línea, pero en realidad lo que quiero es que si dejo pulsado uno de los botones el texto siga subiendo o bajando y no tener que estar haciendo un montón de clicks.

¿Alguien podría ayudarme? Muchas gracias por adelantado.

Por walterExp

19 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 25 Ene 2007 02:45 pm
para eso puedes hacer varias cosas ahora te diré una

debes hacer un MovieClip y dentro el texto dinámico
on (release) {
carga_textos.scroll = carga_textos.scroll + 1;

luego en el pones este cod
}

Código :

OnclipEvent(load){
 up = false;
 down = false
}

ahí se declaran las variables pressed para chequear si están presionados los botones luego pones esto en el enterframe del Movie clip

Código :

OnclipEvent(enterframe){
If(down){
_root.Tumovieclip.carga_textos.scroll = carga_textos.scroll + 1;
}else if(up){
_root.Tumovieclip.carga_textos.scroll = carga_textos.scroll -1;
}
}




luego en el onpress de los botones pones a true o lavariable correspondiente up o down
y en el onrelease la pones a false.

y ya está espero te sirva

Por maikelswf

32 de clabLevel



 

opera
Citar            
MensajeEscrito el 25 Ene 2007 02:48 pm
en la parate que tiene

on (release) {
carga_textos.scroll = carga_textos.scroll + 1;

solo fue que lo copie para una guía pero no lo tengas en cuenta

Por maikelswf

32 de clabLevel



 

opera
Citar            
MensajeEscrito el 26 Ene 2007 08:51 am
Gracias, voy a probar eso a ver si me funciona.

Por walterExp

19 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 26 Ene 2007 11:30 am
maikelswf, tengo un problema. Para llamar al MC donde tengo el texto dinámico tengo que poner un Loader que lo llame en la película principal.

Entonces, para hacer esto que dices...
onClipEvent(enterFrame){
if(down){
_root.Tumovieclip.carga_textos.scroll = carga_textos.scroll + 1;
}else if(up){
_root.Tumovieclip.carga_textos.scroll = carga_textos.scroll - 1;
}
}


Donde pone "Tumuvieclip" ¿tengo que poner el nombre de instancia del Loader que he usado? es que no consigo que me funcione, a ver si puedes aclarármelo un poco.

¿Como puedo modificar una var de un MC que he llamado desde una película principal con un Loader? Es decir, modificar esa var a trabes del Loader desde la película principal. Esto me solucionaría el problema, porque en cada condición del if del código de arriba podría modificar la variable "carga_textos".

Espero respuestas, muchas gracias.

Por walterExp

19 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 26 Ene 2007 12:29 pm
Me autorespondo algunas cosas.

En vez de usar un Loader lo que hago es crear el texto dinámico ("carga_textos") y convertirlo en MC. Antes lo estaba haciendo con un Loader, ese era uno de mis fallos. El caso es que ahora que parece que lo estoy haciendo exactamente con dices aún no me funciona, y no se que podrá ser... Aquí está lo que he hecho para ver si alguien sabe donde está el fallo:

Creo un campo de texto dinámico al que llamo "cargatext", y lo convierto en MC llamándolo "textoMC".

En el primer frame del flash principal pongo este código:
//para que salgan bien los acentos al leer del fich de texto
System.useCodepage = true;

//Leeremos las variables de este archivo para el campo de texto dinamico
loadVariables("textos.txt",_root);


En el segundo frame pongo este código:
//cargo en la var de texto dinámico el texto que hay en la variable "texto1"
//que está en el archivo de texto antes cargado
_root.textoMC.cargatext.text = eval("texto1");


Ahora creo dos botones, uno para subir el texto y otro para bajarlo:
En el botón que sube pongo este código:
on (press) {
sube = true;
}

on (release) {
sube = false;
}


En el botón que baja pongo este código:
on (press) {
baja = true;
}

on (release) {
baja = false;
}


Por último, en el MC creado pongo este código:
onClipEvent(load){
sube = false;
baja = false
}

onClipEvent(enterFrame){
if(baja){
_root.textoMC.cargatext.scroll = _root.textoMC.cargatext.scroll + 1;
}else if(sube){
_root.textoMC.cargatext.scroll = _root.textoMC.cargatext.scroll -1;
}
}


Creo que lo he hecho todo como decías, a ver si alguien me ilumina.

Muchas gracias de nuevo.

Por walterExp

19 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 27 Ene 2007 08:53 pm
verifica que al movie clip que creaste le hayas puesto como nombre de instancia textoMC no solo a la hora de crearlo sino después de creado y insertado en el escenario le pones el nombre de instancia en el cuadro de propiedades de este.

y a ver si te funciona si no es esto explicate un poco más para ver que se puede hacer

Por maikelswf

32 de clabLevel



 

opera
Citar            
MensajeEscrito el 12 Jul 2008 04:42 am
No seria mas facil dejarlo coo está pero el lugar de on(release) se a un on(press) o aun mas comodo para el usuario con un on(rollover)?

Por Mike§ilver

83 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Jul 2008 09:35 pm
Yo creo que la forma más interesante de hacer esto es creando además el scrool con una barra como cualquier ventana que vemos nolmalmente. Analicemos estos posibles casos: si el texto es dinámico entonces puede darse el caso de que llegue a ser muyyy extenso, por lo cual subirlo o bajarlo aumentando o disminuyendo en 1 su posición sería ineficiente (imagínense cuántos clic habría que dar para un texto de 300 líneas si queremos ver el final del mismo). Por otra parte la creación de una barra en el scrool para subir o bajar el texto tiene sus dificultades para su implementación, es decir, si al bajar la barra esta hace que el texto suba más de la cuenta entonces dejaremos lo que queremos leer demaciado atrás, por lo que la medida en que esta barra suba o baje el texto deberá ser DINÁMICA. Yo ya me encargué de implementar algunas. Si alguien está interesado me puede decir cómo le hago llegar un fichero compactado con un ejemplo hecho. No es lo más óptimo que verán pero al menos les puede alimentar las ideas.

Saludos

Por West

12 de clabLevel



 

msie
Citar            
MensajeEscrito el 13 Jul 2008 03:50 pm
Puedes crear un onEnterFrame en cada botón para escrollear el texto cuando se quede presionado el botón y cuando se suelte borrar el onEnterFrame:

Código :

on (press) {
   
   var sum:Number = 0;
   
   _root.carga_textos.scroll++;
   
   this.onEnterFrame = function():Void{
      
      sum++;
      
      if(sum > 10){
         
         _root.carga_textos.scroll++;
         
      }
      
   }
   
}

on (release) {
   
   delete this.onEnterFrame;
   
}


En este caso cuando la variable sum sea mayor que 10 es que empezará a scrollear continuo, esto le da un margen al usuario para presionar o dejar presionado, si cambias el valor de esta variable el tiempo de espera será menos o más dependiendo de los fps de tu documento.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 13 Abr 2009 01:46 am
saludos.
He realizado un cuadro de texto dinamico, en el que hago llamado de texto a partir de botones, con el sencillo comando:

on (release) {loadVariablesNum("nombredelarchivo.txt", 0);}
(comando ejemplo)

en donde el cuadro de texto tiene un area delimitada.
Como entenderan, tengo varios botones que hacen llamado de texto a este mismo cuadro de texto dinamico,
el problema està en que algunos textos son mas extensos que otros, por lo que necesito un scrollbar conefecto easing.

he seguido el ejemplo acontinuacion:
http://www.recursos-flash.es/?q=node/10

pero no consigo utilizar que varios botones hagan llamado de texto a un mismo cuadro de texto dinamico y que ademàs aparezca el scrollbar con efecto easing.
Debo decir que soy novato en este tema, por lo que agradeceria mucho su colaboraciòn.

Por andrezael

1 de clabLevel



Genero:Masculino  

firefox

 

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