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

Mi primera pregunta,ayuda

Estas en el tema de Mi primera pregunta,ayuda en el foro de Flash y Actionscript en Foros del Web. Primero os pongo el código y luego explico el problema,bueno creo que primero me presento si soy novata y sí tengo escasos conocimientos de actionscript ...
  #1 (permalink)  
Antiguo 30/09/2005, 14:01
che
 
Fecha de Ingreso: septiembre-2005
Mensajes: 2
Antigüedad: 18 años, 6 meses
Puntos: 0
Mi primera pregunta,ayuda

Primero os pongo el código y luego explico el problema,bueno creo que primero me presento si soy novata y sí tengo escasos conocimientos de actionscript pero muchísima voluntad y muchísima necesidad de aprenderlo también.Aquí el código:

var contador=0;
someListener = new Object();
someListener.onKeyDown = function() {
punto=Key.getAscii();
trace(punto);//Para ver el código
if(punto==46){//que debe ser 46
contador=contador+1;
if (contador>1){
//trace("Más de un punto decimal,error");
comp=substring(h1.text,0,length(h1.text));
h1.text=comp;

}
}
};
someListener.onKeyUp=function(){
trace(h1.text);
if(contador>=2){
comp=substring(h1.text,0,length(h1.text)-1);
h1.text=comp;
contador=1;
}
};
Key.addListener(someListener);

Supuestamente éste código controla cada tecla que presiona el usuario y si esa tecla es un punto (código 46) en más o dos ocasiones entonces el textinput tiene que impedirle que escriba el segundo pero sí permite que escriba más números.Lo he probado en mi flash y el código funciona (si alguien conoce una forma más corta de hacer lo mismo agradecería me lo explicara).El problema es que este código lo tengo que aplicar a varios texinput y es ahí cuando falla he probado copiar y pegar el mismo código cambiando lógicamente el nombre del textinput pero no hay forma¿Alguien sabe la solución?
  #2 (permalink)  
Antiguo 30/09/2005, 17:03
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 22 años, 3 meses
Puntos: 193
Primero.

Crea una funcion que cheque el punto. Esta funcion la asignas al evento onChanged del Campo de texto.

Al llamar a la funcion asignada al avento onChanged se pasa como parametro que campo de texto se esta modificando. asi no tienes que hacer una funcion para cada campo, con una basta

Segundo.

Usa la propiedad restrict para setear que caracteres estan disponibles en el campo de texto..

En codigo queda algo asi..

Código:
input_txt.restrict = "0-9 .";
input_txt.onChanged = checaPunto;
//----------
input2_txt.restrict = "0-9 .";
input2_txt.onChanged = checaPunto;
function checaPunto(input:TextField) {
	var lastText:String = input.text.substr(0, input.text.length-1);
	if (Key.getAscii() == 46 && lastText.indexOf(".") != -1) {
		input.text = lastText;
	}
}
Teniendo la funcion solo basta asignarla al campo de texto, entonces solo queda asignarla, es decir por cada campo de texto debes incluir

Código:
TuCampo.restrict = "0-9 .";
TuCampo.onChanged = checaPunto;
y listo.. 8)
  #3 (permalink)  
Antiguo 01/10/2005, 11:28
che
 
Fecha de Ingreso: septiembre-2005
Mensajes: 2
Antigüedad: 18 años, 6 meses
Puntos: 0
algo debo hacer mal

He probado tu código y no me funciona es como si el textinput no entrara en la funcion.He cambiado lógicamente donde ponía Tucampo por el nombre del mío pero parece que no cuela....
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 17:00.