Volver a la portadaInformática · 10.° grado de Preuniversitario · Cambiar asignatura
Empezar gratis
10° grado · Informática
Introducción a la programación orientada a objetos y conducida por eventos · Programación orientada a objetos y dirigida por eventos con LiveCode

Eventos, objetos y propiedades en LiveCode

Daniela abre la aplicación de su Joven Club y pulsa un botón: aparece un mensaje. Lo pulsa otra vez y el mensaje desaparece. Nadie le dio órdenes paso a paso; el programa simplemente esperaba a que ella hiciera algo. ¿Qué es lo que «espera» el programa y cómo se le dice qué hacer cuando ocurre? Lo vas a descubrir en este apartado.

Objetos: las piezas del programa

En LiveCode no se escribe un programa como una lista larga de instrucciones. Se dibuja la interfaz con piezas y a cada pieza se le da un comportamiento. Esas piezas se llaman objetos.

Los objetos se organizan en niveles, como las muñecas rusas:

Una pila contiene tarjetas, y cada tarjeta contiene botones y campos Pila (stack): la aplicación completa Tarjeta (card): una pantalla de la pila Campo "mensaje" Botón "Aceptar" Campo "nombre"
  • Pila (stack): el archivo completo, la aplicación.

  • Tarjeta (card): una pantalla de la pila. Una pila puede tener varias, como las hojas de un cuaderno.

  • Botón (button): se pulsa para que ocurra algo.

  • Campo (field): una caja de texto; sirve para mostrar o escribir datos.

Cada objeto se nombra en el script con su tipo y su nombre entre comillas: button "Aceptar", field "nombre".

Practica★☆☆Sin empezar
En un programa de LiveCode se usan botones, campos de texto, tarjetas (cards) y una pila (stack). Explica con tus palabras qué es un objeto en este entorno. Menciona dos…

En un programa de LiveCode se usan botones, campos de texto, tarjetas (cards) y una pila (stack).

Explica con tus palabras qué es un objeto en este entorno. Menciona dos objetos que se puedan colocar en una tarjeta y para qué sirve cada uno.

Resolver

Eventos: lo que hace el usuario

Un programa dirigido por eventos no avanza solo: espera a que ocurra algo y entonces reacciona.

Evento Cuándo ocurre
mouseDown Se presiona el botón del ratón sobre el objeto
mouseUp Se suelta el botón del ratón sobre el objeto (el «clic» completo)
openCard Se abre una tarjeta, es decir, aparece esa pantalla
keyDown Se pulsa una tecla del teclado

Un clic tiene dos momentos: primero mouseDown (bajas el dedo) y después mouseUp (lo sueltas). Por eso casi todos los botones usan mouseUp: la acción ocurre cuando el clic se completa.

Practica★☆☆Sin empezar
En la programación dirigida por eventos, los objetos reaccionan cuando ocurre algo. Define qué es un evento y explica qué hace cada uno de estos: mouseUp mouseDown…

En la programación dirigida por eventos, los objetos reaccionan cuando ocurre algo.

Define qué es un evento y explica qué hace cada uno de estos:

  • mouseUp

  • mouseDown

  • openCard

  • keyDown

Resolver

Propiedades: cómo es cada objeto

Cada objeto tiene propiedades: características que describen cómo es y que se pueden consultar o cambiar. Algunas muy usadas:

  • visible: si el objeto se ve (true) o está oculto (false).

  • width: su ancho en píxeles.

  • backgroundColor: el color de fondo.

Se cambian con la instrucción:

set the propiedad of objeto to valor

Por ejemplo: set the width of button "Aceptar" to 150.

Ahora puedes separar tres ideas que suelen mezclarse:

Concepto Pregunta que responde Ejemplos
Objeto ¿Sobre qué actúo? button "Aceptar", field "nombre"
Evento ¿Cuándo ocurre? mouseUp, openCard
Propiedad ¿Qué característica cambio? visible, width, backgroundColor
Practica★☆☆Sin empezar
Clasifica cada término como objeto, evento o propiedad en LiveCode: button "Aceptar" mouseUp backgroundColor field "nombre" visible width

Clasifica cada término como objeto, evento o propiedad en LiveCode:

  • button "Aceptar"

  • mouseUp

  • backgroundColor

  • field "nombre"

  • visible

  • width

Resolver

Leer y escribir un script

Un script se escribe dentro de un objeto, y siempre tiene esta forma:

on evento

  instrucciones

end evento

Se lee así: «cuando ocurra este evento en este objeto, haz estas instrucciones».

Ahora te toca escribir uno.

Practica★★☆Sin empezar
Analiza este script, escrito en un botón: Indica el objeto que contiene el script, el evento que lo activa, el objeto afectado, la propiedad que se modifica y el valor…

