Foros del Web » Creando para Internet » Flash y Actionscript »

Pregunta de primaria...

Estas en el tema de Pregunta de primaria... en el foro de Flash y Actionscript en Foros del Web. Tengo dos textos dinámicos. Uno me viene a través de un "Load" de un archivo .txt y el otro un vqlor que yo mismo incluyo ...
  #1 (permalink)  
Antiguo 19/05/2006, 18:54
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Pregunta de primaria...

Tengo dos textos dinámicos. Uno me viene a través de un "Load" de un archivo .txt y el otro un vqlor que yo mismo incluyo en mi animación. Tengo un tercer texto dinámico en el que quiero poner esa información.

De qué manera multiplico o divido dos textos dinámicos?...

Gracias por vuestra ayuda...

Saludos!...
__________________
Andrew :P
  #2 (permalink)  
Antiguo 19/05/2006, 19:02
Avatar de Prince  
Fecha de Ingreso: mayo-2003
Ubicación: DF
Mensajes: 574
Antigüedad: 20 años, 11 meses
Puntos: 1
Bueno imagino que el texto que contienen entonces son números de alguna manera. y lo que quieres es hacer operaciones con esos números.

Por default todo texto que se encuentra en un campo de texto es de tipo "string" o sea texto, por lo tanto si lo sumas en realidad lo que haces es concatenarlo como dices.
Para poder hacer operaciones lo tienes que cambiar al tipo de dato que requieras en este caso numero.
Hay varias formas de hacerlo.
Código:
var numero:Number = Number(cajaTexto.text);
var entero = parseInt(cajaTexto.text);
var flotante = parseFloat(cajaTexto.text);
__________________
- P R I N C E -
  #3 (permalink)  
Antiguo 21/05/2006, 03:19
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Gracias Prince... Lo que he hecho es lo siguiente... Tengo tres textos dinámicos: valor (contiene un precio en euros); valor1 (contiene un archivo .txt con otro precio) y dolar (debería tener el producto de la multiplicación de los dos anteriores).
Así, lo que hice fue:

dolar.text = (Number(valor1.text))/Number((valor.text));

De esta manera me sale un "NaN" ....

También hice lo siguiente:

a = valor.text;
b = valor1.text;
c = dolar.text;
c = a*b;

Desafortunadamente me sigue saliendo el tal "NaN"... Qué puedo hacer entonces?...

Gracias y un cordial saludo...
__________________
Andrew :P

Última edición por andrewp; 21/05/2006 a las 05:02
  #4 (permalink)  
Antiguo 21/05/2006, 06:55
Avatar de Prince  
Fecha de Ingreso: mayo-2003
Ubicación: DF
Mensajes: 574
Antigüedad: 20 años, 11 meses
Puntos: 1
Puedes irlo depurando. Lo más seguro es que alguno de los valores esté indefinido o algo por el estilo.
Hazle un trace a cada uno de los valores encerrando el valor de muestra entre "pipes" para ver si no tiene espacios en blanco.
Código:
//Recuerda activar en trace con un botón para que muestres los datos una vez que ya los introdujiste.
trace("|" + valor.text + "|" + valor1.text + "|" + dolar.text + "|");
__________________
- P R I N C E -
  #5 (permalink)  
Antiguo 21/05/2006, 06:59
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Hola Prince... Pues me salió esto:
|_level0.valor|undefined|undefined|

Cómo puedo definirlos entonces?...
__________________
Andrew :P
  #6 (permalink)  
Antiguo 21/05/2006, 11:51
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Hola andrewp:
Vamos a ver si te entendí.
Tienes que tener un campo de un troducción de texto con nombre de instancia valor1, para poder escribir el número.
2 campos de texto dinámico:
El primero con var: numero y nombre de instancia: valor2.
El segundo con nombre de instancia: valor3.
Creas tu archivo .txt con var: numero=3 y lo guardas como numero.txt.
En el primer frame de tu película coloca éste código:
loadVariablesNum("numero.txt", 0);
valor1.onChanged = function():Void{
if(valor1.text!="")
var num1 = new Number(valor1.text);
else
var num1 = new Number(0);
if(valor2.text!="")
var num2 = new Number(valor2.text);
else
var num2 = new Number(0);
valor3.text = num1 * num2;
}

valor2.onChanged = function():Void{
if(valor1.text!="")
var num1 = new Number(valor1.text);
else
var num1 = new Number(0);
if(valor2.text!="")
var num2 = new Number(valor2.text);
else
var num2 = new Number(0);
valor3.text = num1 * num2;
}

Con esto se cargará el número en valor2 y cuando escribas el número en valor1 el resultado se mostrará en valor3.

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #7 (permalink)  
Antiguo 21/05/2006, 13:52
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Bandit!...

Agradezco inmensamente tu siempre tan valiosa ayuda en estos temas tan complicados.... Desafortunadamente tu ejemplo tan bien descrito no funciona en mi caso. Incluso seguí, al pie de la letra, tu ejemplo en una nueva animación y me genera el tal "NaN"... La idea es que hay tres campos de texto dinámico:
El primer campo de texto dinámico contiene una información que se carga desde un archivo .txt. (se trata de un número a modo n,nn)
El segundo campo de texto dinámico contiene una información que es fija y previamente se ha incluído (se trata de un número con decimales a modo nn,nn).
El tercer campo de texto dinámico debería contener el valor matemático resultado de los dos anteriores campos dinámicos. Para ser más explícito debe ser la división del segundo campo entre el primero.
Yo he nombrado los campos en instancias y variables como se debe hacer y he usado diversas fórmulas (incluyendo del tipo var).
La que más me resulta (aunque me sale el tal NaN) es:
loadVariablesNum("archivo.txt", 0);
CD3 = (Number(CD2.text))/Number((CD1.text)); // CD son las siglas de Campo Dinámico.

He visto cantidad de tutos para suma, resta y multiplicación pero no me cuadran.

En qué estoy fallando entonces?...

Gracias por vuestra ayuda y coloaboración....
__________________
Andrew :P
  #8 (permalink)  
Antiguo 22/05/2006, 07:41
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Ninguna idea?.... :(
__________________
Andrew :P

Última edición por andrewp; 22/05/2006 a las 10:29
  #9 (permalink)  
Antiguo 22/05/2006, 14:58
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Please!......
__________________
Andrew :P
  #10 (permalink)  
Antiguo 25/05/2006, 02:32
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Gracias ya he encontre la respuesta!...

Saludos!...

__________________
Andrew :P
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:20.