Comunidad de diseño web y desarrollo en internet online

Añadir texto interno a un textArea sin sobreescribirlo

Citar            
MensajeEscrito el 29 Sep 2007 11:49 pm
Hola! Hoy mismo había posteado una duda que tenía sobre unos botones que cargaban texto a un textArea (el problema era que no ponía else if, solo ponía if). Referido a eso, si queréis os pasáis por el enlace para entender mejor la siguiente pregunta:
Con ese mismo código, cómo puedo hacer para que, en las respuestas, en vez de convertir el texto de terminalresult a lo que ponga, se añada? es decir, que si hago varias peticiones seguidas, los textos anteriores se guarden en el textArea a modo de log.
Algo como, en vez de igualar texto, como se hace en el código, añadirlo (así quedaría un scroll en el textArea para ver las respuestas anteriores).

Pego el código AS2 de mi archivo para que no tengáis que pasaros por el enlace:

on (release){
if (terminal.text == "Open Usuario/Aplicaciones/Hello World"){
_root.AppHW.gotoAndStop(2);
terminalresult.text = "Ok. Comando detectado.";
}
else if (terminal.text == "Open Usuario/Aplicaciones/Escritor"){
_root.AppEscritor.gotoAndStop(2);
terminalresult.text = "Ok. Comando detectado.";
}
else if (terminal.text == "Open Usuario/Aplicaciones/Calculadora"){
_root.AppGrafic.gotoAndStop(2);
terminalresult.text = "Ok. Comando detectado.";
}
else if (terminal.text == "Open Usuario/Imagenes/MacVerde"){
_root.AppMacVerde.gotoAndStop(2);
terminalresult.text = "Ok. Comando detectado.";
}
else if (terminal.text == "BringToFront Usuario/Aplicaciones/Hello World"){
mx.behaviors.DepthControl.bringToFront(_root.AppHW);
terminalresult.text = "Ok. Comando detectado.";
}
else if (terminal.text == "BringToFront Usuario/Aplicaciones/Escritor"){
mx.behaviors.DepthControl.bringToFront(_root.AppEscritor);
terminalresult.text = "Ok. Comando detectado.";
}
else if (terminal.text == "BringToFront Usuario/Aplicaciones/Calculadora"){
mx.behaviors.DepthControl.bringToFront(_root.AppGrafic);
terminalresult.text = "Ok. Comando detectado.";
}
else if (terminal.text == "BringToFront Usuario/Imagenes/MacVerde"){
mx.behaviors.DepthControl.bringToFront(_root.AppMacVerde);
terminalresult.text = "Ok. Comando detectado.";
}
else if (terminal.text == "Close Usuario/Aplicaciones/Hello World"){
_root.AppHW.gotoAndStop(1);
terminalresult.text = "Ok. Comando detectado.";
}
else if (terminal.text == "Close Usuario/Aplicaciones/Escritor"){
_root.AppEscritor.gotoAndStop(1);
terminalresult.text = "Ok. Comando detectado.";
}
else if (terminal.text == "Close Usuario/Aplicaciones/Calculadora"){
_root.AppGrafic.gotoAndStop(1);
terminalresult.text = "Ok. Comando detectado.";
}
else if (terminal.text == "Close Usuario/Imagenes/MacVerde"){
_root.AppMacVerde.gotoAndStop(1);
terminalresult.text = "Ok. Comando detectado.";
}
else{
terminalresult.text = "El comando que has escrito no existe o es indetectable.";
}
}


Elementos:
Un textInput en el que escribes el comando. {se llama terminal}
Un botón que, al pulsarlo, comprueba si el comando es correcto y ejecuta la función del mismo.
Un textArea justo arriba del Input que recibe un texto del botón de comprobación, dependiendo de la función. {se llama terminalresult}

Gracias de antemano!

Por Mixalberto

25 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 30 Sep 2007 03:18 am
Prueba con este codigo (va en el fotograma, no en el boton). Solo cambia "btn" por el nombre de instancia de tu boton y haz mas grande tu caja terminalresult para que se muestren los resultados. Espero que funcione porque me tarde en acomodar tu codigo XD...

Código :