Analiza este script, escrito en un botón:

on mouseUp

  set the visible of field "info" to false

end mouseUp

Indica el objeto que contiene el script, el evento que lo activa, el objeto afectado, la propiedad que se modifica y el valor que se le asigna. Explica qué verá el usuario al hacer clic.

Resolver
Practica★★☆Sin empezar
Escribe un script para un botón llamado «Cambiar». Cuando el usuario suelte el botón del ratón sobre él, el campo «Mensaje» debe cambiar su color de fondo a rojo y su…

Escribe un script para un botón llamado «Cambiar». Cuando el usuario suelte el botón del ratón sobre él, el campo «Mensaje» debe cambiar su color de fondo a rojo y su texto a «Listo».

Indica qué evento, qué objeto y qué propiedades intervienen.

Resolver

Propiedades personalizadas

Las propiedades como width o visible ya vienen con LiveCode: son predefinidas. Pero a veces necesitas guardar un dato que LiveCode no conoce: los puntos de un juego, el precio de un producto, el número de intentos.

Para eso existen las propiedades personalizadas: las crea el usuario, con el nombre que quiera, y se guardan dentro de un objeto. Se usan con la misma instrucción:

set the cPuntos of button "Jugar" to 0

Esto crea (o cambia) la propiedad cPuntos del botón «Jugar» y le da el valor 0. Se lee con the cPuntos of button "Jugar".

Predefinida Personalizada
Quién la define LiveCode El programador
Ejemplos width, visible cPuntos, cPrecio, cStock
Qué guarda Aspecto o comportamiento del objeto Un dato propio de tu programa
Practica★★☆Sin empezar
LiveCode permite definir propiedades personalizadas, es decir, propiedades creadas por el usuario. Observa esta línea: Explica qué hace la instrucción y qué diferencia…

LiveCode permite definir propiedades personalizadas, es decir, propiedades creadas por el usuario. Observa esta línea:

set the cPuntos of button "Jugar" to 0

Explica qué hace la instrucción y qué diferencia hay entre una propiedad personalizada como cPuntos y una propiedad predefinida como width. Menciona una situación en la que sería útil guardar un dato así en un objeto.

Resolver
Practica★★★Sin empezar
Lázaro programa un juego de preguntas. Tiene un botón «Correcta» con este script: Un segundo botón, «Reiniciar», ejecuta set the cPuntos of this card to 0. La propiedad…

Lázaro programa un juego de preguntas. Tiene un botón «Correcta» con este script:

on mouseUp

  set the cPuntos of this card to (the cPuntos of this card) + 10

  put the cPuntos of this card into field "marcador"

end mouseUp

Un segundo botón, «Reiniciar», ejecuta set the cPuntos of this card to 0. La propiedad parte de 0.

  1. Indica cuál es la propiedad personalizada y a qué objeto pertenece.

  2. Da el valor de cPuntos y lo que muestra el campo después de 3 clics en «Correcta».

  3. Di qué ocurre si luego se pulsa «Reiniciar» y qué muestra el campo en ese momento. Justifica tu respuesta.

Resolver

Diseñar una interfaz completa

Para diseñar una aplicación sigue este orden: objetos → eventos → propiedades.

Guardar precio y stock como propiedades personalizadas tiene sentido porque son datos del producto que varios scripts necesitan leer y cambiar, y no deben perderse ni depender de lo que muestre un campo.

Practica★★★Sin empezar
Se quiere una aplicación para controlar el inventario de una pequeña tienda. Debe mostrar el nombre de un producto, las unidades disponibles y permitir registrar una…

Se quiere una aplicación para controlar el inventario de una pequeña tienda. Debe mostrar el nombre de un producto, las unidades disponibles y permitir registrar una venta con un botón.

Diseña la interfaz indicando:

  • los objetos que usarías,

  • al menos dos eventos que programarías,

  • dos propiedades predefinidas que modificarías,

  • dos propiedades personalizadas que definirías, por ejemplo para el precio y el stock.

Justifica por qué conviene guardar esos datos como propiedades personalizadas de los objetos.

Resolver

Resumen

  • Un objeto es una pieza del programa: pila, tarjeta, botón, campo. Se nombra como button "Aceptar".

  • Un evento es algo que ocurre y al que el objeto reacciona: mouseDown, mouseUp, openCard, keyDown.

  • Una propiedad es una característica del objeto: visible, width, backgroundColor. Se cambia con set the propiedad of objeto to valor.

  • Un script tiene la forma on evento … end evento y se escribe en el objeto que recibe el evento.

  • Las propiedades personalizadas las crea el programador (cPuntos, cStock) para guardar datos propios en un objeto.

Ver todos los ejercicios de este apartado