hace 2 años
En el vasto universo de la programación, existen conceptos fundamentales que permiten dar vida e interactividad a nuestras creaciones digitales. Uno de estos pilares esenciales son los eventos. Pero, ¿qué son exactamente los eventos en el contexto del código? Si alguna vez te has preguntado cómo un botón en una página web responde a tu clic, o cómo un videojuego reacciona a las teclas que presionas, la respuesta reside en la magia de los eventos.

- ¿Qué es un Evento en Programación?
- ¿Para qué se Usan los Eventos en Programación?
- Ejemplos de Eventos en Scratch
- El Evento `onmessage` en Javascript (Ejemplo Web)
- En Resumen
- Preguntas Frecuentes (FAQ) sobre Eventos en Programación
- ¿Son los eventos exclusivos de la programación visual como Scratch?
- ¿Qué diferencia hay entre un evento y una función?
- ¿Puedo crear mis propios eventos personalizados?
- ¿Los eventos siempre requieren la interacción del usuario?
- ¿Es el manejo de eventos más eficiente que la programación lineal tradicional?
¿Qué es un Evento en Programación?
En términos sencillos, un evento en programación es un acontecimiento, una ocurrencia que sucede mientras un programa se está ejecutando. Si queremos ser un poco más técnicos, podríamos decir que un evento es un cambio en el estado de un objeto. Este cambio de estado generalmente se produce como resultado de la interacción del usuario con el programa, aunque también puede ser generado por el propio sistema o entorno.
Imagina un interruptor de luz. Tiene dos estados principales: encendido y apagado. Cuando presionas el interruptor, cambias su estado, y este cambio (el evento de presionar el interruptor) provoca una acción: la luz se enciende o se apaga. En programación, los eventos funcionan de manera similar.
Ejemplos de Eventos Comunes
La mayoría de los eventos que encontramos en programación están relacionados con la interacción del usuario. Aquí te presentamos algunos ejemplos:
- Eventos de pantalla táctil: Tocar, deslizar, pellizcar la pantalla de un dispositivo móvil.
- Eventos de teclado: Presionar una tecla, soltar una tecla (por ejemplo, al escribir en un teclado).
- Eventos de ratón: Hacer clic con el botón izquierdo o derecho del ratón, mover el ratón, desplazar la rueda del ratón.
- Eventos de dispositivo: Rotar un dispositivo móvil, agitarlo, inclinarlo.
Sin embargo, no todos los eventos son generados por el usuario. Existen eventos que son iniciados por el propio sistema o el entorno en el que se ejecuta el programa. Algunos ejemplos de estos eventos no generados por el usuario son:
- Carga completa de una página web: Cuando un navegador web termina de cargar todos los elementos de una página, se produce un evento.
- Recepción de datos de un sensor: Un sensor conectado a un dispositivo puede generar un evento cuando detecta un cambio en su entorno (por ejemplo, un sensor de temperatura al detectar un cambio de temperatura).
- Temporizadores (Timers): Un temporizador puede generar un evento después de que transcurra un cierto periodo de tiempo.
¿Para qué se Usan los Eventos en Programación?
La principal utilidad de los eventos en programación es desencadenar comportamientos específicos en nuestros programas. Los eventos nos permiten decirle al programa: "Cuando ocurra este evento, entonces ejecuta esta acción (o conjunto de acciones)". Son la base de la interactividad y la reactividad en las aplicaciones.
Cuando escuchas que un programa es "orientado a eventos" o "dirigido por eventos", significa que su flujo de control principal está determinado por la ocurrencia de eventos. Estos programas permanecen en un estado de espera, atentos a la llegada de eventos. Cuando un evento específico ocurre, el programa reacciona, cambiando su estado y ejecutando el código necesario para manejar ese evento en particular.
Analogía para Entender los Eventos
Imagina la siguiente situación: un día cualquiera, un niño está aburrido en casa. Su estado inicial es de aburrimiento. De repente, uno de sus padres entra en la habitación y le dice: "¡Mañana vamos a ir al parque de diversiones!". Este anuncio es el evento. Inmediatamente, el estado del niño cambia drásticamente. Su aburrimiento se transforma en emoción, empieza a planificar el día siguiente, quizás prepara su mochila, etc. El evento (el anuncio del viaje al parque) ha desencadenado un cambio de comportamiento en el niño.
En programación, los eventos funcionan de manera muy similar. Definimos qué eventos nos interesan y qué acciones deben llevarse a cabo cuando esos eventos sucedan.
Ejemplos de Eventos en Scratch
Scratch, el popular lenguaje de programación visual, utiliza eventos de manera muy intuitiva para enseñar los conceptos básicos de la programación. Dentro de la categoría "Eventos" en la pestaña "Programas" de Scratch, encontramos bloques que representan diferentes tipos de eventos.
Eventos Comunes en Scratch
- "Al hacer clic en la bandera verde": Este evento se activa cuando el usuario hace clic en el icono de la bandera verde que se encuentra encima del escenario en Scratch. Es el evento de inicio más común en los proyectos de Scratch, y se utiliza para indicar cuándo debe comenzar la ejecución del programa.
- "Al presionar tecla [espacio]": Este bloque permite definir qué acciones se ejecutarán cuando se presione una tecla específica del teclado. Por defecto, está configurado para la tecla de espacio, pero se puede cambiar a cualquier otra tecla o combinación de teclas. Es muy útil para controlar el movimiento de los personajes (sprites) utilizando las teclas de flecha, por ejemplo.
- "Al hacer clic en este objeto": Este evento se asocia a un objeto (sprite) específico en Scratch. Cuando el usuario hace clic con el ratón sobre ese objeto en particular, se desencadenan las acciones definidas para este evento. Permite crear interacciones directas con los objetos en el escenario.
- "Cuando el fondo cambie a [fondo1]": Este evento se activa cuando el fondo del escenario de Scratch cambia a un fondo específico (por ejemplo, "fondo1"). Se utiliza en combinación con el bloque "cambiar fondo a [fondo]" (que se encuentra en la categoría "Apariencia"). Permite sincronizar acciones con los cambios de fondo en el proyecto.
- "Cuando [volumen del sonido] > [50]": Este tipo de evento se basa en la detección de condiciones. En este ejemplo, se activa cuando el volumen del sonido (detectado por el micrófono, por ejemplo) supera un valor determinado (en este caso, 50). Existen otras opciones para este tipo de evento, como "Cuando [temporizador] > [10]" (cuando el temporizador supera 10 segundos).
- "Al recibir [mensaje1]": Este evento se utiliza en conjunto con los bloques de mensajes ("enviar [mensaje1]" y "enviar [mensaje1] y esperar"). Cuando un objeto "recibe" un mensaje específico (por ejemplo, "mensaje1") enviado por otro objeto o por el propio programa, se activan las acciones asociadas a este evento. Los mensajes son una forma de comunicación entre diferentes partes del programa.
El Evento `onmessage` en Javascript (Ejemplo Web)
En el contexto del desarrollo web con Javascript, el evento onmessage es un ejemplo importante de evento no generado directamente por la interacción del usuario, sino por el propio navegador.

