Microsoft® Small Basic
Eventos e Interactividad
Tiempo estimado para completar esta lección: 1 hora
Eventos e Interactividad
En esta lección, usted aprenderá cómo:
Utilizar eventos de teclado en tu programa.
Utilizar eventos de ratón en tu programa.
Introducción a Eventos
Esta lección presenta a los eventos con los que puede agregar
interactividad a tus programas de Small Basic.
En otras palabras, puedes crear un programa
interactivo en Small Basic definiendo eventos
que desencadenan una acción en respuesta a
las entradas del usuario.
Aquí interactividad incluye eventos que desencadenan una
acción; por ejemplo, cuando el usuario hace clic en un botón
del mouse o presiona una tecla en el teclado.
Eventos del Teclado
Los eventos de teclado producen una acción cuando el usuario pulsa o suelta
una cierta tecla. Hay dos eventos del teclado — eventos KeyDown y KeyUp.
Estos eventos se definen como operaciones del objeto GraphicsWindow.
KeyDown provoca un evento cuando
el usuario pulsa una tecla en el
teclado.
KeyUp provoca un evento cuando el
usuario suelta una tecla del teclado.
Eventos del Teclado
Vamos demostrar eventos del teclado en Small Basic con un sencillo
programa que gira una forma en la ventana gráfica cuando presionas
una tecla en el teclado.
En este ejemplo, se presiona RETURN
para girar una forma rectángulo en la
ventana gráfica. Cuando se suelta la tecla,
el rectángulo vuelve a su estado original.
Eventos del Mouse
Como hiciste con los eventos del teclado, se pueden
crear programas en Small Basic que trabajan con los
eventos que se basan en clics del ratón. Los eventos
del mouse generan acciones en tu programa cuando
el usuario hace clic en un botón del ratón.
MouseDown provoca un evento cuando
el usuario hace clic en un botón del ratón.
MouseUp provoca un evento cuando el
usuario suelta un botón del ratón.
MouseMove provoca un evento cuando
el usuario mueve el puntero del ratón en
la ventana gráfica.
Vamos a ver cómo
podemos utilizar estos
eventos en un programa.
Vamos a resumir…
¡Felicidades! Ahora ya sabes cómo:
Utilizar eventos de teclado en tu programa.
Utilizar eventos de ratón en tu programa.
Demuestra lo que sabes
Escribir un programa para mostrar eventos del
mouse realizando los siguientes pasos:
 Crear una interfaz de usuario mediante el
objeto GraphicsWindow.
 Insertar botones para dibujar formas
mediante el objeto Controls (ver sección
objeto Controls).
 Utilice los eventos MouseDown y
MouseMove para dibujar formas en el
área de dibujo.
 Utilizar declaraciones If y Else para definir
las acciones que se producen cuando el
usuario hace clic con el mouse.

