Comunidad de diseño web y desarrollo en internet online

problema al sumar campos de texto AS3

Citar            
MensajeEscrito el 03 Jul 2012 12:24 am
Hola, alguien sabe como puedo sumar 2 campos de introducción de texto y que el resultado aparezca en un campo dinamico es decir que el usuario ponga numeros en los 2 campos de introducción y el resultado aparezca en el campo de resultados en tiempo real?

http://foros.cristalab.com/problema-al-sumar-campos-de-texto-t61414/
algo asi pero en AS3

//---campos de entrada en 0
num1.text = Number(0);
num2.text = Number(0);

//---Restringir los caracteres aceptados (solo números)
num1.restrict = "0-9";
num2.restrict = "0-9";

//---Funciones para cuando sea variado el campo de texto
num1.onChanged = function():Void{

calcula();

}

num2.onChanged = function():Void{

calcula();

}

//---Función de calcular
function calcula():Void{

var n1:Number = (num1.text != "") ? Number(num1.text) : 0;
var n2:Number = (num2.text != "") ? Number(num2.text) : 0;

resultado.text = String(n1 + n2);

}

Por soulcrawler

3 de clabLevel



 

msie
Citar            
MensajeEscrito el 03 Jul 2012 03:58 pm
Lo que cambia seria el onChanged por un listener al TextInput

Código ActionScript :

campodetexto.addEventListener(TextEvent.TEXT_INPUT, calcula)
function calcula(evt:TextEvent):void{
(...)


Se lo deber[ias agregar a ambos campos, aunque yo lo calcular[ia al darle a un boton de sumar y me evitaria los listeners

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Jul 2012 04:42 pm
Gracias por tu respuesta Jorge, el boton no me sive pues lo que necesito es que el usuario ponga un valor en cada campo y que el resultado aparezca automaticamente en el campo de resultado cada vez que cambien los valores

hice lo que me dijiste, pero me da un error Escena 1, Capa 'Capa 1', Fotograma 1, Línea 25 1046: No se encontró el tipo o no es una constante en tiempo de compilación: Void.

este es el codigo como lo estoy usando. la verdad soy nuevo en esto de el AS3 y no entiendo mucho, el script me funciona perfecto en AS2 pero lo necesito para air


//---campos de entrada en 0
num1.text = Number(0);
num2.text = Number(0);

//---Restringir los caracteres aceptados (solo números)
num1.restrict = "0-9";
num2.restrict = "0-9";

//---Funciones para cuando sea variado el campo de texto
num1.addEventListener(TextEvent.TEXT_INPUT, calcula1)
function calcula1(evt:TextEvent):void{

calcula();

}

num2.addEventListener(TextEvent.TEXT_INPUT, calcula2)
function calcula2(evt:TextEvent):void{

calcula();

}

//---Función de calcular
//---Escena 1, Capa 'Capa 1', Fotograma 1, Línea 25 1046: No se encontró el tipo o no es una constante en tiempo de compilación: Void.

function calcula():Void{

var n1:Number = (num1.text != "") ? Number(num1.text) : 0;
var n2:Number = (num2.text != "") ? Number(num2.text) : 0;

resultado.text = String(n1 + n2);

}

Por soulcrawler

3 de clabLevel



 

msie
Citar            
MensajeEscrito el 03 Jul 2012 04:50 pm
void empieza con minúscula
No hace falta caulcula1 y calcula2, apunta ambos listeners a calcula directamente

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Jul 2012 05:39 pm
OK ahora me dice 1021: Definición de función duplicada. que estoy haciendo mal?

//---Función de calcular
function calcula():void {

var n1:Number = (num1.text != "") ? Number(num1.text) : 0;
var n2:Number = (num2.text != "") ? Number(num2.text) : 0;

resultado.text = String(n1 + n2);

}

Por soulcrawler

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Jul 2012 06:38 pm
Estaras escribiendo dos veces la funcion calcula :)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Jul 2012 08:50 pm
ok ya cambié el script y aunque lo exporta sin errores no funciona, al introducir los valores me sale este error

ArgumentError: Error #1063: Argument count mismatch on Sint_fla::MainTimeline/calcula(). Expected 0, got 1.

el script está así

Código ActionScript :

//---Restringir los caracteres aceptados (solo números)
 num1.restrict = "0-9";
 num2.restrict = "0-9";
 
//---Funciones para cuando sea variado el campo de texto
 num1.addEventListener(TextEvent.TEXT_INPUT, calcula)
 num2.addEventListener(TextEvent.TEXT_INPUT, calcula)
 
//---Función de calcular
 function calcula():void{
 
var n1:Number = (num1.text != "") ? Number(num1.text) : 0;
 var n2:Number = (num2.text != "") ? Number(num2.text) : 0;
 
resultado.text = String(n1 + n2);
 
}

Por soulcrawler

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Jul 2012 11:16 pm
Ok, ahora vuelve unos posts atrás y mira como te había puesto el encabezado de la función

Código ActionScript :

function calcula(evt:TextEvent):void


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 04 Jul 2012 03:50 pm
OK Jorge ya logré que funcionara, muchas gracias por tu ayuda el script quedó asi

Código ActionScript :

//---campos de entrada en 0
num1.text = "0"
num2.text = "0"

//---Restringir los caracteres aceptados (solo números)
 num1.restrict = "0-9";
 num2.restrict = "0-9";
 
//---Funciones para cuando sea variado el campo de texto
 num1.addEventListener("change", calcula)
 num2.addEventListener("change", calcula)
 
//---Función de calcular
 function calcula(TextEvent):void{
 
resultado.text = String(Number(num1.text)+Number(num2.text)); 
}

Por soulcrawler

3 de clabLevel



 

msie

 

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