MS Small Basic: eventos e interactividad (código)


a1 

 

 

Eventos y controles para agregar interactividad a sus programas de Small Basic.
 

Puede crear un programa interactivo en Small Basic definiendo eventos que desencadenan una acción en respuesta a entradas del usuario. 

  

Los eventos del teclado producen una acción cuando se presiona una determinada tecla. Existen dos eventos de teclado que forman parte del objeto GraphicsWindow: KeyDown (tecla hacia abajo) y KeyUp (tecla hacia arriba). 
 

Al igual que los eventos de teclado, puede crear programas en Small Basic que trabajen con eventos basados en clics del mouse. Los eventos del mouse generan acciones en su programa con un clic del mouse.  
 

MouseDown desencadena un evento cuando se hace clic con el botón del mouse. 
  

MouseUp desencadena un evento cuando se suelta el botón del mouse. 
 

MouseMove desencadena un evento cuando se mueve el mouse en la ventana de gráficos.
 
 

  1. GraphicsWindow.Hide()
  2. ancho = 620
  3. alto = 450
  4. GraphicsWindow.CanResize = “False”
  5. GraphicsWindow.Width = ancho
  6. GraphicsWindow.Height = alto
  7. GraphicsWindow.Top = (Desktop.Height-alto) / 2
  8. GraphicsWindow.Left = (Desktop.Width-ancho) / 2
  9. GraphicsWindow.Show()
  10. GraphicsWindow.Title = “Eventos e interactividad”
  11. InterfazUsuario()
  12. Controls.ButtonClicked = AcciónMouse
  13. Sub InterfazUsuario 
  14.   GraphicsWindow.DrawRectangle(10, 10, 600, 320)
  15.   GraphicsWindow.DrawRectangle(10, 340, 200, 100)
  16.   GraphicsWindow.DrawRectangle(10, 340, 600, 100)
  17.   GraphicsWindow.DrawRectangle(370, 340, 150, 100)  
  18.   Triángulo = Controls.AddButton(“Triángulo”, 40, 345)
  19.   Controls.SetSize(Triángulo, 120, 30)
  20.   Rectángulo = Controls.AddButton(“Rectángulo”,40,375)
  21.   Controls.SetSize(Rectángulo, 120, 30)
  22.   Círculo = Controls.AddButton(“Círculo”, 40, 405)
  23.   Controls.SetSize(Círculo, 120, 30)
  24.   Rotar = Controls.AddButton(“Rotar”, 230, 360)
  25.   Controls.SetSize(Rotar, 60, 60)
  26.   Zoom = Controls.AddButton(“Zoom”, 290, 360)
  27.   Controls.SetSize(Zoom, 60, 60)
  28.   FreeHand = Controls.AddButton(“Dibujar”, 390, 360)
  29.   Controls.SetSize(FreeHand, 60, 60)  
  30.   Borrar = Controls.AddButton(“Borrar”, 450, 360)
  31.   Controls.SetSize(Borrar, 60, 60)
  32.   Salir = Controls.AddButton(“Salir”, 530, 360)
  33.   Controls.SetSize(Salir, 60, 60)    
  34. EndSub
  35. Sub AcciónMouse
  36.   x = GraphicsWindow.MouseX
  37.   y = GraphicsWindow.MouseY  
  38.   GraphicsWindow.PenWidth = 1 
  39.   If x > 40 And x < 160 Then    
  40.     GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor() 
  41.     If y > 345 And y < 375 Then       
  42.       dibujar = 0
  43.       j = 0
  44.       z = 1
  45.       tri = Shapes.AddTriangle(20, 20, 100, 100, 150, 20)
  46.       Shapes.Move(tri, 80, 100)
  47.     EndIf  
  48.     If y > 375 And y < 405 Then
  49.       dibujar = 0     
  50.       j = 0 
  51.       z = 2  
  52.       rect = Shapes.AddRectangle(100, 100)
  53.       Shapes.Move(rect, 250, 150)
  54.     EndIf    
  55.     If y > 405 And y < 435 Then
  56.       dibujar = 0
  57.       j = 0      
  58.       z = 3      
  59.       circ = Shapes.AddEllipse(100, 100)
  60.       Shapes.Move(circ, 400, 150)
  61.     EndIf      
  62.   EndIf    
  63.   If y > 360 And y < 420 Then       
  64.     If x > 230 And x < 290 Then          
  65.       dibujar = 0   
  66.       If z = 1 Then        
  67.         Shapes.Rotate(tri, 30 + m)
  68.       Else
  69.         If z = 2 Then     
  70.           Shapes.Rotate(rect,30 + m)  
  71.         Else
  72.           If z = 3 Then     
  73.             Shapes.Rotate(circ, 30 + m)    
  74.           Endif           
  75.         Endif 
  76.       Endif
  77.       m = m + 30             
  78.     EndIf      
  79.     If x > 290 And x < 390 Then
  80.       dibujar = 0         
  81.       i = 0.1 + j
  82.       If i < 0.4 Then  
  83.         If z = 1 Then        
  84.           Shapes.Zoom(tri, 1 + i, 1 + i)
  85.         Else
  86.           If z = 2 Then     
  87.             Shapes.Zoom(rect, 1 + i, 1 + i)
  88.           Else
  89.             If z = 3 Then     
  90.               Shapes.Zoom(circ, 1 + i, 1 + i)      
  91.             EndIf    
  92.           EndIf 
  93.         EndIf     
  94.         j = j + 0.1
  95.       EndIf
  96.     EndIf         
  97.     If x > 390 And x < 450 Then
  98.       dibujar = 1
  99.       Paint()
  100.     EndIf     
  101.     If x > 450 And x < 510 Then
  102.       dibujar = 0
  103.       j = 0
  104.       GraphicsWindow.Clear()   
  105.       GraphicsWindow.BrushColor = “Blue”
  106.       InterfazUsuario()
  107.       dibujar = 0
  108.     EndIf     
  109.     If x > 530 And x < 590 Then
  110.       dibujar = 0
  111.       Program.End()
  112.     EndIf     
  113.   EndIf     
  114. EndSub
  115. Sub Paint
  116.   If dibujar = 1 Then    
  117.     GraphicsWindow.MouseMove = ArrastrarMouse         
  118.   Else
  119.     If Mouse.IsLeftButtonDown Then    
  120.       AcciónMouse()   
  121.     EndIf
  122.   EndIf    
  123. EndSub
  124.  
  125. Sub ArrastrarMouse
  126.   If dibujar = 1 then 
  127.     x = GraphicsWindow.MouseX
  128.     y = GraphicsWindow.MouseY   
  129.     If x > 10 And x < 600 And y > 10 And y < 320 Then   
  130.       If Mouse.IsLeftButtonDown Then
  131.         GraphicsWindow.DrawLine(OrgX, OrgY, x, y)
  132.       EndIf    
  133.     EndIf 
  134.     OrgX = x
  135.     OrgY = y
  136.   EndIf
  137. EndSub
 
 
 
 

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s