Eventos e interactividad - Small Basic

  • 1.
    Microsoft® Small Basic Eventose Interactividad Tiempo estimado para completar esta lección: 1 hora
  • 2.
    Eventos e Interactividad Enesta lección, usted aprenderá cómo: Utilizar eventos de teclado en tu programa. Utilizar eventos de ratón en tu programa.
  • 3.
    Introducción a Eventos Estalección presenta a los eventos con los que puede agregar interactividad a tus programas de Small Basic. En otras palabras, puedes crear un programa interactivo en Small Basic definiendo eventos que desencadenan una acción en respuesta a las entradas del usuario. Aquí interactividad incluye eventos que desencadenan una acción; por ejemplo, cuando el usuario hace clic en un botón del mouse o presiona una tecla en el teclado.
  • 4.
    Eventos del Teclado Loseventos de teclado producen una acción cuando el usuario pulsa o suelta una cierta tecla. Hay dos eventos del teclado — eventos KeyDown y KeyUp. Estos eventos se definen como operaciones del objeto GraphicsWindow. KeyDown provoca un evento cuando el usuario pulsa una tecla en el teclado. KeyUp provoca un evento cuando el usuario suelta una tecla del teclado.
  • 5.
    Eventos del Teclado Vamosdemostrar eventos del teclado en Small Basic con un sencillo programa que gira una forma en la ventana gráfica cuando presionas una tecla en el teclado. En este ejemplo, se presiona RETURN para girar una forma rectángulo en la ventana gráfica. Cuando se suelta la tecla, el rectángulo vuelve a su estado original.
  • 6.
    Eventos del Mouse Comohiciste con los eventos del teclado, se pueden crear programas en Small Basic que trabajan con los eventos que se basan en clics del ratón. Los eventos del mouse generan acciones en tu programa cuando el usuario hace clic en un botón del ratón. MouseDown provoca un evento cuando el usuario hace clic en un botón del ratón. MouseUp provoca un evento cuando el usuario suelta un botón del ratón. MouseMove provoca un evento cuando el usuario mueve el puntero del ratón en la ventana gráfica. Vamos a ver cómo podemos utilizar estos eventos en un programa.
  • 7.
    Vamos a resumir… ¡Felicidades!Ahora ya sabes cómo: Utilizar eventos de teclado en tu programa. Utilizar eventos de ratón en tu programa.
  • 8.
    Demuestra lo quesabes Escribir un programa para mostrar eventos del mouse realizando los siguientes pasos:  Crear una interfaz de usuario mediante el objeto GraphicsWindow.  Insertar botones para dibujar formas mediante el objeto Controls (ver sección objeto Controls).  Utilice los eventos MouseDown y MouseMove para dibujar formas en el área de dibujo.  Utilizar declaraciones If y Else para definir las acciones que se producen cuando el usuario hace clic con el mouse.

