En mi código hay un montón de declaraciones de casos repetidos, son casi iguales, lo único que cambia en cada declaración de caso es el argumento 'clave' de la función clic (clave).
'c' es un JSON. El único problema es que necesito usar el argumento 'clave' dentro de robot.moveMouse() Debería verse así: robot.moveMouse(c.Key_x, c.Key_y); Pero esto tomaría 'clave' como una cadena, no como un argumento. ¿Cómo haría para hacer esto?
Mi código:
function click(key) { if(key == null) return; old_pos = robot.getMousePos(); switch(key) { case 'Record': robot.moveMouse(c.Record_x, c.Record_y); break; case 'Exit': robot.moveMouse(c.Exit_x, c.Exit_y); break; case 'Clear': robot.moveMouse(c.Clear_x, c.Clear_y); break; case 'Go': robot.moveMouse(c.Go_x, c.Go_y); break; case 'Delete': robot.moveMouse(c.Delete_x, c.Delete_y); break; case 'Move': robot.moveMouse(c.Move_x, c.Move_y); break; case 'Disk': robot.moveMouse(c.Disk_x, c.Disk_y); break; } robot.mouseClick(); robot.moveMouse(old_pos.x, old_pos.y); }El cuerpo JSON:
{ "Record_x": 426, "Record_y": 256, "Exit_x": 582, "Exit_y": 540, "Clear_x": 702, "Clear_y": 500, "Go_x": 464, "Go_y": 584, "Delete_x": 425, "Delete_y": 298, "Move_x": 505, "Move_y": 293, "Disk_x": 626, "Disk_y": 252 }Solo usa c como una matriz:
robot.moveMouse(c[key+"_x"], c[key+"_y"]);