Comunidad de diseño web y desarrollo en internet online

necesito consejos sobre listener

Citar            
MensajeEscrito el 02 Sep 2008 03:13 am

Código :

cajatexto1.tabIndex = 1;
cajatexto2.tabIndex = 2;
cajatexto3.tabIndex = 3;
cajatexto4.tabIndex = 4;

i=2;
Tabular = {}
Tabular.onKeyDown = function(){      
if (Key.isDown(Key.ENTER)){      
Selection.setFocus(eval("cajatexto"+i));      
i++;   
} 
}
Key.addListener(Tabular);

este es mi codigo, lo que intento hacer es que cuando yo ponga la respuesta correcta (2) pase al siguiente cuadro -cajatexto2- cuya respuesta correcta es (7) y asi sucesivamente, yo lo se hacer por medio de case, pero si lo hago por este metodo la tecla enter no me funciona y mi usuario tendria que apretar el boton cada vez que ponga una respuesta.. y realmente lo que quiero es que si yo coloco la respuesta correta -2- al poner enter se coloque en mi cajatexto2 y asi sucesivamente pero el codigo que puse solo pasa de una caja a otra sin importar el resultado.. intente con este cambio

Código :

cajatexto1.tabIndex = 1;
cajatexto2.tabIndex = 2;
cajatexto3.tabIndex = 3;
cajatexto4.tabIndex = 4;

i=2;
ii=7;
iii=15;
iiii=148;

Tabular = {}
Tabular.onKeyDown = function(){      
if (Key.isDown(Key.ENTER)){      
Selection.setFocus(eval("cajatexto==2"));
if (cajatexto1=2);
_root.score4 +=1;
}else{
_root.error4 +=1;
}      
}
Key.addListener(Tabular);


pero tampoco funciona.. alguien podria darme algunas ideas? :cry:

realmente lo que necesito es que al poner una respuesta correcta y presione enter me de resultado positivo en mi score y me pase al siguiente cuadro de texto.. pero por algun motivo el enter no me funciona

Por noentiendonada

92 de clabLevel



 

msie
Citar            
MensajeEscrito el 02 Sep 2008 10:42 am
No se en que post ya te respondí que hace algún tiempo te ayudé en un ejercicio que hacía lo que deseas.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 03 Sep 2008 12:09 am
ya lo revise y modifique pero mi problema es que en una hoja nueva -pelicula en blanco- funciona perfecto es mas hasta agregandole nuevos frames y layers pero si lo pongo en mi pelicula original no jala.. podra ser problema de flash? que otra funcion me este evitando que funcione el listener.. por eso mande el tema porque no funciona mi listener original

Por noentiendonada

92 de clabLevel



 

msie
Citar            
MensajeEscrito el 03 Sep 2008 09:41 am
Ahhh, es que no te funciona, pero el método lo sabes hacer no?
No me acuerdo cual era el post, postea el código nuevo que no te funciona a partir del anterior.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 03 Sep 2008 05:37 pm
entiendo el concepto, pero no se como modificarlo para mi pelicula en general, es decir no se si flash me esta causando problemas con mis demas escenas porque la modificacin que hice en la pelicula nueva -es decir la que no tiene todas las demas escenas- funciona perfecto, pero ya cuando lo aplico a la pelicula principal el enter no jala, entonces pense que probablemente habia otra opcion para hacer funcionar el enter algo asi como una orden que le diga a flash que si pongo enter ejecute la accion de calificar.. el codigo es este ya con las modificaciones...

Código :

on (keyPress "<Enter>") {      
var actual:Number = _root.actual;   
if (_root["uni"+actual].text != String(
_root.correcto[actual])) {   
trace("error");      
_root.error4 += 1;      
_root.trie4 += 1;  
} else {      
trace("correcto");     
_root.score4 += 1;     
_root.trie4 += 1;     
_root["uni"+actual].selectable = false;      
if (actual != _root.correcto.length-1) {         
_root["uni"+(actual+1)].selectable = true;         
Selection.setFocus(_root["uni"+(actual+1)  ]                  
);         
_root.actual++;      
}else{                 
nextFrame();
}  
}
}

//este codigo va en el boton
y el codigo que sigue va en el primer frame de donde tengo la operacion

Código :

for (var i:Number = 1; i<=3; i++) {   
_root["uni"+i].selectable = false;
}

var actual:Number = 0;
var correcto:Array = new Array(2, 7, 15, 148);

stop();

este en la pelicula nueva funciona perfecto, pero al cambiar al siguiente ejercicio con el mismo codigo puesto que las respuestas son diferentes la modificacion seria de esta manera:

Código :

for (var i:Number = 1; i<=3; i++) {   
_root["uni"+i].selectable = false;
}

var actual:Number = 0;
var correcto:Array = new Array(milésimos, unidades, centesímos);//aqui ya me marca error en el codigo y tampoco entiendo porque//

stop();

de alguna manera creo que mis nombres de instancias se estan cruzando con mis nombres de variables y probablemente por eso no funcione en la pelicula original pero no estoy segura.. que podria ser?

Por noentiendonada

92 de clabLevel



 

msie
Citar            
MensajeEscrito el 03 Sep 2008 08:10 pm
Lo que tienes es un problema de conceptos, mira lo que te devuelve un campo de texto con la propiedad "text" es un String, cuando los resultados eran números había que convertirlos a String para compararlo con el campo de texto:

Código ActionScript :

if (_root["uni"+actual].text != String(_root.correcto[actual])) {


Pero ahora las respuestas no son números sino texto... si pones esto:

Código ActionScript :

var correcto:Array = new Array(milésimos, unidades, centesímos);


Flash estará creando un arreglo de variables las cuales tienen de nombre milésimos, unidades y centésimos y al final no son variables (nunca las has declarado), lo que debe aparecer aquí son Strings que es al final lo que te devuelve el campo de texto, por lo tanto lo correcto es que el arreglo de respuestas contenga Strings:

Código ActionScript :

var correcto:Array = new Array("milésimos", "unidades", "centesímos");


Y la comparación ya puede ser directa sin convertir a String porque es lo que contiene el arreglo:

Código ActionScript :

if (_root["uni"+actual].text != _root.correcto[actual]) {

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 03 Sep 2008 08:56 pm
entonces... quedaria algo asi:?
for (var i:Number = 1; i<=3; i++) { _root["uni"+i].selectable = false;
}

var actual:Number = 0;
var correcto:Array = new Array("milésimo", "unidades", (centesímos");

stop();
????
y como es que funciona en una nueva hoja y no en mi pelicula???

Por noentiendonada

92 de clabLevel



 

msie
Citar            
MensajeEscrito el 03 Sep 2008 09:49 pm
Asi no:

Código ActionScript :

var correcto:Array = new Array("milésimo", "unidades", (centesímos");


Asi:

Código ActionScript :

var correcto:Array = new Array("milésimo", "unidades", "centesímos");


Si te funciona en una película si y en otra no, busca que no estés repitiendo variables o funciones.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

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