---
title: Eventos
slug: develop/es/eventos
docTags: 
createdAt: 2025-03-11T07:07:17.199Z
---

Los eventos en BrightScript se centran en un bucle de eventos y el objeto *roMessagePort*. La mayoría de los objetos BrightScript pueden publicar en un puerto de mensajes en forma de un objeto de evento: por ejemplo, el objeto *roTimer* publica eventos del tipo *roTimerEvent* cuando se alcanzan los intervalos configurados.

El siguiente script establece el puerto de mensajes de destino usando el método `SetPort()`, espera un evento en forma de un objeto *roGpioButton* y luego procesa el evento.

```text
print "BrightSign Button-LED Test Running"
p =   CreateObject("roMessagePort")
gpio =  CreateObject("roGpioControlPort") 
gpio.SetPort(p)
 
while true
   msg=wait(0, p)
   if type(msg)="roGpioButton" then
       butn = msg.GetInt()
       if butn <=5 then
           gpio.SetOutputState(butn+17,1)
           print "Button Pressed: ";butn
           sleep(500)
           gpio.SetOutputState(butn+17,0)
        end if
    end if
 
   REM ignore buttons pressed while flashing led above
   while p.GetMessage()<>invalid
         end while
end while
```

Tenga en cuenta que las líneas 6-7 pueden reemplazarse usando lo siguiente (y sustituyendo `fin mientras` por `fin para`):

```text
For each msg in p
```