Notas del editor

  • #5 Code: Sub keyup If GraphicsWindow.LastKey = return then Shapes.Rotate(shape1, 0) EndIf EndSub Sub keydown If GraphicsWindow.LastKey = return then Shapes.Rotate(shape1, 90) EndIf EndSub
  • #6 In the editor window, you add the rectangle by using the AddRectangle operation of the Shapes object. You set the location of the rectangle by using the Move operation. You identify the key with which the rectangle can be rotated. You declare the key and assign it a suitable variable name. You use the KeyDown event of the GraphicsWindow object and declare a subroutine to rotate the shape when the user presses the key. Similarly, you use the KeyUp event and declare a subroutine to rotate the shape when the user releases the key. When you click Run on the toolbar, your program runs. A graphics window appears with a rectangle in the center. When you press RETURN, the rectangle rotates. When you release the Return key, the rectangle rotates back to its original position. Code: GraphicsWindow.Height = 300 GraphicsWindow.Width = 300 GraphicsWindow.Title = "Graphics Window" shape1 = Shapes.AddRectangle(100, 50) Shapes.Move(shape1, 100, 125) return = "Return" GraphicsWindow.KeyDown = keydown GraphicsWindow.KeyUp = keyup Sub keydown If GraphicsWindow.LastKey = return then Shapes.Rotate(shape1, 90) EndIf EndSub Sub keyup If GraphicsWindow.LastKey = return then Shapes.Rotate(shape1, 0) EndIf EndSub
  • #7 You must declare the mouse events in your code. Small Basic has three types of mouse events: MouseDown, MouseUp, and MouseMove. You must also assign an accompanying subroutine for your event. When the mouse is clicked, released, or moved, the subroutine will perform the action that is defined within it. You can use mouse events on controls and shapes. Code: GraphicsWindow.MouseDown = MouseClick GraphicsWindow.MouseMove = MouseDrag GraphicsWindow.MouseUp = MouseUp Sub MouseClick OrgX = GraphicsWindow.MouseX OrgY = GraphicsWindow.MouseY EndSub Sub MouseDrag x = GraphicsWindow.MouseX y = GraphicsWindow.MouseY If (Mouse.IsLeftButtonDown) then GraphicsWindow.DrawLine(OrgX, OrgY, x, y) Endif EndSub Sub MouseUp GraphicsWindow.PenColor=GraphicsWindow.GetRandomColor() GraphicsWindow.PenWidth=Math.GetRandomNumber(5) EndSub
  • #9  Solution: GraphicsWindow.Hide() w = 620 h = 450 GraphicsWindow.CanResize = "False" GraphicsWindow.Width = w GraphicsWindow.Height = h GraphicsWindow.Top = (Desktop.Height-h) / 2 GraphicsWindow.Left = (Desktop.Width-w) / 2 GraphicsWindow.Show() GraphicsWindow.Title = "Events and interactivity" GUI() Controls.ButtonClicked = MouseAction Sub GUI GraphicsWindow.DrawRectangle(10, 10, 600, 320) GraphicsWindow.DrawRectangle(10, 340, 200, 100) GraphicsWindow.DrawRectangle(10, 340, 600, 100) GraphicsWindow.DrawRectangle(370, 340, 150, 100) Triangle = Controls.AddButton("Triangle", 40, 345) Controls.SetSize(Triangle, 120, 30) Rectangle = Controls.AddButton("Rectangle",40,375) Controls.SetSize(Rectangle, 120, 30) Circle = Controls.AddButton("Circle", 40, 405) Controls.SetSize(Circle, 120, 30) Rotate = Controls.AddButton("Rotate", 230, 360) Controls.SetSize(Rotate, 60, 60) Zoom = Controls.AddButton("Zoom", 290, 360) Controls.SetSize(Zoom, 60, 60) FreeHand = Controls.AddButton("Draw", 390, 360) Controls.SetSize(FreeHand, 60, 60) Clear = Controls.AddButton("Clear", 450, 360) Controls.SetSize(Clear, 60, 60) Exit = Controls.AddButton("Exit", 530, 360) Controls.SetSize(Exit, 60, 60) EndSub Sub MouseAction x = GraphicsWindow.MouseX y = GraphicsWindow.MouseY GraphicsWindow.PenWidth = 1 If x > 40 And x < 160 Then GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor() If y > 345 And y < 375 Then draw = 0 j = 0 z = 1 tri = Shapes.AddTriangle(20, 20, 100, 100, 150, 20) Shapes.Move(tri, 80, 100) EndIf If y > 375 And y < 405 Then draw = 0 j = 0 z = 2 rect = Shapes.AddRectangle(100, 100) Shapes.Move(rect, 250, 150) EndIf If y > 405 And y < 435 Then draw = 0 j = 0 z = 3 circ = Shapes.AddEllipse(100, 100) Shapes.Move(circ, 400, 150) EndIf EndIf If y > 360 And y < 420 Then If x > 230 And x < 290 Then draw = 0 If z = 1 Then Shapes.Rotate(tri, 30 + m) Else If z = 2 Then Shapes.Rotate(rect,30 + m) Else If z = 3 Then Shapes.Rotate(circ, 30 + m) Endif Endif Endif m = m + 30 EndIf If x > 290 And x < 390 Then draw = 0 i = 0.1 + j If i < 0.4 Then If z = 1 Then Shapes.Zoom(tri, 1 + i, 1 + i) Else If z = 2 Then Shapes.Zoom(rect, 1 + i, 1 + i) Else If z = 3 Then Shapes.Zoom(circ, 1 + i, 1 + i) EndIf EndIf EndIf j = j + 0.1 EndIf EndIf If x > 390 And x < 450 Then draw = 1 Paint() EndIf If x > 450 And x < 510 Then draw = 0 j = 0 GraphicsWindow.Clear() GraphicsWindow.BrushColor = "Blue" GUI() draw = 0 EndIf If x > 530 And x < 590 Then draw = 0 Program.End() EndIf EndIf EndSub Sub Paint If draw = 1 Then GraphicsWindow.MouseMove = MouseDrag Else If Mouse.IsLeftButtonDown Then MouseAction() EndIf EndIf EndSub Sub MouseDrag If draw = 1 then x = GraphicsWindow.MouseX y = GraphicsWindow.MouseY If x > 10 And x < 600 And y > 10 And y < 320 Then If Mouse.IsLeftButtonDown Then GraphicsWindow.DrawLine(OrgX, OrgY, x, y) EndIf EndIf OrgX = x OrgY = y EndIf EndSub