JUMP_FRAME_PERCENT( int número_de_jumper, int porcentaje_de_visualización )


La sentencia JUMP_FRAME_PERCENT() sirve para realizar la visualización de un proceso, esta función requiere como parámetro de entrada el número de "jumper" de la función miembro y el porcentaje de visualización. El funcionamiento es igual que el de FRAME_PERCENT.

Si una función miembro definida con BEGIN_JUMP() ... END_JUMP comienza a ejecutarse y no finaliza ni ejecuta esta sentencia, entonces el programa se quedará bloqueado, ya que existe un proceso que no está nunca listo para la siguiente visualización; por lo que el sistema será incapaz de mostrar la siguiente imagen.


PROCESS( pru )
 PUBLIC
  int i;

 // Inicializamos el número de "jumpers" que vamos a utilizar
 // en este caso 2
 INIT_JUMP(2)

 // función miembro "prueba2()" admite parámetros y sentencias:
 // JUMP_FRAME(número de jumper)
 // JUMP_FRAME_PERCENT(número de jumper, %frame )
 // mismo funcionamiento que sus respectivas 
 BEGIN_JUMP(1, prueba2()) 

  write_int(0, 0, 0, 0, &i);

  for( i = 0; i < 200; i++ ) 
  { 
   JUMP_FRAME(1);
  }

 END_JUMP

 // función miembro "prueba()"
 // JUMP_ANCHOR(número de jumper, función miembro tipo JUMP)
 // establece el ancla de salto, para que en sucesivas llamadas
 // se pueda seguir ejecutando "prueba()" hasta que termine
 // "prueba2()"
 BEGIN_JUMP(0, prueba()) 

  JUMP_ANCHOR(0, prueba2());

 END_JUMP


BEGIN

 // ANCHOR(función miembro tipo JUMP)
 // establece el ancla de salto, para que en sucesivas llamadas
 // se pueda seguir ejecutando "prueba()" hasta que termine
 ANCHOR(prueba());

 write(0, 0, 20, 0, "Final de código.");
 write(0, 0, 40, 0, "Pulse ESC para terminar.");

 while(!key(_esc))
  FRAME;

END

MAIN_PROGRAM_CDIV
BEGIN_PROGRAM 

 set_gfx(GFX_AUTODETECT_WINDOWED);

 set_mode(m640x480);

 // Creamos el proceso
 new pru();

 LOOP
  FRAME;

END_PROGRAM

En este ejemplo vemos como se pude llamar a una función miembro capaz de ejecutar sentencias tipo FRAME, que a su vez llama a otra función miembro con igual operabilidad para mostrar un resultado y es capaz de dibujarlo por medio de la sentencia JUMP_FRAME() o JUMP_FRAME_PERCENT().

Las funciones miembro llamadas por medio de ANCHOR() o JUMP_ANCHOR() no pierden el valor de los parámetros de entrada ya que en cada ciclo vuelven a ser llamadas con dichos valor en sus parámetros, si estos cambiasen fuesen cambiados por otra función las funciones que utilicen dichos parámetros también serian afectadas. Además dichas funciones han de ser obligatoriamente de tipo entero "int".

Es posible anidar llamadas de funciones miembro por medio de las funciones ANCHOR() o JUMP_ANCHOR() siempre y cuando tengamos suficientes "jumpers" inicializados por medio de la función INIT_JUMP().


Ver: Sintaxis - INIT_JUMP() - BEGIN_JUMP() ... END_JUMP - ANCHOR() - JUMP_ANCHOR() - JUMP_FRAME()