a = 0;
var textos:Array = new Array();
btn.onPress = function() {
   switch (terminal.text) {
   case "Open Usuario/Aplicaciones/Hello World" :
      _root.AppHW.gotoAndStop(2);
      terminalresult.text = "Ok. Comando detectado.";
      break;
   case "Open Usuario/Aplicaciones/Escritor" :
      _root.AppEscritor.gotoAndStop(2);
      terminalresult.text = "Ok. Comando detectado.";
      break;
   case "Open Usuario/Aplicaciones/Calculadora" :
      _root.AppGrafic.gotoAndStop(2);
      terminalresult.text = "Ok. Comando detectado.";
      break;
   case "Open Usuario/Imagenes/MacVerde" :
      _root.AppMacVerde.gotoAndStop(2);
      terminalresult.text = "Ok. Comando detectado.";
      break;
   case "BringToFront Usuario/Aplicaciones/Hello World" :
      mx.behaviors.DepthControl.bringToFront(_root.AppHW);
      terminalresult.text = "Ok. Comando detectado.";
      break;
   case "BringToFront Usuario/Aplicaciones/Escritor" :
      mx.behaviors.DepthControl.bringToFront(_root.AppEscritor);
      terminalresult.text = "Ok. Comando detectado.";
      break;
   case "BringToFront Usuario/Aplicaciones/Calculadora" :
      mx.behaviors.DepthControl.bringToFront(_root.AppGrafic);
      terminalresult.text = "Ok. Comando detectado.";
      break;
   case "BringToFront Usuario/Imagenes/MacVerde" :
      mx.behaviors.DepthControl.bringToFront(_root.AppMacVerde);
      terminalresult.text = "Ok. Comando detectado.";
      break;
   case "Close Usuario/Aplicaciones/Hello World" :
      _root.AppHW.gotoAndStop(1);
      terminalresult.text = "Ok. Comando detectado.";
      break;
   case "Close Usuario/Aplicaciones/Escritor" :
      _root.AppEscritor.gotoAndStop(1);
      terminalresult.text = "Ok. Comando detectado.";
      break;
   case "Close Usuario/Aplicaciones/Calculadora" :
      _root.AppGrafic.gotoAndStop(1);
      terminalresult.text = "Ok. Comando detectado.";
      break;
   case "Close Usuario/Imagenes/MacVerde" :
      _root.AppMacVerde.gotoAndStop(1);
      terminalresult.text = "Ok. Comando detectado.";
      break;
   default :
      terminalresult.text = "El comando que has escrito no existe o es indetectable.";
   }
   textos[a] = terminalresult.text;
   terminalresult.text = "";
   for (a=0; textos.length>a; a++) {
      terminalresult.text += textos[a]+"\n";
   }
   terminal.text = "";
}

Por Wako

77 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Sep 2007 09:18 am
sí! sí que sirve! pero lo malo es que si realizo muchas peticiones el textArea se queda centrado a la primera línea, o sea, que tienes que hacer scroll hacia abajo manualmente para ver la última. alguna sugerencia? :P

Gracias, gracias por todo lo que ayudáis en este foro.

Por Mixalberto

25 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 30 Sep 2007 04:58 pm
Cambialo por esto:
Esto hasta arriba

Código :

b=0;

El for lo cambias por este, que no se te olvide el b=a;
Tal vez se podia sin agregar otra variable pero no se me ocurrio como.

Código :

   for (a=0; textos.length>a; a++) {
      terminalresult.text += textos[b]+"\n";
      b -= 1;
   }
   b = a;

Por Wako

77 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Sep 2007 05:09 pm
ajá, perfecto. muchísimas gracias!

Por Mixalberto

25 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 30 Sep 2007 06:36 pm
Sólo una cosa más.
entiendo que has cambiado el orden de adición de los textos en ascendente en vez de descendente. Y eso me sirve de mucha utilidad. Pero es posible hacerlo de forma descendente, como estaba, pero que el textArea siempre se centre en la última línea?
Lo siento si es mucho pedir ;)

Por Mixalberto

25 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 30 Sep 2007 08:29 pm
Al primer codigo que te di colocale esto abajo de terminal.text = ""; y antes de cerrar el codigo del boton ( } ).

Código :

terminalresult.vPosition = a;

Por Wako

77 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Sep 2007 09:14 pm
Fuuunciona!
Creo que ya no necesito nada mas :P
Asunto Zanjado.

Por Mixalberto

25 de clabLevel



Genero:Masculino  

safari

 

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