package com.Plantilla2; // Fíjate que a lo largo del código se repite la palabra Plantilla2. Es el nombre de la clase.
// © Juan Antonio Villalpando
// kio4.com
// Creación de extensiones. Junio 2017.
// Plantilla para comenzar a escribir el código.
// Estas son las importaciones, códigos que son necesarios de añadir a nuestra extensión.
import com.google.appinventor.components.annotations.DesignerComponent;
import com.google.appinventor.components.annotations.DesignerProperty;
import com.google.appinventor.components.annotations.PropertyCategory;
import com.google.appinventor.components.annotations.SimpleEvent;
import com.google.appinventor.components.annotations.SimpleFunction;
import com.google.appinventor.components.annotations.SimpleObject;
import com.google.appinventor.components.annotations.SimpleProperty;
import com.google.appinventor.components.common.ComponentCategory;
import com.google.appinventor.components.common.PropertyTypeConstants;
import com.google.appinventor.components.runtime.util.MediaUtil;
import com.google.appinventor.components.runtime.*;
// En alguno códigos además de las importaciones anteriores se ha de importar otras.
@DesignerComponent(version = Plantilla2.VERSION,
// Es conveniente poner pequeñas discripciones de los distintos bloques:
description = "Este texto aparecera a la izquierda en la parte de Diseno. " + "Juan Antonio Villalpando - KIO4.COM ",
// Esto significa que estamos construyendo una Extension.
category = ComponentCategory.EXTENSION,
// Las Extensiones No son Visible en la Screen. AndroidNonvisibleComponent.
nonVisible = true,
// El icono también puede estar en una dirección web. Consulta la página de trucos.
iconName = "images/icono.png")
@SimpleObject(external = true)
public class Plantilla2 extends AndroidNonvisibleComponent implements Component {
public static final int VERSION = 1;
public static final String DEFAULT_TEXTO = "Hola"; // Valor por defecto que tomará cierta Propiedad de texto
public static final int DEFAULT_NUMERO = 123; // Valor por defecto que tomará cierta Propiedad de número.
private ComponentContainer container;
private String texto = ""; // Valor inicial de la variable texto
private int numero= 0; // Valor inicial de la variable numero
public Plantilla2(ComponentContainer container) {
super(container.$form());
this.container = container;
Texto(DEFAULT_TEXTO); // Valor del Texto por defecto.
Numero(DEFAULT_NUMERO); // Valor del Numero por defecto.
}
// Creación de las Propiedades.
@SimpleProperty(
category = PropertyCategory.BEHAVIOR)
public String Texto() {
return texto;
}
@SimpleProperty(
category = PropertyCategory.BEHAVIOR)
public double Numero() {
return numero;
}
// Establecimiento de las Propiedades.
@DesignerProperty(editorType = PropertyTypeConstants.PROPERTY_TYPE_STRING, defaultValue = Plantilla2.DEFAULT_TEXTO + "")
@SimpleProperty(description = "Ayuda al situar el raton sobre este bloque. ")
public void Texto(String nuevoTexto) {
this.texto = nuevoTexto;
}
@DesignerProperty(editorType = PropertyTypeConstants.PROPERTY_TYPE_INTEGER, defaultValue = Plantilla2.DEFAULT_NUMERO + "")
@SimpleProperty(description = "Ayuda al situar el raton sobre este bloque. ")
public void Numero(int nuevoNumero) {
this.numero = nuevoNumero;
}
////////////////////// FUNCIONES ////////////////////////////////////////////////////////////////////// // Función Entran dos valores (String y entero) y retorna un valor (entero)
@SimpleFunction(description = "Realiza el doble.")
public int Operaciones(String Textodeentrada, int Numerodeentrada) {
int eldoble = 0;
eldoble = Numerodeentrada * 2;
return eldoble;
}
// Función No entran valores y retorna un entero.
@SimpleFunction(description = "Realiza el doble.")
public int Dado() {
int dado = 0;
dado = (int) (6.0 * Math.random()) + 1;
return dado;
}
// A esta funcion le suministramos frecuencia y tiempo y daria un sonido.
// Pero no retorna resultado.
// Es una funcion con VOID
// Mediante el bloque de evento puede devolver informacion.
// NOTA: ESTA FUNCION NO FUNCIONA YA QUE ES NECESARIO IMPORTAR LIBRERIA DE SONIDO.
@SimpleFunction(description = "Daria un sonido requiere datos de entradas.")
public void Sonido(int frecuencia, int tiempo) {
String terminado = "";
// AudioTrack tone = generateTone(frecuencia, tiempo);
// tone.play();
terminado = "Terminado el sonido de f = " + frecuencia + " t = " + tiempo;
BloqueEvento(terminado);
}
// Función No entran valores ni retorna resultado.
// A esta funcion daria un sonido de frecuencia 1000 y tiempo 2000.
// Es una funcion con VOID
// Mediante el bloque de evento puede devolver informacion.
// NOTA: ESTA FUNCION NO FUNCIONA YA QUE ES NECESARIO IMPORTAR LIBRERIA DE SONIDO.
@SimpleFunction(description = "Daria un sonido establecido.")
public void Tono() {
String terminado = "";
// AudioTrack tone = generateTone(1000, 2000);
// tone.play();
terminado = "Terminado el tono de f = 1000 y tiempo = 2000";
BloqueEvento(terminado);
}
// Bloque de Evento.
@SimpleEvent(description = "Bloque del Evento. ")
public void BloqueEvento(String respuesta){
EventDispatcher.dispatchEvent(this, "BloqueEvento", respuesta);
}
}
|