Este evento se utiliza en la tecnología Server-Sent Events (SSE), que permite recibir actualizaciones desde un servidor web en tiempo real. Imagina que estás construyendo una aplicación web que muestra información que cambia constantemente, como las cotizaciones de bolsa o las actualizaciones de un marcador deportivo.
Con SSE y el evento onmessage, el servidor puede "empujar" actualizaciones al navegador web sin que este tenga que estar constantemente preguntando por nuevos datos. Cada vez que el servidor envía una nueva actualización, se dispara el evento onmessage en el navegador, y podemos utilizar Javascript para procesar esa información y mostrarla en la página web.
Ejemplo de Código Javascript con `onmessage`
El siguiente código Javascript muestra un ejemplo básico de cómo utilizar el evento onmessage para recibir y mostrar datos enviados por un servidor SSE:
var fuente = new EventSource("demo_sse.php"); fuente.onmessage = function(evento) { document.getElementById("miDiv").innerHTML += evento.data + "<br>"; }; En este ejemplo:
- Se crea un nuevo objeto
EventSource, especificando la URL del script del servidor que enviará las actualizaciones (en este caso, "demo_sse.php"). - Se define una función que se ejecutará cuando ocurra el evento
onmessageen el objetofuente. Esta función recibe un objetoeventocomo argumento. - Dentro de la función, se accede a la propiedad
datadel objetoevento. Esta propiedad contiene los datos enviados por el servidor. - Se utiliza
document.getElementById("miDiv").innerHTML += evento.data + "<br>";para agregar los datos recibidos al contenido HTML de un elemento<div>con el ID "miDiv" en la página web, mostrando cada actualización en una nueva línea.
En Resumen
Los eventos son un concepto fundamental en programación que permite crear programas interactivos y reactivos. Son la base de la comunicación entre el usuario, el sistema y el programa en sí. Desde los clics del ratón hasta la recepción de datos del servidor, los eventos nos permiten definir cómo deben responder nuestros programas a diferentes situaciones y acciones.
Explora la categoría "Eventos" en Scratch, experimenta con el evento onmessage en Javascript y empieza a incorporar la lógica basada en eventos en tus propios proyectos de programación. ¡Verás cómo tus creaciones se vuelven mucho más dinámicas e interesantes!
Preguntas Frecuentes (FAQ) sobre Eventos en Programación
¿Son los eventos exclusivos de la programación visual como Scratch?
No, los eventos son un concepto fundamental en la programación en general, no solo en lenguajes visuales como Scratch. Aunque Scratch utiliza bloques visuales para representar eventos de manera intuitiva, la idea de los eventos y el manejo de eventos está presente en la mayoría de los lenguajes de programación, tanto visuales como textuales (como Javascript, Python, Java, C#, etc.). La forma de implementar y gestionar eventos puede variar entre lenguajes, pero el concepto central es el mismo: reaccionar a acontecimientos.
¿Qué diferencia hay entre un evento y una función?
Un evento es una ocurrencia, algo que sucede (como un clic de ratón o la carga de una página). Una función es un bloque de código que se ejecuta para realizar una tarea específica. Los eventos y las funciones están estrechamente relacionados en la programación orientada a eventos. Normalmente, se define una función de manejo de eventos (también llamada "manejador de eventos" o "listener") que se ejecuta en respuesta a un evento específico. Es decir, el evento "dispara" o "activa" la función de manejo de eventos.
¿Puedo crear mis propios eventos personalizados?
Sí, en muchos lenguajes de programación, tienes la capacidad de definir y generar tus propios eventos personalizados. Esto es especialmente útil en programas más complejos donde necesitas una comunicación más sofisticada entre diferentes partes del código. La forma de crear eventos personalizados varía según el lenguaje, pero la idea general es poder definir un "tipo" de evento y "lanzar" ese evento desde una parte del programa para que otras partes puedan reaccionar a él.
¿Los eventos siempre requieren la interacción del usuario?
No, como hemos visto, muchos eventos son generados por la interacción del usuario (clics, teclado, etc.), pero también existen eventos del sistema o del entorno que no requieren la intervención del usuario. Ejemplos de estos últimos son la carga completa de una página web, la recepción de datos de un sensor, temporizadores, errores del sistema, etc. Incluso puedes crear eventos personalizados que se disparen en función de la lógica interna de tu programa, sin necesidad de interacción del usuario.
¿Es el manejo de eventos más eficiente que la programación lineal tradicional?
Depende del tipo de programa. Para programas que son inherentemente interactivos o reactivos (como interfaces gráficas de usuario, juegos, aplicaciones web en tiempo real), el manejo de eventos es fundamental y muy eficiente. Permite que el programa sea reactivo a las acciones del usuario y a los cambios en el entorno de manera natural. En programas más lineales o batch (que ejecutan una serie de tareas secuenciales sin mucha interacción), el manejo de eventos puede ser menos relevante. Sin embargo, incluso en estos casos, los eventos pueden ser útiles para manejar errores, temporizadores o la finalización de ciertas tareas.
