|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
T Búsqueda en este sitio:


.

App inventor 2 en español
Cómo programar los teléfonos móviles con Android
mediante App inventor 2 - Juan Antonio Villalpando

-- Tutorial de iniciación de App Inventor 2 en español --

Volver al índice del tutorial

____________________________

291.- Temporizador. Bucle For Next con Pausa. Por cada elemento de una Lista.

- Vamos a utilizar una extensión para utilizarla como temporizador, además podemos crear un bucle Por cada número (For each number) con Pausa, es decir cada vez que haga un recorrido realice una pausa.

- Lo mismo haremos con las lista Por cada elemento (For each item), es decir podemos hacer un recorrido con una lista consultando cada elemento con una Pausa.

- También en esta extensión construiremos un Timer con Tick.

- Observa que en el Timer si ponemos en cierto, la variable Boolean firstTick, disparará el primer evento en el inicio, en cambio si ponemos esa variable en falso, el primer disparo del evento se realizará el segundo tick, con esto conseguimos una cierta pausa hasta el primer evento.


 


- La forma en que App Inventor procesa los eventos es la siguiente:

https://groups.google.com/forum/#!msg/mitappinventortest/m8i32I2m200/Am3VYo3DTIUJ

  1. Only one event handler can be executing at any given time.
  2. Other events that occur while an event handler is executing are queued and handled later, in order.
  3. Any GUI changes during an event handler are not displayed until the event has completed.  
  4. Certain system actions (playing a sound file, initiating a web request, etc.) are executed in a thread separate from the current event handler.
  5. Playing a sound on a Player component first terminates any sound currently playing except when the source file has not been reset, in which case the new play request is ignored if the sound is already playing.
  1. Many iterative processes expressed with loops in other languages must, in App Inventor, be expressed as global state machines in which each step of the iteration is triggered by an event. 
  2. The Clock.Timer event is used to express iterations, delays, and the interleaving of actions. In Christian's case, Scott has recommended using a timer to program the delay between two messages. 
  3. App Inventor actions that take a long or unpredictable amount of time are expressed as pairs of (1) a method that initiates the action and (2) a callback event handler that is executed when the action completes. Examples of such pairs are Camera.TakePicture/Camera. AfterPicture and TinyWebDB.GetValue/TinyWebDB. GotValue. To solve Christian's problem. Taifun has suggested using the pair Notifier.ShowChooseDialog/ Notifier.AfterChoosing.

chrome-extension://oemmndcbldboiebfnladdacbdfmadadm/http://cs.wellesley.edu/~tinkerblocks/CCSCNE14-AI2-events-first-paper.pdf

- Todo esto nos dice que en otros lenguajes cada vez que un bucle hace el recorrido de un elemento, se puede ejecutar y esperar la ejecución de las líneas del bucle, pero en App Inventor se realiza el código interior del bucle y luego se muestra todo el proceso.

___________________________
- Ejemplo.

p191_temporizador_bucle.aia

com.KIO4_TimerX.aix

____________________
- Diseño.

____________________
- Bloques.

___________________________
___________________________
___________________________
___________________________
- Otro ejemplo para estudiar el Timer con el Tick y el firstTick

p191B_temporizador.aia

com.KIO4_TimerX.aix

____________________
- Observa que si ponemos en cierto, la variable Boolean firstTick, disparará el primer evento en el inicio, en cambio si ponemos esa variable en falso, el primer disparo del evento se realizará el segundo tick, con esto conseguimos una cierta pausa hasta el primer evento.

- La variable running será cierta o falsa según esté evolucionando el Temporizador.


 

____________________
- Diseño.

____________________
- Bloques.

___________________________
___________________________
___________________________
___________________________
- Quiniela.

p191C_temporiza_quiniela.aia

 

- En el tutorial 40C_cualquier_componente_quiniela.htm vimos la manera de realizar una quiniela y poner sus signos en Etiquetas mediante "Cualquier componente".

- Vamos a tomar ese ejemplo para ver el funcionamiento del bucle "Por cada número".

- Tenemos un dado con sus 6 caras, lo tiramos.

- Si sale 1, 2 o 3 ponemos el signo "1" en la quiniela.

- Si sale el 4 o el 5 ponemos el signo "X".

- Si sale el 6 ponemos el signo "2".

--------------------------------

- Observamos que si pulsamos el Botón1 van saliendo los signos poco a poco, en cambio si pulsamos el Botón2, no salen con la temporización requerida, se podría poner un Reloj, pero en este caso utilizamos esta extensión.

____________________
- Diseño.

____________________
- Bloques.

___________________________

 

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información