Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Colin Holgate
BIRMINGHAM - MUMBAI
Guía LiveCode Mobile Development principiantes
Todos los derechos reservados. Ninguna parte de este libro puede ser reproducida,
almacenada en un sistema de recuperación, o transmitida en cualquier forma o por
cualquier medio, sin el permiso previo y por escrito del editor, excepto en el caso de
breves citas incluidas en artículos críticos o revisiones.
Packt Publishing ha tratado de proporcionar información sobre todas las marcas de las compañías
y productos mencionados en este libro por el uso adecuado de los capitales. Sin embargo, Packt
Publishing no puede garantizar la exactitud de esta información.
ISBN 978-1-84969-248-9
www.packtpub.com
Durante los últimos 12 años ha trabajado para Colin basura divertida, una ciudad de Nueva
York basado empresa Diseño de Medios Interactivos. Además de utilizar Adobe Director y
Adobe Flash para Internet
y las aplicaciones de puestos, se ha utilizado para crear LiveCode de la casa y las
herramientas de cliente de producción. En la Conferencia RunRevLive en 2011, Colin
participó y ganó un concurso para crear una aplicación móvil hecho con LiveCode.
Acerca de los
revisores
Björnke von Gierke comenzó scripting con HyperCard cuando era un adolescente.
Comenzó a usar LiveCode como un hobby y porque quería crear un juego de ordenador, por
lo que nunca hizo ningún tipo de codificación. Pronto su enfoque cambió a varias iniciativas
comunitarias y libres de add-ons para desarrolladores LiveCode, así como pequeñas
aplicaciones de bases de datos para la organización local sin fines de lucro
organizaciones. Por ahora ha funcionado y, sobre todo, juega con LiveCode por más de 10
años.
LiveCode es a la vez, un lenguaje de programación que puede ser fácilmente utilizado por
los programadores "casuales", y un entorno de desarrollo que ayuda en la construcción
de interfaces de usuario visualmente atractivas para una amplia variedad de dispositivos
de destino. Por esa razón, Andreas se alegra de haber tenido la oportunidad de revisar
este maravilloso libro que le ayudará a convertir sus ideas en aplicaciones móviles reales.
www.PacktPub.com
¿Sabía usted que Packt ofrece versiones de libros electrónicos de todos los libros
publicados, con archivos PDF y ePub disponibles? Puede actualizar a la versión de libro
electrónico en www.PacktPub.com y como cliente Libro, usted tiene derecho a un
descuento en la copia de libros electrónicos. Póngase en contacto con nosotros en
service@packtpub.com para más detalles.
http://PacktLib.PacktPub.com
¿Necesita soluciones inmediatas a todas sus preguntas? PacktLib está en línea Packt
biblioteca digital de libros. Aquí, usted puede acceder, leer y buscar en toda la biblioteca
de Packt de libros.
[ 2]
Table of Contents
[ 3]
Table of Contents
[ 4]
Table of Contents
General188
Stacks189
Copia Files189
iOS189
Construir for190
Configuración básica de aplicación 191
Icons192
Splash Screens193
Opciones de orientación 194
URL personalizada Scheme194
Requisitos y restricciones 194
Estado Bar195
Android196
Configuración básica de aplicación 196
Requisitos y restricciones 198
Aplicación Permissions198
Opciones de la interfaz de usuario 199
Creación de aplicaciones para Beta Testers199
Envío de una aplicación Android para testers199
Preparación de una aplicación iOS para que pueda trabajar en algún otro device200
La creación de "Over The Air" instaladores para iOS202
AirLaunch202
BetaBuilder203
TestFlightApp.com204
Creación de una tienda de aplicaciones de archivo de envío 204
Encontrar y utilizar la aplicación para Android Keytool 204
Creación de un certificado de distribución para iOS206
Subida a la aplicación stores208
¿Qué es similar209
¿Qué es different209
Line209 Bottom
Summary210
Apéndice: Extterminando LivEcode 211
La historia hasta ahora ... 211
Extender LiveCode212
MobGUI212
tmControl213
DropTools Palette214
mergExt215
La creación de su propio complemento ons216
Custom controls216
Externals216
[5]
Table of Contents
[6]
Table of Contents
Prefacio
Todo el mundo te conoce tiene un dispositivo móvil inteligente de algún tipo. Usted
probablemente posee varios! La idea general de tener aplicaciones de utilidad en un teléfono
no es nueva, e incluso teléfonos celulares y juegos de PDA han existido durante años, pero la
forma en que el iPhone utiliza táctil en lugar de un lápiz o el teclado y gestos para reducir el
número de pasos para hacer algo, era un elemento de cambio.
En el mundo del escritorio hay varias herramientas de desarrollo que le permiten publicar
en Mac y Windows, así como Linux en el caso de LiveCode. La más exitosa de estas
herramientas son Adobe Director, Adobe Flash, Unity, y LiveCode. La publicación en iOS se
está trabajando para el director, lo que significa que las cuatro herramientas también son
adecuados para el desarrollo para móviles.
Estas herramientas tienen diferentes puntos fuertes. En algunos casos, las fortalezas se
refieren a la naturaleza de las aplicaciones que puede hacer, y en otros casos se refiere a la
accesibilidad de la herramienta es para personas que no son programadores hardcore. Si
quieres hacer un juego 3D de alta calidad, la Unidad sería la mejor opción, con el director y
luego Flash como otras opciones. Si usted necesita una gran cantidad de animaciones de los
personajes, Flash sería la mejor opción, con el director ser una buena alternativa.
Capítulo 5, Realización de una aplicación Puzzle Jigsaw, le mostrará cómo procesar datos de
imagen, y utilizar la información para crear un selector de color, detectar las regiones, y para
hacer un mapa de la colisión. A continuación, creará una aplicación de rompecabezas
completo que lleva su imagen desde el álbum de fotos o cámara del dispositivo.
Apéndice A, Extender LiveCode, describe los complementos para LiveCode que hará que sus
[2]
Preface
aplicaciones móviles se ven mejor, o que se extiendan las capacidades móviles de LiveCode.
[3]
Preface
Convenios
En este libro, usted encontrará varios epígrafes que aparecen con frecuencia.
¿Qué ha pasado?
En este epígrafe se explica el funcionamiento de las tareas o instrucciones que acaban
incluyendo:
[ 4]
Preface
Tener un héroe go -
encabezamiento
Estos fijará objetivos prácticos y darle ideas para experimentar con lo que has
aprendido.
Usted también encontrará una serie de estilos de texto que distinguen a los diferentes tipos de información.
Estos son algunos ejemplos de estos estilos, y una explicación de su significado.
Las palabras de código en texto se muestran de la siguiente manera: "En la línea en blanco
entre en mouseUp y mouseUp final, tipo numberPressed la etiqueta de mí. "
Un bloque de código se
establece como sigue:
en clearPressed
poner en verdadero newNumber
poner 0 en el campo
"display" poner 0 en
currentTotal
poner 0 en CurrentValue
puesto vacío en el extremo
currentCommand clearPressed
Los nuevos términos y las palabras importantes se muestran en negrita. Las palabras que
usted ve en la pantalla, los menús y cuadros de diálogo, por ejemplo, aparecen en el texto
de esta manera: "Toma nota de los elementos en el lado derecho, las Muestras de
usuario, tutoriales, recursos, y un diccionario.".
[5]
Preface
Lector de retroalimentación
Los comentarios de nuestros lectores siempre es bienvenida. Háganos saber lo que
piensas acerca de este libro, lo que le gustó o no le gustaba puede haber. Lector de
retroalimentación es importante para nosotros desarrollar títulos que realmente sacar el
máximo provecho de.
Para enviarnos sus consultas generales, sólo tiene que enviar un e-mail a feedback@packtpub.com,
y mencionar el título del libro a través del tema de su mensaje.
Si hay un tema que tiene experiencia y está interesado en cualquiera de los dos por
escrito o contribuir a un libro, ver nuestra guía de autor en www.packtpub.com /
autores.
Atención al cliente
Ahora que usted es el orgulloso propietario de un libro de Packt, tenemos una serie de
cosas que le ayudarán a sacar el máximo partido a su compra.
Fe de erratas
Aunque hemos tomado todas las precauciones para asegurar la exactitud de nuestro
contenido, los errores ocurren. Si usted encuentra un error en uno de nuestros libros, tal vez
un error en el texto o el código estaríamos agradecidos si usted desea informar de esto a
nosotros. De esta manera, usted puede ahorrar otros lectores de la frustración y nos ayudan
a mejorar las versiones posteriores de este libro. Si encuentra alguna
fe de erratas, por favor informe al visitar http://www.packtpub.com/support, la
selección de su libro, al hacer clic en el enlace de envío de formularios fe de erratas, y entrar
en los detalles de sus erratas. Una vez que sus erratas se verifican, su presentación será
aceptada y la fe de erratas se subirán a nuestro sitio web, o añadir a una lista de erratas
existentes, en la sección de erratas de ese título.
[6]
Preface
Piratería
La piratería de material con copyright en Internet es un problema constante en todos los
medios. En Packt, tomamos la protección del derecho de autor y licencias muy en serio. Si te
encuentras con las copias ilegales de nuestras obras, en cualquier forma, en el Internet, por
favor indíquenos la dirección de ubicación o el nombre del sitio web inmediatamente para
que podamos presentar un recurso.
Preguntas
Puede contactar con nosotros en questions@packtpub.com si usted está teniendo
problemas con algún aspecto del libro, y haremos nuestro mejor esfuerzo para resolver
el problema.
[7]
Fundamentos LiveCode
1
¿Es este capítulo para usted?
LiveCode es fácil, pero hay miles de cosas fáciles de aprender! A lo largo del libro vamos a
ver la última de las cosas fáciles, sobre todo los relacionados con las aplicaciones móviles,
pero primero debemos repasar algunos de los conceptos básicos.
En este capítulo, deberá:
Otras compañías producen herramientas que estaban muy parecido a HyperCard, sino que
también intentó
para dar al usuario más funciones que estaban en HyperCard. La más destacada de estas
herramientas
eran SuperCard, Plus y MetaCard. Plus pasó a tener una vida interesante, el producto
sí mismo se convirtió sólo para Windows (era multiplataforma al principio), pero terminó más
tarde el mismo código
en las plataformas de herramientas Objetos Oracle Media. Todas estas herramientas perpetuado
la
metáfora de una pila de tarjetas.
MetaCard fue más notable por el hecho de que era multi-plataforma, no sólo entre
plataformas. Stacks, el término general que se utiliza para los documentos creados por
estas herramientas, hechas con MetaCard podía correr en sistemas Unix y Linux, así como
Mac y Windows. Por desgracia, era un poco feo! La compañía escocesa RunRev hizo un
producto que era un intento de presentar MetaCard de una manera más atractiva.
Eventualmente RunRev adquirido MetaCard, y desde
2003 RunRev ha seguido basándose en MetaCard, utilizando el nombre del producto "en tiempo
de ejecución
Revolución ", más tarde renombrado a LiveCode.
Tanto HyperCard y LiveCode proporcionar formas de extender la jerarquía más. Usted será
capaz de tomar otras pilas y ponerlas en uso. Para guardar reescribir el mismo conjunto de
funciones en cada pila, usted puede optar por tener una pila dedicado a dichas funciones y,
[8]
Chapter 1
a continuación añadir que la pila a la "stackinsuse", utilizando el comando:
empezar a utilizar la pila "utilidad pila"
[9]
LiveCode Fundamentals
Una vez que haya descargado la versión de prueba, o comprar una de las licencias,
¿por qué no seguir adelante y lanzar él!
Como te ves en LiveCode por primera vez, te darás cuenta de una barra de herramientas
en la parte superior de la pantalla, justo debajo de la barra de menús. Toma nota de los
elementos en el lado derecho, las Muestras de usuario, tutoriales, recursos, y un
diccionario. Estas áreas están llenas de información que le ayudará a empezar con
LiveCode. El diccionario es algo que va a utilizar un
mucho, y sólo la navegación a través de las entradas o bien a responder a su pregunta
inmediata o darle información avanzada acerca de los problemas que se encontrará más
adelante.
El menú Ayuda también proporciona acceso a una guía del usuario y varios archivos de
notas de la versión. Consulte la Guía del usuario para leer con mayor profundidad acerca
de las características mencionadas aquí.
[ 10 ]
Chapter 1
La captura de pantalla siguiente muestra las ventanas y paletas que vamos a utilizar por el
momento, así como la ventana del documento, que muestra una calculadora sencilla que
pronto va a construir:
Principal ventanas
Además de la ventana del documento en sí, estas son las ventanas principales que
tendremos que estar familiarizado con por ahora:
Instrumentospaleta
Inspector paleta
Message Box
[ 11 ]
LiveCode Fundamentals
La paleta Inspector muestra todas las opciones para el control que ha seleccionado
actualmente. En la imagen de arriba no es seleccionada, por lo que la paleta
Inspector muestra información acerca de la propia pila.
El cuadro de mensaje es una ventana que le permite probar ya sea una o varias líneas de
código. Usted será capaz de invocar funciones en sus stacks demasiado, por lo que es
una manera muy útil para comprobar distintas funciones mientras se está rastreando
temas. Vamos a utilizar el cuadro de mensaje en capítulos posteriores.
Como se sugirió anteriormente, usted debe leer la Guía del Usuario para obtener una
comprensión más profunda de estas ventanas, pero vamos a tratar de armar algo simple,
por ahora, para conseguir que más familiarizados con el uso de la paleta de herramientas.
[ 12 ]
Chapter 1
[ 13 ]
LiveCode Fundamentals
¿Qué ha pasado?
Esperamos que pueda haber hecho un montón de controles de interfaz aleatorio,
tal vez algunos que están muy bien alineados también! Ahora eliminar a todos
ellos, y prepárate para hacer que la interfaz simple calculadora.
Pero primero debemos repasar algo de la estructura y la jerarquía de una pila LiveCode, y
también crear algo de navegación básica.
[ 14 ]
Chapter 1
Pila estructura
Como se describe en la sección Antecedentes y metáforas de este capítulo, LiveCode utiliza
una pila de tarjetas de metáfora. Cuando usted hace una pila nueva que, en efecto, tiene
una tarjeta de un solo
pila de tarjetas. Sin embargo, incluso la aplicación más sencilla es probable que tenga más de
una tarjeta. Por ejemplo, podría haber una pantalla de bienvenida, una tarjeta de título, las
tarjetas de la tarea real en la mano, y una página de créditos. En la pantalla de la calculadora
vamos a utilizar dos tarjetas. El menú Herramientas incluye una opción para ver la estructura
de la pila, al mostrar el navegador de aplicación:
¿Dónde va el código
En lenguajes de programación como la de LiveCode, el código se refiere como está,
mientras que los métodos o funciones se conocen como controladores (aunque en
LiveCode un controlador que devuelve un valor también se llama una función). Proyectos
hechos con más difíciles de utilizar herramientas de programación a menudo consisten en
decenas de archivos de texto, uno para cada modelo, vista o controlador. En este
LiveCode es más simple que los guiones se adjuntan al objeto que necesita ese código.
Para hacer frente a la interacción del usuario en otras herramientas que usted tendrá que escribir el código que
recibe el evento (tal vez sólo un clic del ratón sobre un botón) y, a continuación, realizar la acción correspondiente.
En LiveCode hay una ruta del mensaje que se ocupa de estos eventos y los pasa a
la jerarquía. Si hace clic en un control de interfaz LiveCode que no tiene un controlador de
eventos del ratón, haga clic en el sube por la jerarquía hasta el nivel de la tarjeta. Si la
tarjeta no tiene un controlador para ese evento, que continúa hasta el nivel de la pila.
Usted puede tener otros niveles de jerarquía, al poner otras pilas en uso, pero para nuestros propósitos
sólo tenemos el botón, tarjeta, y las jerarquías de la pila.
Esta jerarquía mensaje nos permite colocar el código necesario por varios controles de
[ 15 ]
LiveCode Fundamentals
interfaz en un nivel superior, a disposición de todos los controles. Uno de estos casos será
con los botones numéricos de la calculadora, y cada uno tiene que hacer exactamente lo
mismo, y al poner ese código en el nivel de tarjeta, cada uno de ellos puede hacer uso de
ese solo controlador.
[ 16 ]
Chapter 1
[ 18 ]
Chapter 1
8. Cambiar la fuente, el tamaño y las opciones de estilo, para hacer un título bonito,
cambiar el tamaño del propio campo hasta que te gusta como se ve:
[ 19 ]
LiveCode Fundamentals
[ 21 ]
LiveCode Fundamentals
¿Qué ha pasado?
Eso puede parecer como un montón de pasos, pero sí crear las dos cartas que necesitamos,
presentado
un bonito campo en busca del título, y ha creado un botón Comenzar con su propio guión. En
realidad, esos pasos
tomar menos de dos minutos, y mucho menos a medida que adquiera experiencia en LiveCode.
A veces usted querrá mantener un conjunto de paleta Inspector para ver las opciones de un
objeto determinado en la tarjeta, y no cambia para mostrar un objeto diferente como lo
hacen otras selecciones. En la esquina del lado superior derecho de la paleta Inspector es
un icono de un candado, que le permitirá bloquear el inspector al objeto actual.
Hasta ahora, la mayoría de las opciones de la paleta Inspector no nos ha afectado, pero que
está a punto de ser relevante es el hecho de que se puede establecer un nombre para un
elemento que es diferente a su etiqueta. Usted puede conocer a otros lenguajes de
programación, y esto también se aplica a LiveCode, que algunos nombres son menos legal
que otros. Tal vez usted no puede tener espacios en el nombre, o utilizar los dos puntos o
barra invertida. Si el nombre de un botón con un número, Botón "1" no puede ser un botón,
lo que podría dar lugar a confusión.
[ 22
]
Chapter 1
Para las teclas de la calculadora vamos a configurar una etiqueta para que se vea correcto, y
un nombre que no dé lugar a confusión. Hablando de las teclas de la calculadora ...
[ 23 ]
LiveCode Fundamentals
11. Duplicar uno de los botones de nuevo, el nombre del nuevo botón
dividir, y el tipo /por su etiqueta.
13. Duplicar el botón división tres veces más, y establecer los nombres de se
multiplican,
[ 24
]
Chapter 1
plus, y menos. Ajuste las etiquetas para *, +, y -.
14. Duplicar el botón Dividir de nuevo, indicando el nombre es igual a para el botón
y establezca la etiqueta =, y el cambio de la línea media de la secuencia de
comandos para decir equalsPressed
[ 25 ]
LiveCode Fundamentals
15. Duplicar la es igual a botón y establecer el nombre del nuevo botón para
toggleSign y la etiqueta al + -, a continuación, cambie la línea media de la
secuencia de comandos para toggleSign.
16. Duplicar la es igual a botón, defina el nombre del nuevo botón para claro y
la etiqueta al C, a continuación, cambie la línea media de la secuencia de
comandos para ser clearPressed.
17. Arrastre un campo de etiqueta de la paleta de herramientas, y en la paleta Inspector
elegir el formato de texto en el menú desplegable. En la configuración de formato de
texto elija una fuente bonita, texto justificado a la derecha, y un tamaño de fuente
grande. Nombre del campo mostrar.
18. Edite el guión de la mostrar campo. Con los campos no obtiene la secuencia de
comandos de arranque que se obtiene con los botones, por lo que tendrá que
escribir las líneas mouseUp ti mismo. Escriba las siguientes tres líneas:
en mouseUp
establecer el clipboardData
["texto"] a mí mouseUp final
19. Mueva todos los botones en sus lugares correctos y seleccionar conjuntos de
botones de usar que las herramientas Alinear para hacer su presentación coincide
con la calculadora de pantalla.
20. Ahorre!
¿Qué ha pasado?
Mucho ha pasado! Hemos hecho todos los objetos de nivel de tarjeta y escribió en sus
guiones. La mayor parte de las secuencias de comandos están "llamando" a un manejador de
nivel de tarjeta que se va a establecer el próximo. Antes de hacer eso, vale la pena tratar de
entender algunas de las líneas que acabamos de ingresar.
Supongamos que queremos cambiar el texto dentro de un campo que es la primera entrada
del reparto de una película del director, se puede utilizar la sintaxis verbose:
poner "hola mundo" en el texto del elemento 1
[ 26
]
Chapter 1
[ 27 ]
LiveCode Fundamentals
o un punto
sintaxis:
miembro (1). text = "hola
mundo"
En LiveCode no hay esa elección - lo que escribe tiene que ser en forma de:
poner valor en un
contenedor
Usted tiene la posibilidad de elegir si utiliza una versión larga de una palabra, una versión corta, o una forma
abreviada. También hay sinónimos, que le permiten utilizar una palabra que tiene más sentido para usted.
Aquí hay dos maneras de decir la misma cosa, con la segunda variación utilizando una
forma abreviada de la palabra clave:
poner de 3 caracteres de la palabra 2 de la tarjeta de campo
"nombre del campo 1" en aVariable
Cuando se trata de los contenidos del objeto que tiene la secuencia de comandos que se
está ejecutando, puede utilizar la palabra clave me para ahorrar un poco de mecanografía, y
LiveCode también tratará de averiguar lo que usted tiene en mente, si es posible.
Tome las líneas que hemos introducido como
ejemplos:
numberPressed la etiqueta de
mí
establecer el clipboardData
["texto"] a mí
[ 28
]
Chapter 1
[ 29 ]
LiveCode Fundamentals
Usted puede optar por ser más detallado de lo que se necesita, sólo por razones de legibilidad, y en estos
capítulos que va a ser el caso. Uso:
poner el texto de mí en textvariable
hace que sea más fácil saber lo que va a suceder que si se utiliza el igualmente válida:
me puso en textVariable
Ahora mira el guión en el que hemos escrito nombre corto de mí - ¿Qué es todo eso? Los
objetos en LiveCode tienen una larga descripción del lugar en que se encuentran, por
ejemplo, "Botón" buttonname "de tarjeta de identificación 1234 de pila" ruta / a /
stack.livecode "". En la aplicación de la calculadora sólo tenemos la palabra de lo que
establece como el nombre del botón. Si nos preguntamos por nombre de mí, aún diría
botón "buttonname". Para tomar sólo el nombre en sí, se utiliza nombre corto de mí.
Hay ocasiones en las que deseará utilizar las otras variantes de "nombre", incluyendo el
nombre completo y el nombre abreviado, que se puede leer en la entrada del Diccionario
LiveCode para "nombre". Además de una descripción de las diferentes maneras de utilizar
"nombre", hay una serie de precauciones se muestra.
Mayúsculas y minúsculas
Si algún usuario LiveCode avanzadas están leyendo este capítulo, se puede
notar que en algunos casos tengo la caja equivocada. LiveCode no le importa
lo que el caso de haber utilizado, así que cuando me dijo incorrectamente
clipboardData en lugar de clipboardData, no importaba. Esto no
es exclusivo de LiveCode, pero es común entre los lenguajes de programación
de Inglés-como para no exigir que el usuario obtiene exactamente el caso
justo antes del comando funcionará.
En todos los botones numéricos y el botón de punto decimal, usted debe tener este script:
en mouseup
numberPressed la etiqueta de
mouseup final me
[ 30
]
Chapter 1
Los otros botones todos funcionan de la misma manera - que ellos llaman un controlador
del nombre utilizado, que estamos a punto de añadir a la secuencia de comandos de la
tarjeta. La siguiente es la secuencia de comandos para los símbolos +, -, *, / y botones,
pasando el nombre del botón en cuestión al nivel de tarjeta:
en mouseUp
operatorPressed el nombre corto del
mouseUp final me
En el caso del campo, es sólo el procesamiento de una sola línea de código, así que no hay
necesidad de poner eso en el nivel de tarjeta, a menos que tuviéramos una gran cantidad de
campos que hacen lo mismo.
Así que, ¿por qué no añadir todos los scripts de nivel de tarjeta? Aquí están, uno a la
vez, con una explicación de cómo cada uno funciona:
Pero espera ... aún no hemos hablado de variables. Espere un momento, mientras vemos cómo
LiveCode gestiona las variables.
[ 31 ]
LiveCode Fundamentals
LiveCode también tiene variables de propiedades personalizadas, y mucha gente usaría los
de los valores de la calculadora de botón en lugar de confiar en la etiqueta del botón.
Nosotros tal vez las utilizaremos más adelante!
Ahora, ¿dónde estaba ... ah, sí, los scripts de
escritura de la tarjeta:
currenttotal mundial, CurrentValue, currentcommand, newnumber
Como hemos comentado, se trata de variables que permitirán a todos los controladores
para pasar valores entre sí. En este caso las variables podría haber sido local, pero a
menudo se puede decidir utilizar global en cambio, pensando que un caso puede surgir
después que usted necesita para acceder a las variables desde fuera de la secuencia de
comandos que está adentro
Es bueno para restablecer las cosas al empezar, y tiene una LiveCode OpenCard evento
que podemos utilizar para hacer esto. Los siguientes códigos se restablece cosas:
en OpenCard
clearpressed
final OpenCard
en clearpressed
poner en verdadero newnumber
poner 0 en el campo
"display" poner 0 en
currenttotal
poner 0 en CurrentValue
puesto vacío en el extremo
currentcommand clearpressed
Tener las líneas de reposición en el clearPressed manejador nos permitirá llamar en otro
momento y no sólo cuando la tarjeta se abre. Nos puede llamar directamente al hacer clic en
el C(CLEAR)
[ 32
]
Chapter 1
que pondrá a cero el campo de visualización, el total acumulado para su cálculo, y el último
número que ha introducido en la calculadora. También borra la variable que se utiliza para
recordar
que el operador presiona el botón por última vez, y un booleano (true / false) variable se
utiliza para reconocer si un botón se presiona número debe borrar la pantalla o agregar en el
display.
[ 33 ]
LiveCode Fundamentals
Todos los botones numéricos y el botón de punto decimal, llama a este controlador:
en numberPressed n
si es cierto, entonces newnumber
n poner en el campo
"display" poner en falso
newnumber
más
n después de poner el campo
"display" end if
final numberPressed
La ndespués de que el nombre del controlador es una variable que almacena el parámetro
que se ha enviado al controlador. En este caso se trata de la etiqueta de la tecla que se
presionó. Toda esta rutina tiene que hacer es agregar el carácter a la final del campo de
visualización, a excepción de cuando se está escribiendo un
nuevo número. Ahí es donde el newNumber variable booleana dentro - si que se establece
en verdadero, el carácter entrante reemplaza el contenido del campo de visualización. Sin
embargo, si es falsa, el carácter se añade al final del campo.
Cuando se utiliza una calculadora, escriba un número, un operador y luego otro número,
seguido de otro operador o el =botón. A la vez que se pulsa el botón de operación no hay
manera de saber el resultado, ya que aún no ha entrado en el próximo número
en el cálculo. Así, recordamos que el operador hasta que haya introducido el número
siguiente. Si el currentcommand variable no tiene ya un valor, se guarda el texto en el
campo de visualización currenttotal variable, el carácter explotador que usted
presiona en el
currentcommand variable, y asegúrese de que newnumber se establece cierto. De esta
forma se asegura de que el botón se pulsa siguiente número se borrará el campo de
visualización. Si currentcommand ya tiene un valor, lo reemplazamos con el nuevo valor y,
a continuación, llamar al controlador que se usa cuando se pulsa el =botón.
[ 34
]
Chapter 1
Hay maneras más probable más cortas para hacer frente a la =pulsar una tecla, pero aquí
vamos a utilizar varios si declaraciones, y ejecutar el código de cálculo apropiada:
en equalsPressed
poner campo "display" en CurrentValue
si currentCommand está vacía salga equalsPressed
si currentCommand es "dividir" a continuación, poner currentTotal
/ CurrentValue en el campo "display"
si currentCommand es "multiplicar" y luego poner currentTotal *
CurrentValue en el campo "display"
si currentCommand es "menos" a continuación, poner currentTotal -
CurrentValue en el campo "display"
si currentCommand es "plus" a continuación, poner currentTotal +
CurrentValue en el campo "display"
poner campo "display" en currentTotal
poner en verdadero newNumber
puesto vacío en el extremo
currentCommand equalsPressed
Una cosa a tener en cuenta es que LiveCode es lo suficientemente inteligente como para
saber que la cadena de texto dentro del campo de la pantalla debe ser tratada como un
número de punto flotante.
Esta es una rutina muy simple, que no tiene que entender que es un número de punto
flotante se representa. Simplemente mira para ver si el primer carácter es un punto negativo
[ 35 ]
LiveCode Fundamentals
o no, y si lo es,
borra el carácter. Si no es así, se inserta el guión que más tarde LiveCode interpretará
como un valor negativo.
[ 36
]
Chapter 1
Ampliación de la calculadora
Es posible añadir más características a la calculadora simple. Si tenemos en cuenta cómo se
nombran los botones y las funciones de la escritura tarjeta, usted puede comenzar a ver lo
que tenga que agregar una nueva habilidad:
LiveCode tiene una función de raíz cuadrada, escribiendo esto en el cuadro de mensaje
que produciría la raíz cuadrada de 10:
poner sqrt (10)
Ahora, armado con la información anterior, trate de agregar una función raíz cuadrada en la
calculadora.
[ 37 ]
LiveCode Fundamentals
Después de haber añadido el jugador a la tarjeta, puede configurar qué archivos de vídeo se
va a jugar por entrar en la ruta del archivo o URL del archivo con la configuración básica de la
paleta Inspector. También puede establecer la ruta de acceso al video con la siguiente
secuencia de comandos:
establecer el nombre del archivo "nombre del jugador" jugador "ruta de
archivo o URL"
Botones Rollover
[ 38
]
Chapter 1
Las imágenes que se importan se pueden utilizar como iconos en un botón. Para
configurar un botón para que tenga una imagen agradable estado de reposo, y una
imagen más destacado asociado, deberá seguir los siguientes pasos:
1.Seleccione Archivo | Importar como Control | Imagen de archivo ...
2.Seleccione las imágenes que representan los estados de inactividad y más destacado, y
haga clic en Abrir.
[ 39 ]
LiveCode Fundamentals
3.Seleccione el botón que desea ver como estas imágenes, y bajo los iconos y las
fronteras de la paleta Inspector, haga clic en el botón varita mágica para el lado
derecho de la entrada superior (Icono).
4.In el cuadro de diálogo que aparece, seleccione Esta pila en el menú desplegable.
5.Seleccione la imagen que es el estado de inactividad para el botón.
6.Haga clic en el botón varita mágica junto a la entrada Hover, y elegir la imagen del
estado resaltado.
7.Under Propiedades básicas, seleccione el botón transparente en el estilo
en el menú desplegable.
8.Uncheck las casillas de nombre Show, hilite Auto, y hilite compartida.
9.Resize el botón para ser lo suficientemente grande como para mostrar la imagen.
10. Seleccione cada una de las imágenes originales, y en Propiedades Básicas, desactive la
Visible caja.
Aquí podemos ver dos imágenes que se han importado con el fin de darle al botón Begin
una apariencia más iOS. El botón está seleccionado y la paleta Inspector muestra el icono
Las opciones de selección.
[ 40
]
Chapter 1
Entonces, cuando usted elige una imagen para usar el mismo botón se actualizará. En este
caso, el icono de la libración se ha ajustado a la versión más oscura de la gráfica, pero como
se muestra aquí, el botón queda por cambiar de tamaño.
Depuración
Si lo hizo seguir adelante y tratar la calculadora antes de haber introducido todos los scripts que
necesitaba,
es muy probable que si se hubiera vuelto a ver la depuración de scripts en acción. Esperemos que se
logró
para hacer frente a lo que ha visto, puede ser abrumador al principio. La captura de pantalla
siguiente es lo
que habría parecido:
[ 41 ]
LiveCode Fundamentals
El mensaje de error en la parte inferior deja en claro que el error es algo que ver con el
nombre del campo, y rápidamente detectar el error. Aunque a veces puede ser
necesario inspeccionar las variables, para asegurarse de que contienen los valores que
creemos que deberían. La ficha Variables mostrará una lista de las personas.
Un problema inesperado es la única vez que se puede ver el depurador, pero cuando se
desarrolla una secuencia de comandos que son capaces de establecer puntos de
interrupción, haga clic en la columna justo a la izquierda del número de línea que desea
detener el programa en.
[ 42
]
Chapter 1
Usted se familiarizará con el editor de script y depurador a medida que avanza, pero que debería empezar!
Un buen punto de partida sería propio conjunto RunRev de tutoriales en línea, que se
encuentran en la fespués de ubicación:
http://lessons.runrev.com/
Escriba las palabras de búsqueda en la caja que describen su área de interés, y podrás ver una lista de
artículos sobre ese tema.
Resumen
Después de haber creado una calculadora sencilla a partir de cero, ahora debería estar más
familiarizado con el
LiveCode ambiente.
[ 43 ]
LiveCode Fundamentals
También hablamos sobre los tipos de variables utilizadas por LiveCode, y cómo se pueden utilizar
los comandos abreviados y sinónimos.
Ahora que hemos aprendido lo suficiente para hacer que las pilas normales LiveCode, es
necesario descargar e instalar software adicional de Google y Apple que se requiere para la
publicación de una pila para un dispositivo móvil, y luego comenzar a probar características
móviles específicas, las cuales se tratan en el siguiente capítulo.
[ 44
]
Introducción a LiveCode Mobile
2
Antes de que podamos hacer cosas interesantes ...
Creación de pilas que hacer algo que usted encontrará útil o que puede llegar a
ser una aplicación móvil que se puede vender, es un proceso muy gratificante.
Minuto a minuto, puede estar haciendo progresos, y al instante ver las mejoras
que se han hecho. Por desgracia, hay un montón de trabajo menos gratificante
que hacer antes y después de haber hecho su obra maestra. Este capítulo le
guiará por el "antes" parte.
LiveCode hace que las aplicaciones móviles mediante la adopción de la pila que ha
presentado, junto con todos los archivos de soporte que ha añadido, y compila el archivo
de la aplicación utilizando el kit de desarrollo que se descarga desde el móvil proveedor OS
- Google para Android y Apple para iOS.
En este capítulo vamos
a:
Aquí vamos
...
Getting Started with LiveCode Mobile
Muchos menos pasos son necesarios para obtener el SDK de Android que conseguir las
herramientas para desarrolladores de iOS, ya que de tener que registrarse como un desarrollador
de Apple, pero la configuración para Android es más complicado. Vamos a ir a través de todos los
pasos para Android y después los de iOS. Si usted es un tipo iOS sólo de la persona, pase las
páginas siguientes, recogiendo de nuevo en la sección Convertirse en un desarrollador de iOS.
Android Market
Una buena ubicación inicial wía ser http://developer.android.com/.
[ 36 ]
Chapter 2
Usted estará de regreso aquí en breve para descargar el SDK de Android, pero por ahora, haga clic en el
enlace Más información en el área de publicación. Habrá una pantalla de inicio de sesión, inicie sesión
con sus habituales detalles de Google.
Google cobra una tarifa de $ 25 para que se inscriba para el mercado Android.
Por lo menos usted se entere de esto de inmediato! Introduzca los valores para
Nombre del desarrollador, correo electrónico, URL del sitio web (si tiene uno), y
número de teléfono.
[ 37 ]
Getting Started with LiveCode Mobile
El uso de Google Checkout le evita tener que introducir sus datos de facturación,
cada vez. Esperemos que no va a adivinar los otros 12 dígitos de mi número de
tarjeta de crédito!
[ 38 ]
Chapter 2
[ 39 ]
Chapter 2
Algún tiempo después, ya está todo firmado y listo para hacer su fortuna!
Amazon Appstore
Considerando que las normas y los costos para el mercado Android de Google son bastante
relajado, Amazon ha adoptado un enfoque más Apple-como, tanto en la cantidad que
cobran que te registres y en el proceso de revisión para aceptar propuestas de aplicaciones.
La spágina tarting es http://developer. amazon.com / home.html.
[ 40 ]
Getting Started with LiveCode Mobile
1.Cuando hace clic en Comenzar, se le pedirá que inicie sesión en su cuenta de Amazon.
[ 41 ]
Chapter 2
2.You se les pide que de acuerdo con los términos del convenio AppStore
DISTRIBUCIÓN antes de aprender acerca de los costos.
Costos 3.Those son de $ 99 por año, pero el primer año es gratis. Así que eso es bueno!
[ 42 ]
Getting Started with LiveCode Mobile
4.Unlike el Google Android Market, Amazon le pide a su banco por adelantado detalles,
listo para enviar un montón de dinero en el futuro, esperamos!
5.That 'it s, usted está listo para hacer otra fortuna, para ir junto con el que
Google te envía!
[ 43 ]
Chapter 2
En este libro, sólo vamos a cubrir Windows y Mac OS X (Intel), y sólo lo que se
necesita para hacer el trabajo LiveCode con el SDK de Android y iOS. Si tiene
la intención de hacer nativas aplicaciones basadas en Java, entonces usted
puede estar interesado en la lectura a través de todos los pasos que are
describe en la web página:
http://developer.android.com/sdk/installing.html.
Haga clic en el siguiente enlace para su plataforma. Los pasos que tendrá que ir a
través son diferentes para Mac y Windows. Vamos a empezar con Mac.
[ 44 ]
Getting Started with LiveCode Mobile
El archivo que acaba de descargar automáticamente se expandirá para mostrar una carpeta
con el nombre android-sdk-macosx. Puede ser en tu carpeta de descargas en este
momento, un lugar más natural para lo que sería en la carpeta Documentos, por lo que
mudarse allí antes de realizar los siguientes pasos.
Hay un SDK Léame archivo de texto que enumera los pasos que tendrá que tomar. Si estos
pasos son diferentes a lo que tenemos aquí y siga los pasos de la Léame, en caso de que se
hayan actualizado desde los pasos que se muestran aquí fueron escritos.
Por supuesto, la primera parte de la línea y el usuario carpeta coincide con la suya, no mía!
El resto será el mismo aspecto. Así es como se vería un usuario llamado fred:
nuevo-host-3: fred ~ $ cd / Users / fred / Documents / android-sdk-macosx
Sea cual sea su nombre, pulse la tecla Retorno o Intro después de escribir esa línea. Los
cambios en las líneas de ubicación a un aspecto similar al siguiente:
nuevo-host-3: android-sdk-macosx colin $
[ 45 ]
Chapter 2
Si usted ve esto, entonces usted puede dejar el cuadro de diálogo de abrir y haga clic en el
botón java.oracle.com visita. En la página de Oracle, lo que tienes que hacer clic en una casilla
de verificación para aceptar sus términos, y luego en el siguiente enlace correspondiente a su
plataforma. Elija la opción 64-bit si está ejecutando una versión de 64 bits de Windows, o la
opción x86 si está ejecutando Windows 32-bit.
[ 47 ]
Chapter 2
Una cosa importante a notar, y la última pantalla del instalador ofrece para abrir el
Administrador de SDK. Usted quiere hacer eso, así que resistir la tentación de
desactivar esa caja!
Haga clic en Finalizar, y le dará la bienvenida con una ventana de línea de comandos por
unos momentos, y luego el Administrador de Android SDK aparecerá y haga su cosa.
Al igual que con la versión para Mac, se necesita mucho tiempo para todos estos add-ons para
descargar.
[ 48 ]
Getting Started with LiveCode Mobile
Vamos a establecer las dos entradas para iOS iOS va después de conseguir (en Mac es decir, estas
opciones se atenuarán en Windows). Por ahora, haga clic en el botón ... situado junto al campo de
Android SDK desarrollo de las raíces, y vaya a donde el SDK está instalado. Si ha seguido los pasos
anteriores correctamente, entonces será en el Documentos carpeta en Mac, o en C: \
Archivos de programa (x86) \ Android \ en Windows (o en otro lugar si decide
utilizar una ubicación personalizada).
[ 49 ]
Chapter 2
Box. Munchies
d. Cheesecake de limón
[ 50 ]
Getting Started with LiveCode Mobile
[ 51 ]
Chapter 2
Cuando se registra para ser un desarrollador de iOS, existen cuatro posibilidades cuando
se trata de su estado actual. Si ya dispone de un ID de Apple, para que puedas usar con
sus compras en la tienda online de Apple, o tal vez sus compras de iTunes Store, entonces
usted puede elegir el que ya tiene un ID de Apple ... opción. Con el fin de ilustrar todos los
pasos en la firma,
vamos a elegir para empezar como un nuevo usuario.
[ 52 ]
Getting Started with LiveCode Mobile
Usted puede optar por inscribirse como individuo o como empresa. Vamos a elegir Individual.
[ 53 ]
Chapter 2
Al igual que con cualquier tal proceso de registro, tendrá que introducir sus datos
personales, establecer una pregunta de seguridad, y escriba su dirección postal.
[ 54 ]
Getting Started with LiveCode Mobile
La mayoría del software de Apple y servicios tienen su propio acuerdo legal para que las
firmen. Éste es el acuerdo general registrada de Apple Developer.
Con el fin de verificar la dirección de correo electrónico que ha utilizado, una verificación de e-
mail se envía a usted, con
un enlace en el e-mail para hacer clic, o puede introducir el código manualmente. Una vez que
haya completado
el paso de verificación, puede introducir los datos de facturación.
[ 55 ]
Chapter 2
Podría ser que usted vaya a hacer aplicaciones LiveCode para la Mac App Store, en cuyo caso
también habría que añadir el Mac Developer Program producto. Para nuestros propósitos,
sólo hay que registrarse para iOS Developer Program.
Cada producto que se suscribe a tiene su propio acuerdo. Un montón de letra pequeña para leer!
[ 56 ]
Getting Started with LiveCode Mobile
[ 57 ]
Chapter 2
Como verán, va a costar $ 99 por año, o $ 198 por año si también se ha registrado para
la cuenta de desarrollador Mac. La mayoría de los usuarios LiveCode no tendrá que
inscribirse en la cuenta de desarrollador de Mac, a menos que el plan es presentar
también las aplicaciones de escritorio de la Mac App Store.
Una vez enviado el pedido, son recompensados cuando se les dice que ahora está registrado
como un
Apple Developer!
[ 58 ]
Getting Started with LiveCode Mobile
Por desgracia, no es una aprobación inmediata, como fue el caso con el Android Market o
Appstore Amazon. Usted tiene hasta cinco días para esperar la aprobación. En los días
tempranos de desarrolladores de iPhone, podría tomar un mes o más, por lo que 24
horas es una mejora!
1.Which de estos nombres es más probable que sea un nombre de código para una versión
futura de iOS?
a.Las Vegas
b. Laguna Beach
c.Hunter Mountain d.
Valle de la Muerte
Instalar Xcode
Una vez que reciba la confirmación de ser un desarrollador de iOS, you podrá iniciar sesión
en el iOS Dev Center, en
https://developer.apple.com/devcenter/ios/index.action.
[ 59 ]
Chapter 2
Esta página se utiliza la misma por los desarrolladores de iOS que no usan LiveCode, y está
llena de documentos de apoyo para ayudar a alguien a crear aplicaciones nativas usando
Xcode y Objective-C. No necesitamos más de eso, pero es necesario descargar Xcode.
[ 60 ]
Getting Started with LiveCode Mobile
En el área de descargas de la página iOS Dev Center, podrás ver diferentes versiones de Xcode
para Mac OS 10.6 (Snow Leopard) y Mac OS 10.7 (Lion), así como el enlace a la antigua
Xcode 3. También puede obtener el código de la Mac App Store, ya partir de la versión 4.3 de
Xcode, que
toma la forma de una aplicación en lugar de una carpeta de desarrollador.
Instalar Xcode desde la Mac App Store es muy sencillo, es como comprar cualquier otra
aplicación en la tienda, sólo que es gratis! Se requiere que usted utiliza Mac OS 10.7.3 o
posterior. Si está utilizando un sistema mayor, entonces usted descargue una de las
versiones más antiguas de la página del desarrollador.
El mayor proceso de instalación de Xcode es muy similar a cualquier otra aplicación de Mac:
Las instalaciones Xcode tomar un tiempo muy largo, pero al final, usted debe tener la
Revelador carpeta o aplicación Xcode nuevo, listo para LiveCode de encontrar.
[ 61 ]
Chapter 2
[ 62 ]
Getting Started with LiveCode Mobile
Haga clic en el ...situado junto a la ubicación de la raíz desarrollador de iOS 5.0 y superior:
campo, y usted verá un cuadro de diálogo que le pregunta si está usando Xcode 4.2 o 4.3. Si
selecciona 4,2, entonces
seguir para seleccionar la carpeta con el nombre Revelador en la raíz de su disco duro.
Para 4.3, seleccione la aplicación Xcode sí mismo, en su Aplicaciones carpeta. Si está
utilizando un sistema antiguo que no era capaz de correr Xcode 4.2 o 4.3, y tuvo que tomar el
Xcode 3 descarga, haga clic en
la ...situado junto a la ubicación de la raíz desarrollador de iOS 4.0 y superior: campo, y
de nuevo, seleccione la carpeta con el nombre Revelador en la raíz de su disco duro.
LiveCode ahora sabe dónde encontrar los SDK para iOS.
[ 63 ]
Chapter 2
4. Seleccione Tablet de la lista de dispositivos (sólo hay dos cuando se ha
instalado por primera vez el SDK de Android - usted puede añadir sus
propios personalizados aquí también).
5. Haga clic en el botón Inicio.
6. Siéntate pacientemente mientras el dispositivo virtual se pone en marcha!
7. Abra LiveCode, y crear un nuevo Mainstack y Guardar la pila en su disco duro.
8. Seleccione Archivo | Configuración de aplicaciones independientes ....
[ 64 ]
Getting Started with LiveCode Mobile
¿Qué ha pasado?
Ustedes han abierto un dispositivo Android virtual, y LiveCode podrá probar las pilas que utilizan ese
dispositivo, carga una vez que ha terminado.
ADB es la parte del SDK de Android que actúa como un intermediario entre desde el
dispositivo a cualquier software que necesita para ser capaz de acceder al dispositivo. En
algunos casos, usted tendrá que entrar en el sistema Android en el dispositivo para indicarle
que debe permitir el acceso para fines de desarrollo. Por ejemplo, en un Android 3
(Honeycomb) del dispositivo, tienes que ir a Ajustes | Aplicaciones | Desarrollo y activar el
modo de depuración USB.
Kindle Fire viene con la depuración USB ya está habilitado, usted no tiene que hacer nada,
pero el sistema ADB no sabe sobre el dispositivo en absoluto. Usted puede arreglar eso!
[ 65 ]
Chapter 2
Para Windows:
10. Usted tendrá que ajustar el Kindle para utilizar el controlador USB que Google acaba de editar.
11. En el panel de control de Windows, el Administrador de dispositivos, busque la
entrada Kindle en la lista que se encuentra bajo USB.
12. Haga clic en la entrada Kindle y seleccione Actualizar software de controlador ....
[ 66 ]
Getting Started with LiveCode Mobile
13. Elija la opción que le permite encontrar el controlador en la unidad local, vaya a la
google \ USB_Driver \ carpeta, y seleccione para ser el nuevo controlador.
[ 67 ]
Chapter 2
14. Cuando se actualice el controlador, abra una ventana de comandos (práctico truco:
Shift + clic derecho en el escritorio y seleccione Abrir ventana de comandos aquí).
15. Cambie al directorio donde la herramienta ADB se encuentra, escribiendo lo siguiente:
cd C: \ Archivos de programa (x86) \ Android \ android-sdk \ platform-
tools \
16. Escriba estas tres líneas, presionando ENTRAR después de cada línea:
adb kill-server
adb start-server
adb dispositivos
17. Usted debe ver el Kindle Fire en la lista (comoun número desconocido buscando), así como el
dispositivo virtual, si usted todavía tiene que correr.
8. Ahora, introduzca las mismas tres líneas que hicimos con Windows:
adb kill-server
adb start-server
adb dispositivos
[ 68 ]
Getting Started with LiveCode Mobile
9. Una vez más, usted debe ver el Kindle Fire en la lista.
[ 69 ]
Chapter 2
Sospecho que vas a tener pesadillas sobre todos los pasos! Me tomó un montón de
búsqueda en la web para encontrar algunos de esos hacks oscuros. El caso general con
dispositivos Android
en Windows es que usted tiene que modificar el controlador USB para el dispositivo para
ser manejado por el conductor Google USB, y es posible que tenga que modificar la
adb_usb.ini archivo (en Mac también) para el dispositivo sea considerado como un
dispositivo compatible ADB.
¿Qué ha pasado?
Eso fue todo, todo lo que necesita para ponerse en marcha con las pruebas
utilizando los simuladores de iOS! Las pruebas en un dispositivo iOS física requiere
que crear una primera aplicación, así que vamos a hacer eso.
[ 71 ]
Chapter 2
[ 73 ]
Chapter 2
Si todo va bien, que acaba de hacer y corrió su primera aplicación móvil, tanto en Android y
iOS! Para un encore, debemos probarlo en dispositivos físicos, aunque sólo sea para dar
Android oportunidad de demostrar lo fácil que puede ser para hacer eso. Hay toda una lata
de gusanos que aún no han abierto que ver con conseguir un dispositivo IOS configurado de
manera que puede ser utilizado para la prueba. Esto se trata en profundidad
En un capítulo posterior, que se puede leer ahora, o puede visitar el Pro iOSPortal visionario
en https://developer.apple.com/ios/manage/overview/index.action, Y mirar
en la ficha Cómo en cada una de las diferentes secciones.
6. Abra Xcode, que está en la carpeta del desarrollador que creó anteriormente, en el
Aplicaciones sub-carpeta.
[ 74 ]
Getting Started with LiveCode Mobile
What
7. just happened?
En Xcode, seleccione Organizador en el menú Ventana y seleccione Dispositivos,
si no está ya seleccionado.
8. Debe aparecer en la lista. Selecciónelo, y si ves un botón etiquetado para uso
Desarrollo, haga clic en ese botón.
9. Arrastre el archivo app directamente desde el Finder a su dispositivo en la ventana de
Organizer.
10. El pequeño círculo de color naranja a su vez, por un momento, y luego de vuelta a verde.
11. Ahora puede abrir la aplicación en tu dispositivo iOS!
¿Qué ha pasado?
Además de obtener una pila de prueba trabajando en dispositivos reales, también vimos lo
fácil que es, una vez que todo está configurado, para poner a prueba una pila directamente
a un dispositivo Android. Si está desarrollando una aplicación que se va a desplegar en
tanto Android y iOS, es posible que la manera más rápida al trabajo es poner a prueba con
el simulador de iOS para las pruebas de iOS, pero para probar directamente en un
dispositivo Android en lugar de utilizar el Android SDK virtuales dispositivos.
Otras lecturas
Los proveedores de SDK, Google y Apple, tienen páginas extensas de información sobre la
configuración de sus entornos de desarrollo, la creación de certificados y
aprovisionamiento de los archivos, y así sucesivamente. La información tiene que cubrir
una gran cantidad de temas que no se aplican a LiveCode, así que no trate de perderse!
Estos serían good páginas que empiezan por:
http://developer.android.com/
http://developer.apple.com/ios/
[ 75 ]
Chapter 2
Resumen
La inscripción para los programas, archivo de la descarga, de comandos alineando su
camino por todo el lugar, y esperando pacientemente a que el emulador de Android para
poner en marcha, significa que podría tomar la mejor parte de un día a trabajar a través de
lo que hemos cubierto en este capítulo ! Afortunadamente, usted sólo tiene que ir a través
de él una vez.
Hicimos el trabajo a través de las tareas que tiene que hacer antes de poder crear una
aplicación móvil en LiveCode:
Descargar e instalar el SDK de Android
Regístrate como desarrollador de iOS
Descargar e instalar Xcode y el iOS SDK
Configurar dispositivos y simuladores
También cubre algunos temas que serán útiles una vez que esté listo para cargar una aplicación de acabado:
Habrá cosas más mundanas que cubren cerca del final del libro, pero no por mucho
tiempo! El siguiente, vamos a empezar a jugar con algunas de las habilidades especiales de
los dispositivos móviles.
[ 76 ]
Getting Started with LiveCode Mobile
La construcción de interfaces de
3
usuario
[ 70 ]
Chapter 3
5. Cree cuatro nuevas cartas. Nombre cada uno de tal manera que coincida
con uno de los nombres de los botones.
6. Volviendo a la primera tarjeta, ajuste el guión de cada botón de manera que va a
la tarjeta, con este script:
en mouseUp
ir tarjeta el nombre corto
del mouseUp final me
7. En cada tarjeta, crear un botón para volver a la tarjeta de menú. Nombre del botón
Menú.
Establezca su guión a los mismos que los otros botones.
8. Seleccione la opción Ejecutar (browse) de herramientas, y tratar de hacer clic en
los botones para saltar a cada una de las cuatro cartas y de vuelta a la tarjeta del
menú.
¿Qué ha pasado?
Pues bien, nada demasiado emocionante! Pero ahora debe tener cinco cartas y la habilidad para
moverse entre la tarjeta del menú y los demás. Ahora vamos a agregar secuencias de comandos para
cada tarjeta para ayudar a ilustrar las diversas características. El enfoque más eficaz consistiría en
agregar todos los guiones y botones relacionados y campos, y luego probar la aplicación de prueba
lecho final de una sola vez. Pero, ¿dónde está la diversión en eso? Por lo tanto, vamos a crear una
función a la vez.
[ 71 ]
Building User Interfaces
¿Qué ha pasado?
Una cosa aseada sobre sintaxis LiveCode es que el código de las aplicaciones móviles
también funciona para las aplicaciones de escritorio, y viceversa. Si todo va bien, cuando se
hace clic en el botón Probar te encontraras en tu correo electrónico predeterminado
aplicación, lista para enviar el mensaje de que había entrado en el campo LiveCode pila.
[ 73 ]
Building User Interfaces
[ 74 ]
Chapter 3
[ 75 ]
Building User Interfaces
16. Debe aparecer en la lista. Selecciónelo, y si ves un botón etiquetado para uso
Desarrollo, haga clic en ese botón.
17. Arrastre el archivo de aplicación directamente desde la ventana del Finder para su
dispositivo en el Organizador
ventana.
18. El pequeño círculo de color junto al dispositivo se volverá naranja por un momento,
y luego de vuelta a verde.
19. Ahora puede abrir la aplicación y probar el botón Enviar para crear un mensaje de prueba, que utilizará
la aplicación estándar de iOS correo.
¿Qué ha pasado?
Hemos pasado a través de los pasos necesarios para instalar la aplicación banco de pruebas tanto en
los dispositivos Android y iOS. También tuvimos que cambiar un par de cosas en el cuadro de diálogo
Configuración de la aplicación independiente. Como has visto, hay un buen montón de ajustes allí.
Usted puede esperar a conocer a todos en el Capítulo 7, Implementación en tu equipo
3. Elija la herramienta Ejecutar y haga clic en el botón Test. Debería ver la página de
inicio RunRev en su navegador predeterminado.
[ 76 ]
Chapter 3
Tratar la aplicación en dispositivos es exactamente lo mismo que con las pruebas de la función de correo
electrónico. Para Android:
¿Qué ha pasado?
Al igual que con el correo electrónico de prueba, añadiendo el código estándar para la
apertura de una página web que funciona para Android y iOS, al igual que lo hace para una
computadora de escritorio.
Mobile-only, selector de
[ 77 ]
Building User Interfaces
fecha
El siguiente par de ejemplos vamos a tratar son los que sólo funcionan en los dispositivos
móviles, no en las computadoras de escritorio.
[ 78 ]
Chapter 3
¿Qué ha pasado?
Espero que estés cada vez más rápido en la construcción e instalación de aplicaciones
móviles por ahora! Además de probar de nuevo en un dispositivo, también probamos el
simulador. Generalmente hablando es el más rápido para poner a prueba lo que puede
con el simulador de iOS, y sólo en un dispositivo de prueba cuando se esté examinando
cosas como multi-táctil, acelerómetro y soporte de la cámara.
[ 79 ]
Building User Interfaces
1. Copie el botón de prueba de la tarjeta DatePicker y pegarlo dos veces en las imágenes
tarjeta. Cambie el nombre de los botones para Prueba de la cámara y Prueba de
Biblioteca.
[ 80 ]
Chapter 3
7. Repita los pasos habituales para las pruebas en su dispositivo Android, o instalar
en su dispositivo iOS.
[ 81 ]
Building User Interfaces
8. Una vez que la aplicación se está ejecutando en las fotografías toque el equipo, en
la primera pantalla y, a continuación, Biblioteca Test. Usted debe ver a las típicas OS
opciones específicas para la elección de una imagen de tu biblioteca o una galería.
9. La imagen que ha seleccionado se carga en la ventana de la tarjeta, y llenará la
mayor parte de la pantalla, ocultando nuestra prueba y los botones del menú. El
guión tarjeta entramos significa que usted puede tocar la imagen para borrarla, y
luego intente otra prueba.
10. Pruebe el botón de la cámara de prueba. Verá la aplicación de la cámara con sistema operativo
específico, y cuando hayas tomado una foto y tocó el uso o el botón OK en la aplicación de la
cámara, la imagen se coloca en la tarjeta Pictures.
¿Qué ha pasado?
Estas secuencias de comandos simples ilustrar cómo LiveCode es capaz de llamar a las
aplicaciones de OS-específicas para hacer lo que de otra manera sería tomar un montón de
codificación. Incluso mejor, ya que las versiones posteriores de iOS y sistemas operativos
Android son liberados, las secuencias de comandos simples mismos activar las funciones
más avanzadas que Apple y Google han puesto en práctica.
[ 82 ]
Chapter 3
2. El artículo apunta a algunas otras fuentes de información, pero por ahora just
descargar este archivo:
http://spin.atomicobject.com/assets/2011/3/7/iOS_Buttons.psd
[ 83 ]
Building User Interfaces
[ 85 ]
Building User Interfaces
32. En colores & las gamas, ajuste el color del texto a ser blanco.
33. Alinear el campo y el botón de modo que los dos se centra en la otra.
34. Si ahora prueba con el simulador de iOS y haga clic en el Ubicación botón, usted
acaba de ver un cero, pero las pruebas en un dispositivo debe mostrar su latitud al
tocar el botón (se le tiene que dar permiso a la aplicación para saber su ubicación
la primera vez que pulse el botón).
[ 86 ]
Chapter 3
¿Qué ha pasado?
Aunque el botón que hizo no puede ser el tamaño perfecto, ni siquiera tiene el aspecto
correcto para un botón independiente iOS, sí que fuimos a través de todos los pasos que
usted necesita para hacer imágenes de los botones de estado. La colocación de un campo
LiveCode sobre los botones de imagen no es necesariamente la mejor apariencia. En realidad,
le tomaría más tiempo en Photoshop para hacer que el botón derecha para el ancho de la
etiqueta que está usando, y también puede añadir el texto a la imagen en sí. Se vería mejor, y
usted no tendrá que utilizar un campo para mostrar el nombre del botón en LiveCode.
LiveCode es capaz de utilizar código para crear las imágenes que necesitamos, mediante el
establecimiento de los puntos de un gráfico, así como su fillGradient. Pero una vez que
usted tiene los componentes necesarios para simular un botón u otro tipo de control, aún se
requerirá mucho más secuencias de comandos para administrar dichos elementos.
MobGUI al rescate!
RunRev tiene su sede en Edimburgo, Escocia, y ellos son un grupo talentoso! Pero ellos no
son el pueblo escocés sólo talento, también hay John Craig. Ha desarrollado un poderoso
complemento para LiveCode que incluye una lista cada vez más larga de iOS y Android OS
buscando controles. Si usted fuera a comprar su producto que usted pagaría $ 50, para lo
cual se obtiene la versión actual, además de los cambios que se liberan en los 12 meses
siguientes a la fecha de compra. Al tiempo que toma un vistazo aquí, podemos utilizar una
versión de prueba del producto.
[ 87 ]
Building User Interfaces
[ 88 ]
Chapter 3
[ 90 ]
Chapter 3
13. Verás que ahora puede arrastrar y crear cuatro botones de una sola vez.
14. Alt + doble clic en uno de los nuevos botones que acaba de hacer. Los botones
hacia fuera para llenar la anchura de la tarjeta.
¿Qué ha pasado?
Algo muy importante de LiveCode es que las numerosas ventanas y paletas que se utilizan
en el programa están a sólo pilas, y hemos comenzado a hacer uso de una pila especializada
que nos va a ahorrar un montón de tiempo, y nos dará una OS agradable interfaz específica
buscando.
[ 91 ]
Building User Interfaces
[ 92 ]
Chapter 3
15. Puede copiar el guión completo del primer botón, y pegarlo en los otros tres botones.
16. Vamos a necesitar estos elementos en todas las cuatro cartas que vamos a hacer, así que
seleccione todos y luego elegir grupo seleccionado en el menú Objeto.
17. Asegúrese de que el grupo es seleccionado y en la paleta Inspector LiveCode
periódica, marque la casilla de comportarse como un fondo.
18. Hacer más tres cartas, y el nombre de ellos Navegador, DatePicker, y Imagen.
19. Desde el menú en el que elegimos iOS Controles 2, seleccione iOS Controles 1.
20. Arrastre el control NavBar en la ventana de la tarjeta para cada una de las cuatro
cartas, y establecer el nombre coincide con el nombre de la tarjeta,
21. En Configuración de la aplicación autónoma, elegir iOS o Android, según el
dispositivo que desea probar sucesivamente.
22. Establezca el ID de aplicación interna, o Identificador, para com.yourname.MGTestBed.
23. Si utilizas iOS, asegúrese de elegir un perfil en el perfil en el menú desplegable.
24. Ahora puede hacer una prueba en el menú Desarrollo, después de haber elegido cualquier
simulador de iPhone o tu dispositivo Android conectado.
¿Qué ha pasado?
Parece que unos cuantos pasos, pero no debe tomar mucho tiempo, y ya tenemos la
navegación entre las cuatro cartas que parecen una auténtica interfaz de iOS.
Ahora vamos a obtener algunas de las características de la prueba en marcha, pero de una manera
más natural, de manera integrada que antes.
[ 94 ]
Chapter 3
[ 95 ]
Building User Interfaces
5. Al probar la aplicación y toca uno de los campos, la lámina del teclado aparecerá.
Usaremos el Hecho botón como una manera para ocultar el teclado. Agregar una línea de
atención al
touchEnd manejador de la Hecho botón de secuencia de comandos:
en touchEnd PID
mobGUIUntouch el id de largo
que me centre en nada
- End otras
líneas touchEnd
7. Ir a la tarjeta Browser.
8. A partir de los controles nativos de iOS establecidos, arrastre un control de texto a
la ventana de la tarjeta, y el nombre que URL.
9. Arrastre un control de explorador (el que muestra Google como su imagen) en la
ventana de la tarjeta, y el nombre Page.
10. Ajustar los tamaños de modo que el campo de texto llena el ancho de la tarjeta,
y el control del explorador llena la zona entre el campo de texto y la barra de
pestañas en la parte inferior.
11. Seleccione el control del navegador, y en la ventana MobGUI introduzca un valor
para el URL. Esto hará que el control de la carga navegador la URL como su
primera página.
12. Edite el script del campo de texto URL, y añadir este controlador:
en inputReturnKey
mobBrowserSet "Página", "url", mobFieldGet ("URL", "texto")
final inputReturnKey
[ 96 ]
Chapter 3
13. Pruebe con otra prueba, e ir a las tarjetas de correo electrónico y el explorador para verlos en acción.
[ 97 ]
Building User Interfaces
¿Qué ha pasado?
Hemos recreado las dos primeras pruebas de nuestra aplicación a principios de banco de pruebas,
pero ahora se ve mucho mejor! También hizo uso de la habilidad MobGUI para obtener y establecer
datos en controles nativos de iOS, en este caso mediante el uso de mobFieldGet y
mobBrowserSet.
Para el DatePicker ejemplo, añadir una OpenCard controlador para la tarjeta que incluye la
línea:
iphonePickDate fecha.
Para la prueba de imagen, mira los cuatro pasos en la hora de la acción - Carga sección de los
cuadros anteriormente en este capítulo. Sin embargo esta vez se le añade a los botones de las
líneas nativas, y la inserción de las líneas en la touchEnd en lugar de un controlador
mouseUp manejador.
Para obtener un bono, edite el grupo de barras y seleccione uno de los botones. En la
ventana MobGUI verá que puede establecer iconos personalizados para los estados Dim y
activo para cada botón.
Si se realiza una búsqueda de imágenes en Google de Iconos gratis móviles,
usted debería ser capaz de encontrar un montón de ejemplos que se ven bien en los
cuatro botones que hicimos.
Incluso si nos atenemos sólo al iPhone, a pesar de ello quieren cuidar de Retrato y Paisaje
orientaciones. Por lo tanto, tenemos que encontrar maneras de organizar los numerosos
controles de la tarjeta para lucir lo mejor posible para cada tamaño de pantalla y la
orientación.
Hay varias maneras de lograr esto. En primer lugar vamos a ver en el uso de un controlador de
cambio de tamaño.
[ 99 ]
Building User Interfaces
¿Qué ha pasado?
Además de hacer un ejemplo sencillo de cómo la resizeStack controlador puede ser
usado, también hemos visto que los cambios de orientación enviar el resizeStack
mensaje.
[ 100
]
Chapter 3
Las barras horizontales y verticales tenues se utilizan para seleccionar si desea que el
control que reducirse o colocado en una cantidad fija o un familiar. Es decir, si un botón es
de 100 píxeles desde la parte derecha de la ventana de la tarjeta, y se selecciona la
posición de ser una distancia fija, como cambiar el tamaño de la ventana de la tarjeta del
botón permanecerá 100 píxeles por el lado de la derecha borde de la ventana. Si, por el
contrario, se utiliza el valor relativo, y el botón es de 80 por ciento a través de la ventana
de la tarjeta, todavía será del 80 por ciento a través de la ventana después de haberlo
cambiado de tamaño.
[ 101 ]
Building User Interfaces
El primer clic en una de esas barras hará que sea de color rojo sólido de color, lo que indica
que es una distancia fija desde el borde de la tarjeta. Si hace clic de nuevo se convierte en
una forma de onda de color rojo, lo que indica que va a ser relativo.
En la captura de pantalla anterior se puede ver que el botón seleccionado se ajusta para
que sea una distancia fija desde la parte inferior de la tarjeta, y una distancia relativa desde
el lado derecho de la tarjeta. La imagen también muestra los ajustes de escala para el
control.
1. Tomar los primeros cuatro botones y duplicar ellos, por poner otro juego de cuatro por debajo de los
primeros.
2. Seleccione el primero de los nuevos botones y en la sección Geometría de la
paleta Inspector, haga clic una vez sobre la barra vertical, y dos veces en la barra
horizontal, que termina con el estado que se muestra en la imagen.
3. Haga lo mismo con los otros tres botones.
4. Trate de cambiar el tamaño de la ventana de la tarjeta.
¿Qué ha pasado?
Ese fue un gran test rápido, y si todo ha ido bien, verá que cambiar el tamaño de la ventana
de la tarjeta es el posicionamiento de los cuatro primeros botones usando el resizeStack
manejador hemos añadido, y posicionar el segundo conjunto de cuatro botones con el
Gestor de geometría. Con la configuración que hemos utilizado, los resultados deberían ser
lo mismo, excepto que el segundo conjunto de cuatro botones se mantendrá una distancia
fija desde la parte inferior de la ventana de la tarjeta.
Hay una gran cantidad de energía en el Administrador de Geometría, y usted debe echar un
vistazo a las otras habilidades que tiene desde el enlace de referencia que aparece al final de
este capítulo. Pero no resulta ser la mejor manera de lidiar con tamaños de pantalla móviles.
Una vez más, MobGUI al rescate!
[ 102
]
Chapter 3
Layout usando
MobGUI
El enfoque de diseño utilizado por el Administrador de Geometría está orientada a las
aplicaciones de escritorio, donde el usuario es muy probable que cambiar el tamaño de la
ventana a una cantidad desconocida. Con móvil
aplicaciones, la disposición sólo cambia una vez que se carga la aplicación y luego cada
vez que cambia la orientación. Cuando lo hace cambiar lo va a cambiar entre solo dos
tamaños diferentes. Es una situación mucho más sencillo que cambiar el tamaño de
ventana de una aplicación de escritorio a un tamaño arbitrario.
MobGUI utiliza un enfoque diferente para resolver el problema general, que tiene
ventajas cuando se trata de aplicaciones móviles.
[ 103 ]
Building User Interfaces
10. Trate de hacer clic en el Retrato y Paisaje botones. El diseño debe cambiar a lo que había
creado cuidadosamente.
[ 104
]
Chapter 3
¿Qué ha pasado?
Este enfoque de MobGUI, donde se acuerda el diseño de cada uno de los tamaños de
pantalla y orientaciones posibles, sólo parece tener más sentido para el uso móvil. El
Administrador de Geometría es ciertamente más potente y flexible, pero en realidad
quiere cuidadosamente disposición los arreglos diferentes para estar lo mejor posible para
una pantalla de tamaño dado, en lugar de depender de la aritmética para reposicionar
todo para usted.
Otras lecturas
Como se mencionó anteriormente, el Gerente de Geometría tiene un montón de
características de gran alcance. Vamos a estar pegado con el enfoque MobGUI, pero si
usted también está interesado en las aplicaciones de escritorio, eche un vistazo a la lección
en esta página:
http://lessons.runrev.com/s/lessons/m/4067/l/19026-Geometry-Manager
[ 105 ]
Building User Interfaces
Resumen
El truco con herramientas fáciles de usar, tales como LiveCode, es crear aplicaciones
móviles que los usuarios piensan fueron creados con la más difícil de usar herramientas
nativas, como Xcode. Usted puede lograr que debido a la capacidad LiveCode para llamar
a funciones nativas, y porque se puede hacer que las interfaces que parecen correctas.
Llamar a funciones nativas del sistema operativo, con comandos simples LiveCode
Preparación de imágenes que se utilizarán para los estados botón
Haciendo OS botones específicos que buscan mediante la adición de esas imágenes
Creación de iOS controles nativos buscan con MobGUI
Trazado de la interfaz con el código, el Administrador de Geometría y MobGUI
Hasta ahora, estos han sido pequeñas pilas de prueba, para que nos calienta! Lo siguiente
que vamos a ver la estructura de aplicación general, y hacer una aplicación de utilidad de
pleno derecho.
[ 106
]
Uso de datos remotos y medios de
4
comunicación
Al crear una aplicación LiveCode tenemos que pensar acerca de la estructura de la pila, su
código, y los datos que utiliza.
En este capítulo vamos a:
Mira las diversas formas que puede esperarse una pila estructurados
Piensa que el código debe ir
Escribir y leer archivos de texto externos
Crear una aplicación de bloc de notas-como para recordar interesantes archivos de los
medios de comunicación basados en Internet
Pila estructura
Hay dos aspectos en la forma de una pila puede ser estructurada. Uno tiene que ver con
cómo los elementos de interfaz de usuario se organizan, y el otro es en qué lugar de la
jerarquía de una pila se debe colocar el código.
A veces las aplicaciones son totalmente claves determinadas, donde cada pantalla se puede
ver que se crea utilizando el código en el momento que se necesite. O tal vez ya estaría
expuesto los elementos que
se guardan como recursos, y entonces el código de carga esos recursos. En cualquier
caso, la aplicación en su conjunto podría tener lugar en el equivalente de una tarjeta
LiveCode.
Otra posibilidad sería diseñar todas las combinaciones posibles de pantalla como tarjetas
diferentes, o incluso las pilas, e ir a la carta o grupo que se parece a la aplicación debería en
ese momento.
[ 100 ]
Chapter 4
En el primer caso se necesitaría para ejecutar la aplicación y pasar por las acciones de los
usuarios con el fin de ver si el diseño es correcto, después volver atrás y cambiar el código
o los recursos, y vuelva a intentarlo. En el segundo caso, es posible que se enfrentan a
una gran cantidad de combinaciones de diseño.
A medida que comenzamos a hacer que las aplicaciones aquí, vamos a tratar de encontrar
un punto medio, donde vamos a utilizar tarjetas para configurar las pantallas principales que
vamos a necesitar, y luego utilizar el código para mostrar y ocultar otros elementos. El
objetivo es tratar de ser eficiente, y no crear código complejo para la colocación de los
elementos que se pueden hacer rápidamente con la mano, o usar un montón de imágenes
cuando una pequeña cantidad de código podría obtener los mismos resultados.
También puede hacer que las pilas de subprocesos, que a menudo se utilizan para mostrar ventanas de
diálogo, la capacidad de agregar delantero y scripts de espalda, y se puede poner las pilas dentro y fuera de
uso. En general, puede llegar a ser muy confuso!
[ 101 ]
Using Remote Data and Media
Es en gran parte un asunto de estilo personal en cuanto a donde poner los scripts, y muchas
veces usted puede tener un argumento razonable de por qué lo hiciste una determinada
manera. Se podría argumentar que toda la acción que se llevará a cabo debe estar en la
escritura del botón que has seleccionado. Sería más fácil de editar todos los controladores
implicados, y si usted necesita las mismas características en otra pila que sólo tienes que
copiar el botón de ancho. Sin embargo, si usted tenía un número de esos botones en la
pantalla, y era necesario hacer cambios, habría que hacerlo para todos ellos.
Otro argumento sería válido decir que todos los controladores estaría en el nivel de la
pila. Usted tendría entonces un lugar central para hacer cambios, pero usted tendría que
hacer un montón de "if" para comprobar que el control había sido operado.
Es posible que desee volver a utilizar las rutinas que se han desarrollado con el tiempo, y que tienen un
conjunto de pilas que se pone en servicio, cada uno manejando pila sólo un aspecto particular de la tarea en
cuestión. En el mundo de la Programación Orientada a Objetos (OOP) es muy común para extender este
enfoque a un grado loco, con cientos, o incluso miles, de pequeños archivos que manejan cada una ínfima
parte de la aplicación en general.
No vamos a ir a cualquiera de estos dos extremos. En su lugar vamos a tratar de poner el código en el nivel
más bajo
que tiene que ser sin tener que duplicar el código, ya que hacer controles adicionales que
Necesita mismo Código. Para ello vamos a tratar de pensar en el futuro y tratar de detectar
eficiencias que
que podemos utilizar. Veamos un ejemplo ...
Parece ser el nivel más bajo que el código puede ser, y no vamos a ser lo duplicar, hay sólo
un botón del menú principal. Pero, supongamos que desea realizar un seguimiento del
progreso del usuario,
el botón de menú principal no se sabe nada de eso. Por lo tanto, podríamos hacer esto en su
lugar:
en mouseUp
navTo
"principal" fin
mouseUp
[ 103 ]
Using Remote Data and Media
saveNavState sería una función en algún lugar que es el que salva de estado del usuario.
El único problema es que cada una de las tarjetas que hacen que incluye el botón Menú principal
tiene que tener esta navTo manejador en sus guiones. Por lo tanto, vamos a poner el
controlador en el
mainstack guión pila. Con ella a ese nivel que puede manejar las llamadas de cualquier botón en
cualquier tarjeta.
El guión del botón de ayuda podrían ser:
en mouseUp
navTo
"ayuda" fin
mouseUp
Ir a la tarjeta de ayuda también guardar el estado del usuario. Más adelante se podría añadir
un efecto visual como saltar de un lugar a otro, y puede hacer que el cambio en navTo, en
lugar de tener que ir a todos los distintos botones que hacen uso de la navTo manejador.
Consultar un URL
Muy a menudo aplicaciones basadas en web que cargar y guardar datos de secuencias de
comandos del servidor. Eso se puede hacer con las aplicaciones LiveCode también. He aquí
un ejemplo, cuando queremos saber cuál es el precio de cierre fue para Google ayer:
poner url "http://quote.yahoo.com/d/quotes.csv?s=GOOG&f=p"
[ 104 ]
Chapter 4
Al igual que con cualquier tipo de llamadas a un servicio en línea que hay una posibilidad de
que puede tomar algún tiempo para devolver el valor, y en el LiveCode ejemplo anterior
puede ser bloqueado de hacer cualquier otra cosa hasta que los datos fue devuelto. Un
enfoque alternativo sería cargar la URL con el fin de almacenar en caché, y luego mostrar los
resultados cuando se almacena en caché. LiveCode sería capaz de hacer otras acciones
mientras los datos están siendo devueltos. Un script de botón se vería así:
en mouseUp
descargar url "http://quote.yahoo.com/d/quotes.csv?s=GOOG&f=p"
Dirección URL de carga
"Http://quote.yahoo.com/d/quotes.csv?s=GOOG&f=p" con
mensaje "gotit"
final mouseUp
[ 105 ]
Using Remote Data and Media
Publicación de datos puede trabajar de la misma manera. Un juego que envía tu puntuación al
servidor podría hacerlo de esta manera:
el nombre de usuario sendscore, la puntuación
poner url "http://www.mysite.com/hiscores/savescore.php?user = " Y
nombre de usuario y "& valor =" &
partitura en errar si se equivocan
no es "ok" y luego responder a
errar
terminar sendscore
Si el nombre de usuario o cualquier otra parte que los datos sean enviados contiene
espacios en blanco que usted quiere URLEncode la primera ubicación. Si lo hace,
convertir los espacios y otros caracteres especiales en los códigos que seguramente
llegarán a la URL de destino. Esta sería una variante más segura:
el nombre de usuario sendscore, la puntuación
poner "http://www.mysite.com/hiscores/savescore.php?user = "&
nombre de usuario y "& valor =" & partitura en
tPostAddress poner URLEncode url
(tPostAddress) a errar
si se equivocan no es "ok" y
conteste errar sendscore final
[ 106 ]
Chapter 4
se concatena la ruta donde los archivos incluidos se encuentran, el idioma que desea utilizar
(almacenado en la variable prefstext), y el final de los nombres de archivo. Esto le dará
la ruta completa al archivo de idioma cadenas de texto que coincida con el idioma
seleccionado.
[ 107 ]
Using Remote Data and Media
Es posible probar los datos de ahorro en pilas sin hacer una aplicación móvil, para ver si
funciona la técnica de base, y luego después probarlo en un dispositivo real. Una ventaja
para probarlo en el primer equipo es que se puede navegar a la carpeta de documentos, con
el fin de ver la magia que sucede!
[ 108 ]
Chapter 4
poner el nombre de esta pila en el archivo
maestro establecido itemdelimiter a "/"
poner "AppStack.livecode" en el último elemento de masterfile
- Poner specialFolderPath ("motor") & "AppStack.livecode
/" en masterfile
poner specialFolderPath ("Documentos") & "/
AppStack.livecode" en appfile
[ 109 ]
Using Remote Data and Media
Antes de tratar las pilas en un dispositivo o en el simulador, los vamos a tratar como pilas de
escritorio.
[ 110 ]
Chapter 4
¿Qué ha pasado?
Hemos creado nuestra aplicación para copiar la pila principal de la aplicación en el área de
documentos en el dispositivo, por lo que vamos a ser capaces de hacer cambios y guardar aquellos
éxito. Si le pasó a probar en iOS y Android habrán visto que buscan caminos muy diferentes para la
pila. LiveCode se encarga de encontrar las carpetas especiales para nosotros.
[ 111 ]
Using Remote Data and Media
[ 113 ]
Using Remote Data and Media
12. Seleccione el grupo y en el Inspector LiveCode objeto regular los ajustes básicos
darle un nombre al grupo de Común, y comprobar el comporta como un botón
de fondo.
13. Establezca el nombre de la tarjeta para el explorador.
14. En la ventana MobGUI, haga clic en el código preOpenCard botón Añadir a tarjeta guión.
15. Hacer una nueva tarjeta, el nombre Links, y haga clic en el botón Añadir preOpenCard
nuevo.
16. Haga lo mismo con otras tres cartas, para ser nombrado Texto, Medios de
comunicación, y Keepers.
¿Qué ha pasado?
En el nombramiento de los botones y las tarjetas de la misma, hemos sido capaces de ir a las
cinco cartas utilizando el script asociado al grupo. Además, se emplearon el MobGUI
uTabText y utext propiedades para establecer el nombre de la barra de navegación para
que coincida con el nombre de la tarjeta que había saltado al. La init línea entrará en su
propio momento de escribir los guiones de la tarjeta.
[ 114 ]
Chapter 4
La tarjeta Browser
Ahora vamos a añadir algunos controles y secuencias de comandos a la primera tarjeta, para crear
este navegador web mini:
El control del navegador nativo tiene muchas propiedades, acciones y mensajes asociados
con ella, y usted debe leer las últimas notas del lanzamiento para ver la lista completa.
Puede abrir tanto las notas de la versión para iOS y Android de las Notas de la versión en
el menú Ayuda LiveCode. Para nuestra aplicación, sin embargo, sólo necesitaremos unos
pocos de sus habilidades.
[ 115 ]
Using Remote Data and Media
7. Más adelante les estaremos enviando un init mensaje a las tarjetas. Para la
tarjeta Browser podemos usar eso como una manera de restaurar la página web
previamente elegido:
en init
mundial gPageURL
gPageURL si no está vacío,
establecer el uURL de grupo "Browser" para
gPageURL
más
[ 116 ]
Chapter 4
establecer el uURL de grupo "Browser" a
"http://www.google.com/" End If
terminar init
[ 117 ]
Using Remote Data and Media
10. ¿Es un ahorro, y otro ensayo, para ver la tarjeta de navegador en acción.
¿Qué ha pasado?
Ajuste de la uURL del control del explorador a la utext del control de texto fue
suficiente para que la función de navegador, pero algunos de lo que se hizo fue
simplemente en preparación para lo que
vamos a necesitar en las otras tarjetas. En particular, se utilizó el LiveCode ordinario poner
url comando para guardar una copia de la página web código HTML en una variable global, y
que será necesaria cuando empezamos a extraer enlaces y multimedia de la página.
La tarjeta de Enlaces
Los enlaces, texto y tarjetas de medios se va a tomar la fuente de la página que se
almacena en la variable global gPageHTML, y extraer los fragmentos de interés de la
misma. ¿Cómo va a hacer eso?
http://en.wikipedia.org/wiki/Regular_expression
Ahora, el análisis de código fuente HTML es exactamente lo que quiero hacer aquí, y una
solución al problema consiste en mezclar y combinar, mediante otro texto LiveCode de
juego y capacidades de filtrado que hacer la mayoría del trabajo. Aunque no es
[ 118 ]
Chapter 4
exactamente regexp, LiveCode puede utilizar expresiones regulares en parte de su juego y
funciones de filtrado, y son un poco más fácil de entender que toda regla regexp. Por lo
tanto, vamos a empezar con los ...
[ 119 ]
Using Remote Data and Media
En el texto de la página web será el texto Vínculo frase que el usuario verá. Si el usuario
coloca el cursor sobre el texto, el cursor cambiará a un cursor dedo señalador. Cuando el
texto se hace clic en el vínculo, la página volverá a cargar con la URL que aparece en la href
parte de la etiqueta.
El ejemplo anterior muestra la ruta completa al foro de soporte. Estas son algunas de las
formas en que la localización de la tela misma podría ser written un enlace en la página:
http://www.runrev.com/support/forum/
/ Support / forum /
support / forum /
.. / Support / forum /
El primero te lleva allí no importa donde se encuentre en ese momento. El segundo te lleva
allí si estás en algún otro lugar en el sitio runrev.com. El tercero será correcto mientras se
encuentra en el nivel raíz de runrev.com, y el último ejemplo sería trabajar desde dentro de
uno de los directorios de nivel de otros tubérculos en el sitio.
Con regex puede crear una expresión extravagante que se ocupa de todas las variaciones
posibles de cómo los vínculos se encuentran en el origen de la página, pero aún así no nos
daría las rutas completas que necesitamos.
Toma las cosas con calma, podemos reducir la fuente de la página entera a un conjunto de líneas de a
href entradas, y se extrae el URL de cada línea, y finalmente tomar las variaciones
anteriores y convertirlos en direcciones URL de ruta completo.
[ 120 ]
Chapter 4
4. Edite el script de pila, y crear una función para getLinks. Comience con lo que
acaban de volver lo que se enviarán:
función getLinks pPageSource
retorno pPageSource
getLinks finales
9. El "*" caracteres son caracteres comodín, por lo que la lista se reducen a líneas que
contienen tanto a href y / A>. Pruebe el botón de nuevo.
10. Ahora verás que hay líneas sólo con los enlaces en ellos, pero todavía incluyen la
basura a ambos lados del mismo enlace. Lo que necesitamos es entre las comillas
primero y segundo, y el uso de la itemdelimiter podemos llegar a esa parte. Añada
las siguientes líneas:
establecer el itemdelimiter citar
repetir con a = 1 para el número de líneas en
pPageSource ponen elemento 2 de línea de una de
pPageSource en línea de un
pPageSource
Fin de repetición
11. Si ahora hace clic en el botón que debe obtener una lista de sólo la parte URL de
[ 121 ]
Using Remote Data and Media
cada línea. Pero nótese que la mayor parte de los enlaces de comenzar con /, y no
http.
[ 122 ]
Chapter 4
12. Realizar una nueva función en el script de pila que va a cambiar los enlaces para ser la
ruta completa:
función getPath pPageURL, pLinkURL
final getPath
13. Ahora añadir el código necesario para hacer frente a las variaciones de URL,
comenzando con el caso en que se trata de una ruta completa:
si pLinkURL contiene ":/ /" y
luego volver pLinkURL
End If
14. Si usted recuerda, antes nos salvó la URL de la página principal en una
variable global, gPageURL. Para el caso en que el vínculo es relativo root
(que comienza con "/") queremos combinar la ubicación de host y la URL
del enlace:
establecer el itemdelimiter a "/"
si char 1 de pLinkURL es "/" y luego
volver temas de 1 a 3 de pPageURL y pLinkURL
más
15. Cuando ese primer carácter no es "/", puede comenzar con ".. /" para aumentar un
nivel en la estructura de directorios. Borrado de la última parte de la URL de la
página que nos dará lo que necesitamos para combinar con la URL del enlace:
si char 1 a 3 de pLinkURL es ".. /" y
luego borrar el último elemento de
pPageURL borrar el último elemento
de pPageURL delete char 1 a 2 de
retorno pLinkURL pPageURL y
pLinkURL
más
16. En los demás casos se combina la URL de la página y la URL del enlace:
eliminar el último elemento de pPageURL
volver pPageURL & "/" & pLinkURL
End If
End If
17. Por último, si todos esos cheques no nos devolverá una cadena vacía, por lo que
esta dirección URL extraño vínculo estructurado no se enciende para confundirnos
más tarde:
volver ""
getPath
final
[ 123 ]
Using Remote Data and Media
18. Para obtenerel getLinks funcionar para utilizar el getPath función que
necesitamos para realizar un cambio en la secuencia de comandos se muestra
en el paso 10:
repetir con a = 1 para el número de líneas en pPageSource
poner getPath (gPageURL, punto 2 de la línea A de
pPageSource) en una línea de pPageSource
Fin de repetición
¿Qué ha pasado?
En las etapas que hemos desarrollado una función que puede encontrar los enlaces
en el texto fuente de una página web, terminando con un conjunto de direcciones
URL de ruta completo que podemos presentar al usuario.
en mouseUp
poner "http://www.runrev.com/" en gPageURL
poner gPageURL URL en el campo 1
poner getLinks (campo 1) en la
final mouseUp campo 2
Si trata del botón, verá una lista de 12 URLs ruta completa en el segundo campo. Si
funciona correctamente, copie las dos funciones de la pila y la línea de declaración global,
y pegarlas en el script de pila de la pila WebScraper.
[ 125 ]
Using Remote Data and Media
en init
si la plataforma es "iphone" o es la plataforma "android" y
luego poner getLinks (gPageHTML) en gLinks
si el número de líneas en gLinks = 0,
entonces contesta "No hay enlaces en esta
página!"
más
mobilePick gLinks, 0
si el resultado> 0 entonces
poner el resultado en tLinkLine
poner línea tLinkLine de gLinks en
TLINK tarjeta go "Browser"
establecer el utext de grupo "url" para TLINK
establecer el utext del grupo "NavBar" a "Browser"
establecer el uURL de grupo "Browser" para el grupo de
utext
"Url"
mobGUITouch el identificador largo de grupo
"BrowserButton" end if
End If
End If
End init
¿Qué ha pasado?
El guión tarjeta entramos hace el mismo trabajo que el botón de la pila de prueba, ya que las
llamadas a las funciones de la pila para obtener una lista de enlaces. En lugar de poner la lista
en un campo llano, se utilizó LiveCode capacidad de abrir un control de selector nativo,
[ 126 ]
mediante el uso de la línea:
mobilePick gLinks, 0
Chapter 4
[ 127 ]
Using Remote Data and Media
Los parámetros necesarios de esa función es una lista de elementos que mostrar, y la
posición de índice de la de seleccionar. Al participar en 0 no está en efecto no hay ningún
elemento seleccionado. El resultado que regresa del selector es la posición de índice del
elemento seleccionado, y podemos usarlo para buscar la línea correspondiente en la
variable gLinks.
Las líneas restantes nos llevará de vuelta a la tarjeta del navegador, establecer la
dirección URL a cargar, y también asegurarse de que el botón de tabulación
BrowserButton está resaltado.
La tarjeta de Texto
Hacer el trabajo de la tarjeta texto será mucho más sencillo, pero incluirá una línea
regular expresión increíblemente complejo, que figura en esta página web:
http://stackoverflow.com/questions/3951485/regex-extracting-readable-
no-código-texto-y-urls-de-html-documentos
3. Intente hacer clic en el botón que acaba de hacer. Usted debe ver a su segundo campo llenan
sólo las partes del texto de la página web.
4. Copie la función y volver a la secuencia de comandos de pila
WebScraper. Pegue la función allí.
5. Ir a la tarjeta de texto de la pila, y desde la ventana MobGUI arrastrar un texto de líneas
múltiples
[ 128 ]
Chapter 4
controlar en la tarjeta. Establezca su nombre por el de PageText.
6. Cambiar el tamaño del control para rellenar el área entre la barra de navegación y el TabBar.
[ 129 ]
Chapter 4
en init
si la plataforma es "iphone" o la plataforma es "android",
entonces mobFieldSet "PageText", "texto", getText
(gPageHTML)
End If
End init
¿Qué ha pasado?
Esa expresión regular enormemente larga corriendo a través de la fuente de la página web
y eliminar cualquier cosa que fuera guión, el estilo, o simplemente información de la
etiqueta, dejando solo las partes del texto. Pero eso lo deja con un montón de personajes
de repuesto de salto de línea y caracteres de tabulación, que nos fuimos a eliminar con la
función replace LiveCode. El texto final no sea perfecto, pero puede utilizar las funciones
estándar de texto para móviles para copiar partes de él para su uso en otras aplicaciones.
[ 131 ]
Chapter 4
4. Haga clic en el botón, y usted debería ver una lista de las rutas completas a las
diversas imágenes de la página web.
¿Qué ha pasado?
El enfoque tortuoso consistía en encontrar en cualquier lugar que cualquier medio de
comunicación de interés fue mencionado y añadiendo un asterisco y carácter de retorno con
[ 132 ]
Using Remote Data and Media
el fin de asegurarse de que el enlace se puede identificar fácilmente, y al final de una línea
única. Entonces cada una de estas líneas se envió a otra función, removeLeaders, para
eliminar cualquier otro texto que fue anteriormente en la línea de que el inicio del enlace.
Finalmente, el mismo getPath función que usamos cuando los enlaces de extracción se
utilizó para darnos rutas completas de los archivos multimedia.
[ 133 ]
Chapter 4
Ahora que tenemos una lista de enlaces a medios tendremos que agregar los controladores
de nivel de tarjeta necesarios para presentar la lista al usuario, y para cargar su elemento
multimedia seleccionado en la ventana de la tarjeta.
en init
si la plataforma es "iphone" o es la plataforma "android" y
luego poner getMedia (gPageHTML) en gMediaList
si el número de líneas en gMediaList = 0,
entonces contesta "No hay ningún medio en
esta página!"
más
establecer el itemdelimiter
a "/" puesto vacío en
tMediaNames
repetir con a = 1 para el número de líneas en gMediaList
poner el último elemento de una línea de gMediaList
en línea de un
de tMediaNames
Fin de repetición
mobilePick tMediaNames,
1 si el resultado> 0
entonces
poner el resultado en tMediaLine
showMedia línea tMediaLine de final si
gMediaList
End If
End If
terminar init
3. A diferencia de los enlaces, construimos una lista de sólo la parte del nombre de
archivo de la URL, para mostrar en un selector natural, y cuando se ha
[ 134 ]
Using Remote Data and Media
seleccionado algo que llamamos un showMedia función del guión pila.
4. Edite el script de pila.
[ 135 ]
Chapter 4
6. Pruebala aplicación.
7. Usted puede comenzar con la página google.com, pulse el botón ficha Medios para ver una lista de
las imágenes utilizadas en esa página.
8. Seleccione una imagen de la lista y pulse Hecho.
9. La imagen debe aparecer en la tarjeta.
10. Volver a la tarjeta del navegador, y Change la URL http://www.apple.com/.
11. Apple normalmente incluye algunos enlaces miniaturas de vídeo en la página
principal. Pulse sobre uno de ellos, para que pueda ver el reproductor de vídeo de
gran tamaño. Pero no se juega!
[ 136 ]
Using Remote Data and Media
12. Pulse el botón ficha Medios, para ver una lista de todos los medios de comunicación en
esa página.
13. Desplácese hacia abajo en la lista, en busca de uno de los temas más
mencionados, que parece que podría ser ese video.
14. Seleccione esa opción y pulse Hecho. El video debe cargar y reproducir en la tarjeta.
15. Utilice el botón Hecho el controlador de vídeo cuando haya terminado de ver el
video, para volver a la tarjeta de memoria.
16. Puede presionar el botón de ficha Medios de nuevo para que vuelva a aparecer selector.
17. Volver a la tarjeta del navegador, e introduzca una URL que contiene ejemplos de MP3
archivos.
http://www.ntonyx.com/mp3_songs.htm es un ejemplo de
ello.
18. Pulse el botón ficha Soportes para volver a la tarjeta de memoria, con la lista de
todos los medios de comunicación en esa página, que en este caso será
principalmente archivos MP3.
19. Seleccione uno de los archivos MP3 de la lista, y pulse Hecho. El MP3 deben jugar
en el mismo jugador que el vídeo que se reproduce in
¿Qué ha pasado?
En este ejemplo hemos hecho uso de tanto un control LiveCode estándar, la imagen, y
también un control nativo, el reproductor de vídeo. LiveCode se encarga de la puesta en
marcha del jugador, y con
la muy sencillo jugar videoname vídeo sintaxis, hemos sido capaces de invocar el
jugador nativo. Era capaz de reproducir tanto archivos de vídeo y audio.
[ 137 ]
Chapter 4
[ 138 ]
Using Remote Data and Media
5. Seleccione los cuatro controles y agruparlos. Marque la casilla que dice comportarse
como un
fondo. Asigne un nombre al grupo como keeperbuttons.
6. Edite el script del nuevo grupo. Añadir esta refrescar handler:
el refresco
establecer el itemdelimiter a "."
si char 1 del último elemento de campo "mediaURL" es "m" y
luego muestra colectiva "Media Play"
más
esconder grupo "Media
Play" showMedia campo
"mediaURL"
End If
End
actualizaci
ón
7. Ahora tenemos que volver atrás y añadir algunas cosas a la tarjeta de memoria.
8. Vaya a la tarjeta de memoria, y agregue un botón MobGUI. Establezca el
nombre y la etiqueta al Mantenga Media.
9. Un truco es que los medios de comunicación jugarán pantalla completa en pantallas
más pequeñas, y por el momento se ve la Torre del Homenaje botón Media el video
ya ha desaparecido. Podemos resolver esto de guardar la URL de la última partida
que figure medios de comunicación en una variable global.
10. En el guión de tarjetas multimedia, modifique el init función para que las líneas
posteriores leer:
si el resultado> 0 entonces
poner el resultado en
tMediaLine
poner tMediaLine línea de gMediaList en
gLastMedia showMedia gLastMedia
End If
[ 139 ]
Chapter 4
11. Cambie la línea global de declaración de variables para incluir la gLastMedia variable.
[ 140 ]
Using Remote Data and Media
12. Ajuste el Touchstart manejador de la Torre del Homenaje botón Multimedia para ser:
en Touchstart PID
mundial
gLastMedia
mobGUITouch el identificador
largo de la última carta que
me vaya
si el campo "mediaURL" no está vacío,
la nueva tarjeta
End If
gLastMedia poner en el campo
"mediaURL" ahorrar pila
"WebScraper"
enviar "refresh" para agrupar
Touchstart fin "keeperbuttons"
13. Pruebala aplicación. Utilice la tarjeta de explorador para cargar una página con un
montón de imágenes, vídeos o sonidos en él, y vaya a la tarjeta de memoria para
ver los listados.
14. Seleccione cualquier elemento, seguido de Hecho.
15. Si te gusta la imagen, sonido o video, use el botón Mantener Media para ir al final
de la URL de la pila para los medios de comunicación para ser salvos.
16. Elegir más bits de los medios de comunicación, y mantenerlos.
17. Vaya a la sección Keepers y utilizar los botones Siguiente y Anterior para navegar a
través de los elementos que mantienen.
18. Las imágenes deben aparecer de forma automática, y el vídeo y el audio se
puede iniciar con el botón de reproducción de medios.
¿Qué ha pasado?
Hemos añadido la última característica de nuestra aplicación, un juego de cartas donde se puede ir a
ver los trozos de papel que se optó por conservar.
[ 142 ]
Using Remote Data and Media
¿Y ahora qué?
Es muy cierto que si usted sigue cuidadosamente todos los pasos de este capítulo, y en
efecto, que todos los pasos eran perfectos, todavía no se tiene una aplicación lista para ser
presentada a las tiendas de aplicaciones! Debe haber una pantalla de bienvenida, menú
principal y los iconos de los botones de ficha. Un poco de amor de un diseñador gráfico!
Característica en cuanto a que sería bueno que las imágenes que mantienen podría hacer
zoom y panorámicas.
Resumen
Algo de lo que hemos cubierto aquí es menos glamorosa, sobre todo acerca del
procesamiento de texto HTML, pero sí que también utilizan una serie de características
móviles, incluyendo:
Realización y control de un navegador web
El uso de un selector nativo para presentar listas
Creación de un campo de desplazamiento nativo, que tiene todas las capacidades
normales del sistema operativo específicos
Reproducción de vídeo y audio con el reproductor multimedia nativo
El siguiente capítulo es casi en su totalidad sobre cómo tratar con los gráficos, así que nos
aseguraremos de utilizar alguna imagen manipulando los gestos, y se podía volver a la
aplicación WebScraper más tarde para agregar las mismas características que las tarjetas
de Guardianes.
[ 143 ]
Chapter 4
[ 144 ]
Realización de una aplicación
5
Jigsaw Puzzle
Examinar la forma en que almacena los datos de mapa de bits LiveCode en un objeto de
imagen
Encontrar una manera de utilizar un único mapa de bits en lugar de 50 botones
Hacer un mapa de detección de colisiones
Crear una aplicación de rompecabezas que se aprovecha de algunas funciones del
dispositivo móvil
Making a Jigsaw Puzzle Application
Se podría, de hecho, comenzar esa línea con var pixelcolor: uint, pero aquí estamos viendo
las principales diferencias, y no las rarezas de tener un lenguaje de programación
fuertemente tipado! En Director, que, al igual LiveCode, utiliza variables basadas en 1, debe
decir:
pixelcolor imagevariable.getPixel = (20,15)
Una vez más no hay necesidad de escribir variable, o incluso un punto y coma al final de la
línea. A pesar de que una digresión, Flash también no necesita el punto y coma al final, por lo
menos, usted no tiene que escribirla usted mismo. Flash sabía lo que quería decir! Volviendo
al punto ...
En LiveCode cada píxel de una imagen es representada por cuatro bytes, que tiene acceso
como si fueran un solo byte. El rango de valores de un byte es de 0-255, y almacenar dichos
valores, especialmente el valor "0", en variables de carácter no funciona bien. Por lo tanto,
es necesario convertir el valor de carácter en un valor numérico antes de hacer uso de ella.
El problema básico es que aunque el valor numérico se almacena en una variable, cuando
se llega a hacer cálculos sobre el mismo LiveCode querrá trabajar en aritmética de base 10,
y no en la forma binaria dentro de la variable. Usted tiene que convertir la variable en algo
que se puede procesar, mediante el charToNum función.
Así que ¿por qué no una variable de caracteres como ceros, usted pregunta!
Pues bien, en los primeros días de las computadoras personales del lenguaje
de programación predominante fue Pascal. En Pascal una variable que
contiene una cadena literal necesitaba tener una manera de saber cuánto
tiempo la cadena era. El primer byte de una cadena Pascal almacena la
longitud de la cadena, que estaba bien, hasta 255 caracteres, y en esos días
Se creía más probable de como tanto como cualquiera necesitaría siempre!
En la vida real, sin embargo, las cadenas pueden ser de más de 255
caracteres. Este apartado sólo es más de 900 caracteres de longitud. Para
solucionar este problema el lenguaje de programación C utiliza un cero para
indicar el final de una cadena. Usted podría tener un millón de caracteres en
una fila, sin embargo, sólo el último sería un cero. Valores RGB no se
preocupan por las limitaciones de cadenas de C, y hay ceros en todo el lugar,
que es por eso que lo convierte en un valor numérico, tan pronto como nos
sea posible.
[ 132 ]
Chapter 5
Así es como el píxel ejemplo anterior puede ser recuperada en LiveCode, si lo quería como
un 24 - bit de valor:
poner getPixel ("imagen de prueba", 20,15) en pixelcolor
En la cara de ella, éste es uno de los pocos casos en que el camino se hace en LiveCode es
considerablemente más largo que en otros idiomas. Sin embargo, muy a menudo que
realmente necesita los valores de rojo, verde y azul del pixel, y en los demás idiomas que
usted tiene que tomar medidas adicionales para extraer esos valores.
Los pasos adicionales necesarios para que el número devuelto es un valor de 24-bit RGB no
son gran cosa, ya que LiveCode se extiende fácilmente por sus propias funciones. Si usted
necesita el valor de 24 bits, utilice la función anterior y se le ha añadido un getPixel
funcionar a la lengua LiveCode. Usted todavía tiene que hacer los cálculos para obtener sólo
el valor de rojo. Tal vez algún día LiveCode han construido en getPixel función que
funciona más rápido que su propia función. El número de 24-bit regresó aquí es en realidad
representan con tres cifras decimales, no como un
24-bit valor binario, pero todavía se conoce generalmente como "bit 24".
Una posibilidad es que el valor no sirven bien a su propósito suficiente. Cuando se habla de
transparencia alfa a veces significa que sea transparente, como podría ser el caso en una
imagen GIF. Otras veces puede significar translúcido, donde es parcialmente transparente.
Para resolver la ambigüedad de este problema, LiveCode tiene otras dos propiedades de una imagen,
maskData y alphaData:
Estas propiedades de la imagen todavía tiene toda la final filas a fin, y usted todavía tiene
que hacer el cálculo para encontrar donde el valor de un píxel dado alfa se almacena.
Con maskData se obtiene un conjunto de valores para cada uno de los píxeles. Para cualquier
valor distinto de 0, el píxel es visible.
Más adelante en este capítulo vamos a estar haciendo uso tanto de maskData y
alphaData, y nos referiremos a la 0-255 alphaData valor como su transparencia, y el cero
o distinto de cero maskData valor como su máscara.
[ 134 ]
Chapter 5
Usaremos la misma pila para ilustrar varias cosas, y al final podemos
atrevernos a probar en un dispositivo móvil!
[ 135 ]
Making a Jigsaw Puzzle Application
7. Tenga en cuenta que las dos líneas están comentadas. LiveCode sólo se quejaría si
seguimos pidiendo getPixel, antes de haber creado esa función!
8. Edite el script de pila. Añadir la getPixel función, que es muy parecido al que se
muestra en la sección de formato de datos de imagen al principio de este
capítulo:
función getPixel PImage, px, py
poner la imagen de imageData del PImage en
tImageData poner el ancho de la imagen en PImage
tWidth
poner ((pY-1) * tWidth + (pX-1)) * 4 en tStartChar
poner charToNum (char tStartChar 2 de tImageData) en
charToNum Tred poner (char 3 tStartChar de tImageData) en
tGreen poner charToNum (char tStartChar 4 de tImageData)
en cambio tBlue Tred, tGreen, tBlue
final getPixel
[ 136 ]
Chapter 5
¿Qué ha pasado?
Hicimos un caso ejemplo muy simple de utilizar el color de un píxel en una imagen, en este caso para
colorear una muestra. Como configurar el backgroundColor de un gráfico requiere
redvalue, greenvalue, bluevalue, no lo necesitamos para convertir los valores de la
imagen a un número de 24-bit, y el getPixel función podría devolver Tred, tGreen,
tBlue.
Ahora, no hay realmente ninguna ventaja a la forma en que lo hicimos en comparación con el
construido en el
mouseColor función. Pero por lo menos nos dio la getPixel funcionar una prueba!
1. Hacer un nuevo campo llamado estados. Encuentra una lista alfabética de los
50 estados de EE.UU. para pegar en el campo. O bien, escriba en ellos!
[ 137 ]
Making a Jigsaw Puzzle Application
2. Hacer otro campo, ajuste el tamaño del texto a ser 24, y el tamaño del campo para
ser lo suficientemente amplia como para "New Hampshire" para encajar (sólo las
palabras, no en todo el estado!). Nombre del campo como Estado.
[ 138 ]
Chapter 5
3. Si usted tiene Adobe Illustrator, abra el archivo SVG. Si no es así, abrirlo con GIMP.
4. En orden alfabético, llene en cada estado con un color donde los valores de rojo,
verde y azul que coincida con el número de línea de ese estado + 100. Estamos
añadiendo 100 para que los tonos de gris que veremos no es tan negro.
5. Continúe a través de todos los estados. Así es como va a empezar a mirar en Illustrator,
donde
Idaho está a punto de ser de color 112.112.112:
[ 139 ]
Making a Jigsaw Puzzle Application
7. Si está utilizando Illustrator, establecer el fondo para ser el blanco, y el ser anti-aliasing
para
Ninguno. Con GIMP, asegúrese de que el PNG se guarda sin un canal alfa.
8. Escriba la línea seguida por la tecla Enter en el cuadro de mensaje:
establecer el screengamma a 2,23
11. Apunte a los diferentes estados, por lo menos los que han coloreado pulg El nombre del estado
debe aparecer en la estado campo.
¿Qué ha pasado?
Para este caso sólo hay que fijarse en el valor del canal rojo para el píxel bajo el cursor.
(Los valores de verde y azul son los mismos, ya que se utilizó un valor de color gris.) En vez
de escribir otra función para obtener sólo la parte roja de los datos, se reutiliza la
existente getPixel función, pero sólo entonces se dio cuenta del primer elemento de
la función devuelta. Ese número, después de restar los 100 que hemos añadido para
hacer las sombras
No seas tan negro, se utilizó como valor de búsqueda para obtener el nombre del estado
correspondiente.
[ 140 ]
Chapter 5
R. Sí. b.
No.
c.Depends sobre la naturaleza de la imagen.
Con los juegos de laberinto otros, como esas tablas inclinadas mármol laberinto, hay que detectar
las colisiones
en un grado mucho más fina. Un motor de física en toda regla podría hacerse cargo del problema,
pero es
posible obtener algunos resultados interesantes almacenando el laberinto como una imagen, y el
control de la
píxeles que están delante de su personaje, o de mármol como el caso puede ser.
En un juego con todas las funciones que sería mejor utilizar el imageData del, o tal vez el
alphaData, de modo que usted pueda saber cuándo se va a golpear algo, y del valor que
lee usted también puede decir qué es lo que han pasado. Por ejemplo, en el juego del
laberinto de mármol que usted necesita saber cuando usted ha pasado más de un agujero.
Para esta prueba siguiente, sin embargo, sólo tendremos que utilizar maskData, y ver qué
podemos hacer al respecto no golpear a lo que está delante de nosotros.
[ 141 ]
Making a Jigsaw Puzzle Application
2. Para crear la imagen que vamos a necesitar, escriba lo siguiente en el cuadro de mensaje:
Importar resumen de la rect rect de esta pila
[ 142 ]
Chapter 5
4. Haga clic en la imagen que se ha creado y seleccione Editor de. Esto abrirá la
imagen en el editor de mapa de bits que ha configurado en Preferencias |
General.
5. En la ventana de su editor de imágenes de Capas, duplicar la capa inicial.
6. Hacer una nueva capa transparente, bajo la capa de la imagen duplicada.
7. Eliminar la capa original.
8. Use Varita mágica del editor para seleccionar el espacio en blanco de la imagen de la
carta en la capa con la imagen en el mismo (no de la capa transparente). Borrar el
área seleccionada, para revelar la capa transparente.
9. Invertir la selección, y la rellenamos con un color oscuro (el color no importa, es
sólo para que podamos ver dónde están los agujeros son).
10. Tómese su tiempo para llenar los vacíos pequeños. Además, colocar un borde grueso alrededor del
exterior de la imagen. La siguiente captura de pantalla muestra cómo se ve la tarjeta, y cómo la
imagen de la instantánea debe ser por ahora:
[ 143 ]
Chapter 5
¿Qué ha pasado?
Acabamos de hacer un hipódromo muy extraño mirando! En un juego de carreras real de arriba hacia
abajo con cuidado diseñaría un hipódromo bonita, y hacer un duplicado de la imagen que desea
utilizar para la detección de colisiones. En el duplicado que borraría las partes de la imagen que
representa el que los coches se les permite conducir, y luego llenar el resto de la imagen con un color
plano. Los jugadores verían el hipódromo bonita, y debajo sería la versión duplicada de color plano
que se utiliza para la detección de colisiones.
Ahora tenemos un coche que se conduce por el campo que hemos hecho.
[ 141 ]
Making a Jigsaw Puzzle Application
Tuyo puede ser incluso mejor que eso, si te gusta! Guárdelo como un archivo PNG de 24-bit que tiene la
transparencia. Ok, enciendan sus motores ...
2. Duplicar la imagen tantas veces como quieras (el script de abajo puede manejar hasta
100 coches), y el nombre de cada uno en la secuencia siguiente, car2, car3, y así
sucesivamente.
3. Podría decirse que el camino correcto orientado objeto de proceder sería colocar
algunas funciones en las imágenes, y algunos en el guión carta o grupo, pero por
razones de rendimiento que vamos a poner todo en el guión de la pila. Abra el
script pila.
4. Añada una línea para las variables globales que vamos a necesitar:
gBackdropMaskData mundial, gMaskWidth, gSpeeds, gMovingCars,
gMaskWidth
5. Vamos a añadir un botón arrancar / parar pronto, lo que se llama a una función para
alternar si los vehículos están en movimiento o no. Agregue la función de palanca en la
escritura de pila:
en startStopCars
gMovingCars si es cierto,
entonces poner en falso
gMovingCars
más
poner el maskData de imagen "telón de fondo" en
gBackdropMaskData poner el ancho de la imagen de "telón de
fondo" en gMaskWidth
setSpeeds
poner en verdadero gMovingCars
enviar moveCars a esta tarjeta en dos
finales garrapatas si
startStopCars finales
[ 143 ]
Making a Jigsaw Puzzle Application
la salida
final de la
repetición si
terminar
setSpeeds
final de
repetición
[ 145 ]
Making a Jigsaw Puzzle Application
más
poner min (3, tCarSpeed + .05) en el punto 1 de la
línea de un gSpeeds
la salida
final de la
repetición si
Fin de
repetición
establecer la locomotora de carname imagen con el punto
1 de la locomotora de carname imagen + (tLookAheadX-
ítem 1 de la locomotora de la imagen
carname) / 10, artículo 2 de la locomotora de
carname imagen + (tLookAheadY-tema 2 de la
locomotora de carname imagen) / 10
establecer el ángulo de carname imagen a 360 - punto 2
de la línea de un gSpeeds / PI * 180
más
la salida
final de la
repetición si
poner fin a
la repetición
de desbloqueo
de pantalla
gMovingCars si es verdad entonces enviar moveCars a esta
tarjeta en 2 ticks
moveCars finales
Anticolisión
Tómese un momento para mirar a lamoveCars manejador. ¿Qué está haciendo?
Usted sin duda ha oído hablar de la detección de colisiones, aquí es donde
usted tiene el código que reconoce cuando un objeto ha colisionado con otro
objeto, o en la pared, tal vez. Usted podría desencadenar una explosión,
colisión o el sonido cuando eso sucede. Para nuestro ejemplo, a pesar de que
en realidad no quieren que las cosas chocan entre sí, queremos que los autos
a su vez antes de que hubiera chocado. Para cada vehículo, hasta 100 de
ellos, miramos hacia el futuro del coche para ver si se puede chocar con los
bordes de la asignatura. Si se va a hacer, así que cambiar la dirección en la
que el coche se dirige, en repetidas ocasiones, hasta que un fuerte sentido de
avance se encuentra.
10. Seleccione la imagen de fondo y elija Enviar al fondo del menú Objeto.
11. Podría ser una buena idea hacer clic en Save!
[ 147 ]
Making a Jigsaw Puzzle Application
12. Haga clic en la opción Ejecutar / Examinar herramienta, y luego en el botón Start /
Stop Cars, para ver la unidad de coches alrededor de la interfaz. La siguiente
captura de pantalla muestra cómo se ve cuando
20 coches se están moviendo sobre:
13. Tenga en cuenta que usted puede seguir para apuntar a partes de la imagen que
se carga por primera vez (el logo LiveCode en el ejemplo anterior), para ver la
muestra para el cambio de color de la derecha. Además, apunta a los diferentes
estados de los EE.UU. debe cambiar el texto en el estado campo que ha
creado.
¿Qué ha pasado?
Después de haber utilizado imageData del para implementar un selector de color, y para
actuar como botón varias áreas, se procedió a utilizar la maskData de la imagen como un
mapa de colisión. Hay una gran
poco de aritmética detrás de hacer que los coches se mueven de manera inteligente, y se
podía ir a cambiar algunos de los números para obtener un comportamiento diferente. O
usted podría tomar un descanso, y prepárate para hacer un rompecabezas!
[ 148 ]
Chapter 5
Ir a pedazos ...
La técnica general que vamos a utilizar es tomar un conjunto de archivos PNG que tienen un
canal alfa agradable en ellos (que crea los bordes de la pieza del rompecabezas), y luego
vuelva a colocar los datos de píxeles reales con una imagen de nosotros mismos. Lo primero
que necesitamos es, pues, algunos archivos PNG.
Si usted hace una aplicación móvil comercial, ya sea crear sus propias formas de puzzle o
comprar una imagen libre de derechos. Para los prototipos se pudiera tomar cualquier
imagen de la web, y obtener las bases que van y vuelva a colocar las imágenes con más de
alta calidad que le hahe comprado. Aquí estamos utilizando una imagen de vista previa de
http://depositphotos.com/ que también vende versiones más altas de calidad.
Cuando usted tiene versiones de alta calidad que usted puede desear para crear cada
pieza del rompecabezas, hasta que toquen entre sí perfectamente. Aquí estamos usando
una imagen de vista previa, y se seleccionará la parte interior de cada pieza, y crear los
archivos PNG de aquellos. Habrá pequeños espacios entre las piezas, pero por lo menos
es muy rápido de preparar las imágenes que va a necesitar.
[ 150 ]
Chapter 5
10. En la pila rompecabezas, vaya a Archivo | Importar como Control | Imagen, e importar
todas las 14 imágenes.
[ 152 ]
Chapter 5
12. Nombra las imágenes en una cuadrícula como la moda. La parte superior izquierda de la
pieza de mano se denominaría p
1 1, la parte superior derecha pieza de borde lateral se denominaría p 11 1 (Había
11x8
piezas en la zona de 900x662), y la parte inferior derecha de la pieza lateral tendría un
nombre de p 11 8.
13. Seleccione todas las piezas y agruparlas. Asigne un nombre al grupo como piezas.
14. Hacer un botón, con el nombre de fromcamera y una etiqueta de Tomar una
foto. Establecer las secuencias de comandos de botones en el siguiente:
en mouseUp
LoadImage "cámara"
fin mouseUp
[ 154 ]
Chapter 5
16. Edite el script de la tarjeta y añadir estas variables y funciones globales, que se
inicializan los valores que serán necesarios por las otras funciones que vamos a hacer:
originalimage mundial, puzzlewidth, puzzleheight,
snapdistance, hcount, vcount
en SetValues
OpenCard
final OpenCard
en SetValues
puesto 900 en puzzlewidth
puesto 662 en
puzzleheight puesto 50 en
snapdistance puesto 11 en
hcount
puesto 8 en
SetValues finales
vcount
17. Ahora agregue el loadImage controlador, que los dos botones a llamar para
obtener una imagen de la cámara del usuario o álbum de fotos:
en loadImage cameratype
puzzlewidth si está vacía, entonces SetValues
si hay una imagen "original" y luego borrar la imagen
"original" mobilePickPhoto cameratype, puzzlewidth,
puzzleheight
si el resultado está vacía, entonces
bloquear la pantalla
establecer el nombre de la imagen del número de imágenes
que "original" establecer el ancho de la imagen
"original" para puzzlewidth
ajustar la altura de la imagen "original" para puzzleheight
poner la imagen de imageData del "original" en
originalImage imagen delete "original"
- Makepuzzle
- Dispersión
de desbloqueo
de pantalla
más
contestar el
resultado final si
final loadImage
[ 155 ]
Making a Jigsaw Puzzle Application
18. La makepuzzle y dispersión líneas están comentadas por el momento, de
modo que usted puede probar las funciones creadas hasta el momento.
19. Ajuste los botones para tener una sombra, utilizando las opciones en el panel de
efectos gráficos de la paleta Inspector.
[ 156 ]
Chapter 5
¿Qué ha pasado?
Las piezas del rompecabezas están en su lugar, y nombrado de manera que podamos
aprovechar al manipularlos. Si usted ve a Ajustes aplicación independiente y seleccionar
iOS o Android, puede dar a la aplicación un intento.
Cuando se LiveCode una imagen desde el dispositivo móvil, ya sea desde la cámara o
desde la biblioteca o álbum de fotos, coloca la imagen como un control de imagen que es
el objeto superior de la tarjeta. No necesitamos la imagen en sí, sólo su imageData del,
y así en la loadImage controlador de la imagen se hace del mismo tamaño que el grupo
de piezas de puzzle, el imageData del se almacena en la variable global
originalImage, y la propia imagen es eliminada.
2. El manejador makepuzzle pasará por cada una de las piezas del rompecabezas y
[ 151 ]
Making a Jigsaw Puzzle Application
llamar a otro controlador para hacer la transferencia de los datos para esa pieza.
Aquí está el gestor makepiece:
en piecename makepiece
poner el ancho de la imagen en piecename
piecewidth poner la altura de piecename imagen en
pieceheight
[ 152 ]
Chapter 5
[ 154 ]
Chapter 5
[ 156 ]
Chapter 5
¿Qué ha pasado?
Como se mencionó anteriormente, el aritmético a la derecha hacía relativamente fácil
de extraer un rectángulo deseado de imageData del a partir de una imagen más
grande, y para almacenarlo en una imagen más pequeña el tamaño
del rectángulo. Pero hay un poco de magia que no se señaló, el rompecabezas mantenido su
forma! ¿Cómo sucedió eso, ya que hemos reemplazado completamente el imageData del
para la imagen? Ajuste de la imageData del no interfiere con la alphaData de la imagen.
Los PNGs importados que mantiene su canal alfa original, por lo que todavía se veía la
misma forma, sólo con una imagen diferente.
Adición de interactividad
El rompecabezas está listo para enviar! Bueno, aparte de no existir interactividad en
absoluto! Vamos a añadir algo.
[ 157 ]
Making a Jigsaw Puzzle Application
1. Abra el script pila. Sólo hay una variable global que también necesitamos en la
apilar guión, pero hay un par de elementos a inicializar cubrir. Inicie el script pila
con estas líneas:
snapdistance mundial
en preopenstack
si la plataforma contiene "iphone"
entonces iphoneUseDeviceResolution
verdadero
final preopenstack
en OpenStack
establecer el compositorType de esta pila para
OpenStack final "Static OpenGL"
3. La interactividad usaremos hará uso de eventos de toque. Cada toque viene con un
valor de ID asociado. Aquí está el controlador que detecta el inicio de un evento de
contacto:
en Touchstart touchid
poner el nombre corto de la meta en n
si la palabra 1 de n es "p" y luego
establecer la imagen de dropShadow n al dropShadow de botón
"Fromlibrary"
establecer los relayerGroupedControls en true
establecer la capa del blanco con el número de imágenes en el
grupo
"Piezas"
end if
final Touchstart
[ 159 ]
Making a Jigsaw Puzzle Application
5. ¿Te acuerdas de cómo hemos añadido un Sombra a los dos botones? Aparte de
hacer que se vean más bonitas, podemos hacer uso de ella aquí también. Mediante
la adición de la misma dropShadow a la pieza del rompecabezas que crean la
ilusión de que la pieza está flotando por encima de la pantalla.
6. Lo siguiente a tener en cuenta es el movimiento, que podemos hacer con el
touchMove evento:
en touchMove touchid, touchx, susceptible
poner el nombre corto de la meta en n
si la palabra 1 de n es "p" y luego
establecer la locomotora de la meta a
touchx, extremo delicado si
final touchMove
7. Una vez más hay una doble comprobación rápida para asegurarse de que es una
pieza del rompecabezas, si no es un simple caso de establecer la ubicación de la
pieza a la posición de los dedos del usuario.
8. Cuando el usuario suelta la pieza, comprobamos para ver si está cerca de su lugar
de partida, y si es entonces que mover la pieza en su lugar y retire el dropShadow
efecto:
en touchEnd touchid
poner el nombre corto de la meta en n
si la palabra 1 de n es "p" y luego
checkdistance el nombre corto de la meta
de establecer el dropShadow de la meta de
vaciar checkfinished
End If
final touchEnd
[ 160 ]
Chapter 5
[ 161 ]
Making a Jigsaw Puzzle Application
¿Qué ha pasado?
El rompecabezas completo debería funcionar ahora. Algo que no es fácil adivinar por las
funciones táctiles que hemos añadido es el hecho de que trabaja con multi-touch. Puede
arrastrar en un máximo de 10 unidades a la vez (o lo que sea el límite de multi-touch es para
su dispositivo), y cada uno va a mostrar
una sombra, y se animará a su sitio cuando dejarlos ir.
Agregando algunos gráficos de guía ayudará a los jugadores saber dónde están los
bordes del rompecabezas terminado son, y para los niveles de dificultad más
sencillos que incluso podría incluir los contornos de las piezas del rompecabezas
individuales.
[ 162 ]
Chapter 5
Resumen
Existen muchas otras posibilidades a la hora de hacer uso de imageData del; en
programas de pintura, aplicaciones de procesamiento de imágenes, y así sucesivamente.
Tratar con el imageData del es todavía el mismo que en los ejemplos anteriores, en la
que se pasaron la siguiente:
Trabajar con gráficos puede ser muy divertido, espero que esto será sólo el comienzo de lo que va a
crear. Sin embargo, en el siguiente capítulo nos pondremos en contacto para hacer una aplicación de
utilidad. (Sigh!)
[ 163 ]
Realización de una aplicación
6
Reminder
Nota mental
...
Para listas de tareas, alarmas, recordatorios de cumpleaños, notas, listas de compras, y la lista
sigue. Debe haber una aplicación para mantener una lista de aplicaciones diferentes que
mantienen las listas! En el momento de escribir esto, ya había más de 2.000 aplicaciones de iPad
que están listas, los planificadores, o alarmas. Tal vez hay lugar para uno más ...
Se necesitaría una gran cantidad de investigación y dinero para explorar todas las
aplicaciones recordatorios que están ahí fuera. La mayoría de las aplicaciones tendrá un
montón de características que nunca uso, y por lo menos una característica vital que falta. Si
tienes suerte, alguna combinación de aplicaciones puede hacer todas las cosas que quieres.
Pero no se olvide, mediante el uso de LiveCode, usted puede hacer su propia aplicación
recordatorios!
En este capítulo vamos a:
¿Qué es un "recordatorio"?
Aquí está una lista de algunas cosas que podríamos llamar un "recordatorio":
Lista de compras
Regalo de Navidad lista
Making a Reminder Application
Lista de tareas
Despertador
Egg Timer
Cumpleaños recordatorio
Ahora, ¿hay una sola manera de describir todas esas cosas? Bueno, puede obtener
muchas palabras, sino un recordatorio podría ser descrito como:
Véase, bastante prolijo. Descomponiéndola como que ayuda a ver lo que ofrece una
aplicación de recordatorios tendrá que tener. Antes de llegar a eso, vamos a probar la
definición con los ejemplos de aquí
Por lo menos, como punto de partida, podemos utilizar la definición que nos guíe como
podemos definir las capacidades de la aplicación se necesita tener.
¿Cuándo?
Las comunicaciones móviles que se pueden crear con LiveCode se enviará al segundo
más cercano a cuando se pide que se envíe. Extrañamente, sin embargo, el valor se basa
en el número de segundos desde la medianoche el 1 de enero de 1970, en concreto en
una parte de Londres! Bueno, es el nombre de una zona de Londres, llamado
Greenwich.
[ 160 ]
Chapter 6
Con el fin de adaptarse al hecho de que la Tierra no gira alrededor del Sol en un
número exacto de días, o incluso un número exacto de días trimestre, los
calendarios son ajustados por
un día cada cuatro años, aunque no en 100 años las fronteras, salvo por cada 400 años
(2000 fue un año bisiesto, por ejemplo). Esos ajustes son aún insuficientes para
mantener los relojes a tiempo! Los relojes están fuera de tiempo por aproximadamente
0,6 segundos al año, por lo que hay "segundos intercalares añadido a" compensar eso.
En teoría, los segundos intercalares se podría utilizar para restar un segundo, pero hasta
ahora esto no ha sido necesario, sino que sólo se han utilizado para agregar un segundo.
[ 161 ]
Making a Reminder Application
[ 162 ]
Chapter 6
12. Haga clic en el botón de la hora pico, y ajustar la hora a la 1 am. Esta imagen
muestra cómo el selector se ve diferente en iOS y Android (Kindle Fire en este
caso):
13. Haga clic en Hecho, y usted verá el número de segundos desde la medianoche hasta
01/01/1970
01 a.m. del día en que haga esta prueba se muestra en el campo de la derecha.
[ 163 ]
Making a Reminder Application
¿Qué ha pasado?
Acabamos de hacer dos scripts sencillos que llaman a la fecha o la hora natal recogedor, transforma
estos datos en segundos, para luego mostrar en un campo. Lo que es interesante observar es que para
el caso de horarios de pick no devuelve el número de segundos en el día de hoy, todo es de los
segundos desde la medianoche del 01/01/1970. Con el fin de establecer un tiempo de notificación
para un momento particular de un determinado
fecha, tenemos que hacer un poco de aritmética. Vamos a entrar en eso un poco más
tarde, cuando hacemos la aplicación real de recordatorio, en el. Haciendo la sección
recordatorios aplicación de este capítulo
¿Dónde?
Hay algo que podemos hacer en una aplicación de recordatorios móvil que no volvería a
trabajar en una versión de lápiz y papel, podemos presentar la lista de recordatorios función
de dónde se encuentren en el momento que compruebe! Para hacer uso del lugar, lo que
necesita saber donde se encuentra ahora, y hasta qué punto esto es, del lugar asociado con
el recordatorio.
En el momento de escribir esto, no hay capacidad en LiveCode para tirar en un mapa para que usted
elegir lugares que no sean la que están en estos momentos. Por lo tanto, vamos a trabajar dentro de
ese
limitación, ya que no hay otra opción!
[ 165 ]
Making a Reminder Application
[ 166 ]
Chapter 6
[ 167 ]
Making a Reminder Application
¿Qué ha pasado?
Como usted puede ver, hay muy poco código necesario para leer una ubicación! Si se trataba
de una aplicación de seguimiento, entonces usted necesita para mantener el seguimiento
abierto y tienen funciones para responder al cambio de mensajes de ubicación. Pero, para
nuestra aplicación, sólo tenemos que saber dónde se encuentra en el momento de echar un
vistazo a la lista de recordatorios.
Los números que se muestran en el campo de ubicación son la latitud, longitud y altitud
de la posición del dispositivo. Pero ¿cómo vamos a usar esos números ...
Cuando nos enfrentamos a un problema como éste - cómo encontrar la distancia entre dos
puntos en la Tierra - Google es un buen punto de partida! Se necesita muy poco para
dorarching tiempo para encontrar esta página:
[ 168 ]
Chapter 6
http://www.movable-type.co.uk/scripts/latlong.html
[ 169 ]
Making a Reminder Application
El artículo se discute la fórmula original para hacer este cálculo, a continuación, se muestra
una función Javascript. Si le resulta difícil convertir la ecuación en manipuladores LiveCode,
entonces usted debería ser capaz de convertir el Javascript, línea por línea, en el
equivalente LiveCode.
No hay necesidad de escribir esto en apenas todavía, vamos a integrar más tarde. Pero
si usted quiere tener un juego, pon estas líneas en el guión de pila:
función distancia lat1, lon1, lat2,
6371 Lon2 poner en r
poner toRad ((lat2-lat1)) en
dLat poner toRad ((Lon2-lon1))
en dLon poner toRad (lat1) en
lat1
poner toRad (lat2) en
lat2
poner el pecado (dLat.2) * sin (dLat / 2) + sen (dLon /
2) * sin (dLon / 2) *
cos (lat1) * cos (lat2) en un
poner 2 * atan2 (sqrt (a), sqrt (1-
a)) en c, introduzca r * c a d
volver
distancia
final d
función de retorno
Pangle toRad
pAngle/180 * PI
final toRad
Como se muestra, debería ver un valor de 5645,48065. Los dos lugares están en algún lugar
[ 170 ]
Chapter 6
cerca de Nueva York y Londres, y ese valor sería la distancia en kilómetros entre los dos,
viajando a lo largo de la superficie de la Tierra.
[ 171 ]
Making a Reminder Application
¿Qué?
Estamos en el buen camino para saber cómo configurar la hora y fecha de la notificación de
recordatorio a ocurrir, y será capaz de ordenar los recuerdos basados en la distancia de donde nos
encontramos. Pero, ¿qué es la información exacta que necesitamos tener en el propio recuerdo?
Si esto fuera una aplicación de recordatorio de cumpleaños, entonces usted tendría que
preguntar por el nombre de la persona y la fecha de su cumpleaños. Si se tratara de una
aplicación de lista de la compra, entonces se necesita el nombre del tema y tal vez una
cantidad. Para un contador de tiempo, usted tendría que hacer lo que el evento fue llamado
y un tiempo para el evento.
Aquí, sin embargo, estamos tratando de hacer una aplicación de recordatorio completamente
flexible, sino que sería hasta
para el usuario para describir el artículo a su gusto. Así que sólo voy a pedir un título y una breve
Descripción. También tendrá que ofrecer la opción de establecer una fecha, una hora, un
asociado
ubicación, y si un sonido de alerta se debe jugar o no.
Queremos permitir al usuario hacer una lista de lugares, de modo que un recordatorio puede ser
asociado con esa ubicación. En lugar de escribir un archivo de texto diferente, vamos a hacer la
primera pieza de información en cada entrada de la función de esa entrada. En estos momentos, las
únicas dos funciones son ubicación y recordatorio. He aquí un ejemplo de lo que el
archivo de texto podría ser:
Ubicación Home40.692636 -73,978376
[ 172 ]
Chapter 6
Ubicación Oficina 40.745194 -73,985199
Recordator Packt Pida más tiempo! 1334548800 Casa falso
io
ReminderBossBuy lunch1334592000Office verdadero
[ 173 ]
Making a Reminder Application
Entre cada elemento en una línea es un carácter de tabulación, que se utiliza para separar
las partes de la entrada. La estructura para una ubicación es como sigue:
Función - "Location"
Lugar de título
Latitud
Longitud
Función - "Recordatorio"
Título
Breve descripción
Notificación tiempo, en segundos desde la medianoche 01/01/1970
A Ubicación asociado con este recordatorio
Ya sea para jugar un sonido de alerta ("true" o "false")
[ 175 ]
Chapter 6
[ 171 ]
Making a Reminder Application
13. Añadir otro campo de instrucciones que dice: Escriba un nombre para esta
ubicación:.
15. Por último, añadir un botón denominado Añadir ubicación y uno llamado
Cancelar.
16. Para obtener esta tarjeta, los tres campos tienen su cuadro de texto de bloqueo para estar
desmarcado.
17. La tarjeta debe ser similar a la siguiente:
[ 172 ]
Chapter 6
22. Añadir tres campos próximos a los botones, los cuales se utilizarán para mostrar al
usuario que la selección se hizo tuvo lugar. Nombre de los campos ubicación
del campo, Fecha de campo, y tiempo en el campo.
24. Por último, cree dos botones más nombrados Agregar aviso y Cancelar.
[ 173 ]
Making a Reminder Application
¿Qué ha pasado?
Hemos hecho todas las pantallas necesarias para que la aplicación funcione. Esa fue la parte fácil.
Espera a ver la cantidad de mecanografía le vamos a hacer!
en el enfoque
returnInField en
nada
final returnInField
[ 175 ]
Making a Reminder Application
en ReadData
mundial gReminderData
poner specialFolderPath ("documentos") & "/ reminders.txt"
en tRemindersPath
si hay un archivo tRemindersPath a
continuación, abra el archivo
tRemindersPath
leer tRemindersPath archivo hasta
cerrar el archivo eof tRemindersPath
lo puso en otro
gReminderData
tRemindersPath archivo abierto
escriba "hay entradas" para presentar
tRemindersPath tRemindersPath cerrar el
archivo
poner "hay entradas" en el extremo
gReminderData si
final ReadData
Estas dos funciones están usando la habilidad sencilla que LiveCode tiene
que leer y escribir archivos de texto. Observe que aunque
specialFolderPath
se está utilizando para ayudar a calcular dónde el archivo se guardará.
Funciona incluso cuando las pruebas en las máquinas de escritorio. El
diccionario LiveCode muestra una lista completa de las rutas de las carpetas
especiales, incluyendo muchos que no se aplican a aplicaciones móviles.
4. La showData función bien podría haber sido puesto en el Casa tarjeta Tarjeta
[ 176 ]
Chapter 6
guión, pero tenerlo en el Apilar nivel se mantiene cerca de otras funciones que
se relacionan. Escriba en este momento.
en showData
mundial gReminderData
[ 177 ]
Making a Reminder Application
5. Las últimas funciones en la Apilar script son para configurar las notificaciones de sí
mismos.
en mobileCancelAllLocalNotifications
clearnotifiers
clearnotifiers finales
[ 178 ]
Chapter 6
en setupnotifiers
mundial gReminderData
si gReminderData = "hay entradas" y luego salir
setupnotifiers establecer el itemdelimiter a la pestaña
repetir con a = 1 para el número de líneas en
gReminderData poner una línea de gReminderData en
tEntryDetails
[ 179 ]
Making a Reminder Application
en pMsg localNotificationReceived
responder "Notificación Local:" el
fin && pMsg localNotificationReceived
¿Qué ha pasado?
Además de conseguir tus dedos bien caliente, que ha introducido todas las
funciones para leer y escribir los datos del recordatorio, y para la creación y la
recepción de los mensajes de notificación.
[ 180 ]
Chapter 6
3. Cómo prepararse mentalmente y luego editar el script del botón Ordenar por Ubicación.
4. Escriba en todo esto:
en mouseUp
mundial gReminderData
mobileStartTrackingSensor "ubicación",
true
poner mobileSensorReading ("localización", false) en
tLocation mobileStopTrackingSensor "ubicación"
establecer el itemdelimiter a coma
poner el tema 1 de tLocation en
TLAT poner punto 2 del tLocation
en tlong establecer el
itemdelimiter a la pestaña
tipo numérico gReminderData por GetDistance (TLAT, tlong,
punto 5 de cada uno)
showData
WriteData
final mouseUp
[ 181 ]
Making a Reminder Application
función GetDistance Plat, submarinismo natación, pLocName
si pLocName está vacía luego regresar
1000000 gReminderData mundial
puesto vacío en TLAT
[ 182 ]
Chapter 6
puesto vacío en
tlong
repetir con a = 1 para el número de líneas en
gReminderData si el artículo 1 de tEntryDetails =
"Ubicación", entonces
si el artículo 2 de tEntryDetails pLocName
= a continuación, poner el tema 3 de
tEntryDetails en TLAT poner el tema 4
de tEntryDetails en tlong
End If
End If
Fin de
repetición
TLAT si está vacía, entonces volver
1000000000 distancia retorno (TLAT,
tlong, Plat, Plong)
final GetDistance
función de retorno
Pangle toRad
pAngle/180 * PI
final toRad
[ 184 ]
Chapter 6
6. Del mismo modo, ajuste la opción "Crear Location ..." script botón para esto:
en mouseUp
Ir a la ficha mouseUp
"ubicación" final
7. Última guión para esta tarjeta, edite la ubicación Eliminar o script botón
Reminder, y escriba lo siguiente:
en mouseUp
mundial gReminderData
mobilePick gReminderData, 1, "marca", "cancelDone",
"recogedor" poner el resultado en tItemsToDelete
si tItemsToDelete = "0" y luego salir
mouseUp establecer el itemdelimiter de
coma
repetir con a = el número de elementos en tItemsToDelete hasta
1 línea delete (punto A de tItemsToDelete) de gReminderData
Fin de repetición
gReminderData si está vacía, entonces escriba "hay
entradas" en gReminderData
showData
WriteData
final mouseUp
¿Qué ha pasado?
Si todo va bien, se ha recuperado por ahora, después de tratar de entender el tipo de
función de localización! Usted puede ver por lo menos lo difícil del guión Stack habría sido
si todo este código se había colocado en esa ubicación. Vamos a pasar a la siguiente carta
...
[ 185 ]
Making a Reminder Application
1. Edite el script del botón Set para ubicación actual, y escriba las siguientes líneas:
en mouseUp
mobileStartTrackingSensor "ubicación", true
poner mobileSensorReading ("localización", false) en
tLocation mobileStopTrackingSensor "ubicación"
establecer el itemdelimiter a coma
si el número de elementos en tLocation = 3 entonces
poner el tema 1 de tLocation en el campo
"latitud" poner punto 2 del tLocation en el
campo "longitud"
End If
End mouseUp
4. Último artículo de esta tarjeta; editar el script Ubicación botón Agregar y escriba lo
siguiente:
en mouseUp
mundial gReminderData
si el campo "Nombre de ubicación" está vacío,
responde "Por favor, introduzca un nombre para
esta ubicación." salir mouseUp
End If
si el campo "latitud" está vacío o campo "longitud" está vacío,
responda con "Por favor, introduzca los valores de
localización, o pulse el botón SET 'para
Ubicación actual "botón".
salida final
mouseUp si
poner "Location" y ficha y campo "Nombre de ubicación" & tab y
campo
[ 186 ]
Chapter 6
"Latitud" y ficha y campo "longitud" en tLocationDetails
si gReminderData = "hay entradas" y luego
poner en tLocationDetails gReminderData
más
[ 187 ]
Making a Reminder Application
¿Qué ha pasado?
Mucho menos que ocurrió en la primera tarjeta! Pero era igualmente importante. Ahora
tenemos una manera para que el usuario pueda configurar una ubicación para ser utilizado
por los recuerdos que han creado. Y ahí es donde nos dirigimos ahora ...
1. Edite el script del botón Set relacionada con la localización y el tipo de las
siguientes:
en mouseUp
mundial gReminderData
puesto vacío en tLocations
establecer el itemdelimiter
a poner una ficha en
tLineNumber
repetir con a = 1 para el número de líneas en
gReminderData si el artículo 1 de la línea de un
gReminderData = "Ubicación", entonces
[ 188 ]
Chapter 6
poner punto 2 a 4 de la línea de gReminderData en
tLineNumber línea de tLocations
Añadir 1 al final si
tLineNumber
Fin de repetición
tLocations si está vacío,
responde "Usted necesita agregar una ubicación."
[ 189 ]
Making a Reminder Application
más
mobilePick tLocations, 1
poner el resultado en
tChosenLocation si tChosenLocation>
0 entonces
poner el punto 1 de la línea de tChosenLocation
tLocations en "campo de ubicación" campo
End If
End If
final
mouseUp
Hemos creado la primera palabra de cada línea en los datos de recordatorios a cualquiera
Ubicación o Recordatorio. Aquí hay un lugar donde
se hace uso de ello. Una vez que saque las líneas que son
Ubicación, presentarlos dentro de un selector es fácil de
hacer.
2. Edite el script del botón Establecer fecha, y el cambio a este fácil de entender script:
en mouseUp
mobilePickDate "fecha"
poner el resultado en
tDate tDate convertir a
segundos
tDate poner en el campo de
mouseUp "campo de fecha de" fin
3. Establecer la secuencia de comandos del botón Establecer hora para este script casi
idéntico:
en mouseUp
mobilePickDate "tiempo"
poner el resultado en
TTIME TTIME convertir a
segundos
TTIME poner en el campo de
mouseUp "campo de tiempo" final
5. Por último, y lejos de ser menos, el guión Recordatorio botón Agregar hace todo el
[ 190 ]
Chapter 6
trabajo duro.
en mouseUp
mundial gReminderData
si el campo "título" está vacío o el campo "descripción" está
vacío, responda con "Por favor, introduzca un título y una
descripción."
salir mouseUp
[ 191 ]
Making a Reminder Application
End If
poner "false" en tDoAlert
si el hilite de botón "Play Sound Alert" y luego poner "true"
en tDoAlert
poner de campo "campo de fecha" en
tDateValue poner campo "campo de hora"
en tTimeValue
convertir tTimeValue de segundos a corto
plazo convertir a segundos tTimeValue
poner de campo "campo de tiempo" - tTimeValue en
tTimeValue add tTimeValue a tDateValue
poner "Recordatorio" y ficha y campo "título" y ficha y campo
"Descripción" en tReminderDetails
poner tReminderDetails & Tab y tDateValue & ficha y campo
"campo de ubicación" y en la ficha tReminderDetails
poner tReminderDetails & Tab y tDoAlert en tReminderDetails
si gReminderData = "hay entradas" y luego
poner en tReminderDetails gReminderData
más
poner retorno y tReminderDetails después del
final gReminderData si
Ir a la ficha
"casa" showData
WriteData
final mouseUp
[ 192 ]
Chapter 6
¿Qué ha pasado?
¡Uf! Llegamos a la final! Intente ejecutar la aplicación en su dispositivo. Si tus dedos no son
demasiado entumecido que es! Honestamente, usted puede apostar una fortuna que no
funciona la primera vez, pero si funciona lo suficientemente bien como para mostrar el texto
sin formato en el campo de datos en la primera tarjeta, es de esperar que será capaz de
localizar cualquier error en la código. También puede escribir algunos datos de prueba
dentro de la pila en el equipo y por lo menos probar las funciones que no requieren
características específicas del dispositivo.
Resumen
Este capítulo fue mucho más emocionante de lo esperado! Una aplicación de recordatorios
no es absolutamente tan impresionante como Angry Birds, pero, haciendo uso de las
características de ubicación de un dispositivo móvil hecho novela un poco más. A lo largo
de la manera en que incursionó con estas cosas:
Lectura y escritura de datos en el especial documentos carpeta
El uso de selectores para las listas de sencillos, fechas y hora
Lectura de la ubicación actual del dispositivo
Creación de eventos de notificación locales
En el mejor de los casos, usted puede llegar a hacer una aplicación móvil en unas pocas
horas o días, pero no hay mucho que pasa antes de poder enviar la aplicación a las tiendas
de aplicaciones diversas. Suena como un buen tema para el próximo capítulo!
[ 193 ]
Making a Reminder Application
[ 194 ]
Implementar en su dispositivo
7
No deje todo para ti!
Herramientas como LiveCode se puede utilizar exclusivamente para aplicaciones de productividad
personal, y sería más que pagar por sí mismos en el tiempo que le ahorrará todos los días. Pero, ¿por
qué no dejar que el resto del mundo se benefician de sus creaciones!
Hasta ahora, hemos creado varias pequeñas aplicaciones de perforación de prueba, y unos
cuantos más seres concretarse. En todos los casos, sin embargo, sólo hemos probado estos
simuladores en el interior o en el dispositivo personal. Ha llegado el momento de sacarlo a
más personas, para las pruebas beta en un primer momento, y luego para subir a las tiendas
de aplicaciones diferentes.
En este capítulo se incluirán los siguientes puntos:
General
La sección general de los ajustes independientes se usa principalmente para controlar qué
características de LiveCode se van a incluir en una aplicación independiente de escritorio.
Esas opciones no se aplican a las aplicaciones móviles, pero está en la sección general que
establezca el nombre
del expediente de solicitud, así como la carpeta de compilación (los temas de interés se
encuentran en la parte superior e inferior del cuadro de diálogo):
[ 188 ]
Chapter 7
Stacks
La sección de Stacks le mostrará una lista de las pilas que ya están incluidas en su proyecto.
Eso, por supuesto, incluyen el Mainstack actual, y también incluirá las pilas que han sido
agregadas por los plugins como MobGui. Todas las opciones se atenuarán.
Copiar archivos
En la sección Copia de archivos se utiliza para agregar los archivos y carpetas adicionales
para ser utilizados por la aplicación. Estos van a ser archivos de sólo lectura, si usted
necesita los archivos modificables aún se podía incluir esos archivos aquí, y luego escribir las
copias de los archivos en la carpeta de documentos especial. Así es como se ve el cuadro de
diálogo con las carpetas de imágenes y sonidos añadidos:
iOS
El Mac, Windows, Linux, Web, y las secciones de los informes de error no se utilizan al realizar iOS
y aplicaciones de Android, así que ahora vamos a echar un buen vistazo a la sección de iOS, poco a
poco ...
[ 189 ]
Deploying to Your Device
Construir para
La construcción para la configuración de dispositivos iOS determinar que la aplicación va a
trabajar, y lo que la versión mínima de iOS tiene que ser. Al decidir qué elegir, hay cosas
que son obvias y otras no son tan obvias. Si usted está haciendo una aplicación que
realmente necesita una gran área de espacio de trabajo, entonces no puede ser muy
exitoso en un iPod o en la pantalla del iPhone. Si se trata de una pequeña utilidad que está
orientada a su uso en un dispositivo portátil, tal vez usted no necesita tener una versión
para iPad. Usted es capaz de elegir el iPod, iPhone y iPad, o simplemente para iPod y
iPhone, y aunque sólo sea iPad.
La versión mínima de iOS que usted elija puede depender de las particularidades que ha
utilizado. Usted no desea que los usuarios podrán comprar su aplicación sólo para encontrar
que una cierta característica no funciona correctamente en su versión anterior iOS. Puede
que tenga que mantener algunos dispositivos, configurados para utilizar versiones antiguas
del sistema operativo, para probar así que usted puede estar seguro de que su configuración
es correcta. Además, Xcode te permite descargar varias versiones del simulador, y en
LiveCode puede elegir una versión específica para realizar la comprobación.
Manzana mismos han abandonado el soporte para ARMv6. versión iOS 4.3 y posterior
requiere ARMv7. Los dispositivos que son ARMv7 son los iPhones desde el 3GS y el iPod
Touch desde la 3 ª generación, a excepción de la versión de 8GB de la 3 ª generación, que
aún estaba ARMv6. Usted puede tener una aplicación que funciona bien incluso en el iPhone
original, pero si usted tiene alguna duda acerca de cómo se va a realizar, eligiendo Arm v7
puede ser una buena idea. También puede elegir
un mínimo iOS 4.3 o versión posterior, o incluso 5.0 o posterior. Algunas de las
características del navegador web funciona mejor después de iOS versión 5.0 fue
lanzado.
Siempre se puede dejar estas opciones establecidas a valores más bajos por ahora, y tomar una decisión después
de haber oído cómo sus beta testers se llevaba bien con la aplicación.
[ 190 ]
Chapter 7
Aquí está la construcción para el área de los valores, así como los menús que puede elegir:
Usted debe probar diferentes nombres de visualización para ver cómo se ve en los dispositivos. Hay un límite
para cuánto tiempo el nombre puede ser antes de iOS trunca el nombre, la colocación de elipses en el medio
del texto. Para el iPhone que es de aproximadamente 11 o 12 caracteres.
Para fines de desarrollo se puede utilizar un perfil de datos que utiliza un ID de aplicación
interna que contiene un comodín. Al hacer presentar una aplicación para iOS App Store,
asegúrese de que el archivo de suministro es una Distribución, y que el ID de aplicación que
utiliza coincide exactamente con el ID de aplicación interna. También, asegúrese de que el ID
es diferente a cualquier otra aplicación que tenga en
la tienda. Tenga en cuenta sin embargo que el ID como se muestra en la página de cuenta
de desarrollador mostrará los dígitos adicionales en el inicio de la ID, por ejemplo:
31415926.com.yourname.yourappname. La App ID coincidente interna sería
[ 191 ]
Deploying to Your Device
com.yourname.yourappname.
[ 192 ]
Chapter 7
Iconos
Usted es capaz de seleccionar un icono diferente para cada tipo que iOS y iTunes requieren. El área de iconos es
fácil, haces clic en el botón ... y seleccione el archivo de su sistema de archivos. Sería posible que LiveCode tomar
una imagen de gran tamañoy para crear los distintos tamaños para usted, pero no es una opción para eso! Por
si sirve de algo, puede que tenga razones para mostrar una
icono diferente para cada caso. Por ejemplo, usted podría hacer un icono para las pantallas
Retina que tenían más detalle en lo que se podía ver en una pantalla no Retina. Como usted
no tiene una opción, simplemente disfrutar de la flexibilidad que esto te da!
[ 193 ]
Deploying to Your Device
Pantallas de bienvenida
Desde el primer iPhone, iOS ha tenido la capacidad de cargar y mostrar una pantalla de
inicio de inmediato cuando un usuario toca un icono de aplicación. Esto les da algo para
mirar mientras la aplicación se está cargando. Todo lo que se necesitaba en esos días era
una imagen predeterminada, y tenía un nombre
de Default.png. Cuando el iPad llegó ahora había una necesidad de pantallas de inicio
más. Por lo menos se necesitaba una resolución de imagen mayor defecto, pero también se
necesitan imágenes personalizadas para el paisaje, incluso yendo tan lejos como para tener
imágenes diferentes en función del paisaje
de si el botón de inicio es el lado izquierdo o lado derecho.
LiveCode no da acceso a ese nivel de flexibilidad, pero es muy raro que una aplicación se
necesita un paisaje diferente para las dos variantes, por lo general puede llegar a funcionar
con sólo una. Lo mismo para la variación retrato al revés, la imagen predeterminada retrato
regular puede ser utilizado para eso también.
Las pantallas Retina tienen sus propias entradas para configurar la pantalla de inicio, y por
convención, los archivos que tienen nombres que incluyen una @ 2x parte del nombre.
Cuál de las opciones de la pantalla emergente se activan depende de las opciones de orientación,
como se describe en la siguiente sección. En esta captura de pantalla, las opciones Retratos iPad
aparecen en gris,
ya que la aplicación está dispuesto a ser único paisaje:
Usted puede notar que no hay un retrato iPhone u opción paisaje. Esto se debe a la Default.png se
utiliza para ambos. Si su aplicación es sólo paisaje, para luego diseñar la pantalla de
bienvenida como paisaje, sino girar la imagen 90 grados hacia la derecha para create a
320x480 o 640x960
Default.png o Default@2x.png imagen.
[ 194 ]
Chapter 7
Opciones de orientación
Como se mencionó anteriormente, usted es capaz de especificar qué orientaciones se
apoyan en su aplicación. Si la aplicación es sólo para el iPod y el iPhone, sólo se puede
establecer cuál es la orientación inicial. Las opciones son Portrait, Retrato Upside-Down,
Left Paisaje, Paisaje y derecha. Si es para iPad, entonces también se puede establecer que
las orientaciones son compatibles mientras que la aplicación está en uso. Las opciones que
seleccione afectará a lo que los iconos se pueden importar. Las orientaciones se ajustan con
un solo menú desplegable y casillas de verificación cuatro:
Requisitos y restricciones
Antes hemos hablado de cómo configurar el dispositivo, el conjunto de instrucciones del
procesador y la versión del iOS, es una manera de asegurarse de que los usuarios son capaces
de utilizar las características de su aplicación. Los requisitos y las opciones de restricciones
permiten especificar con gran detalle lo que las capacidades del dispositivo debe tener. Por lo
menos, si usted tiene una aplicación que consiste en tomar fotografías, lo que requiere una
cámara podría ser una buena idea! Si se trata de una aplicación de chat de vídeo, lo que
requiere una cámara frontal tendría sentido. La aplicación de recordatorios que hicimos en el
capítulo anterior debe tener su opción Servicios de ubicación seleccionado, para asegurarse
[ 195 ]
Deploying to Your Device
de que el tipo de función de distancia podría funcionar. Aquí está la lista completa:
[ 196 ]
Chapter 7
Status Bar
La última opción en la configuración de iOS controla si la barra de estado ha de ser visible
o no, y si debe tener el aspecto de la barra de estado predeterminado, o un aspecto
negro. Para el aspecto negro puede establecer si que es ser opaco o translúcido. La
siguiente captura de pantalla muestra la opción Barra de estado:
[ 197 ]
Deploying to Your Device
Androide
Como podrá ver, el número de opciones para definir para Android es menor que la de
iOS. Esto no es así porque Android es más sencillo, sino porque LiveCode expone
prácticamente todas las opciones posibles para iOS, incluyendo muchos que no tendrá
más probabilidades. iOS también tiene las variaciones pantalla de presentación que no
están disponibles como opciones en Android.
En el mundo de Android, hay algunos ajustes que se requieren para hacer, en particular,
los permisos. iOS le pide al usuario permiso para utilizar algunas funciones, pero no hasta
el momento en que su aplicación invoca esa característica. Usted habrá visto los cuadros
de diálogo que pregunta: App Fancy quiere saber su ubicación. Android por su parte le
pide permiso para utilizar esas características en el momento en que la aplicación está
instalada.
Echemos un vistazo a las opciones de Android.
El icono se establece como parte de la configuración básica, ya que sólo un icono que se
necesita, así que no hay necesidad de que su propio conjunto de opciones. Para que un
icono debe seleccionar una versión 512x512 tamaño de la imagen, y LiveCode hará que los
otros tamaños para usted.
Aplicaciones Android no tiene una pantalla de inicio como la de iOS, pero LiveCode se
puede dar una pantalla de presentación, y mostrará que como la primera pantalla que ve
el usuario después de la carga de aplicaciones.
Usted es capaz de establecer que la aplicación va a ser instalado, con opciones de almacenamiento interno,
Permitir almacenamiento externo, Prefiero y Almacenamiento Externo. El almacenamiento
externo se refiere
es la memoria SD que la mayoría de los dispositivos Android pueden tener. Los usuarios de
Android no me importa dónde
la aplicación está instalada, o son fanáticos de lo que se almacena en la memoria SD! Usted podría
seleccione Permitir almacenamiento externo, y esperan un montón de gente para elegir a tenerlo
instalado en
la memoria SD, o usted puede elegir Prefiero almacenamiento externo, sabiendo que sólo una
minoría
cambiaría la opción de forzar la instalación debe hacerse en la memoria interna. En general,
le molesta menos gente usando el ajuste Prefiero Almacenamiento Externo.
[ 198 ]
Chapter 7
In-app notificaciones compras y empuje, que en el momento de la escritura son características
muy nuevas en LiveCode, se manejan de manera diferente de lo que son con iOS. Si usted
desea utilizar en app-compras, echa un vistazo a las lecciones en línea RunRev, y también el
developer.android.com sitio web para más información. Hasta aquí sólo hay una lección
iOS, que se encuentra aquí:
http://lessons.runrev.com/m/4069/l/48771
[ 199 ]
Deploying to Your Device
Es de suponer que la lección de Android se añadirá a que algún día no muy lejano. El dev
Androideloper información sobre la facturación in-app está aquí:
http://developer.android.com/guide/market/billing/billing_overview.
html
Al igual que con iOS, Android OS se pueden dar órdenes externas, y también tiene el
esquema de URL personalizado. Una característica que no se encuentra en iOS es la
capacidad de fijar un icono que se utiliza en la barra de tareas.
[ 200 ]
Chapter 7
Requisitos y restricciones
Dentro de este conjunto de opciones que puede establecer la versión mínima de Android y
fijo que las características de hardware son necesarios. Las columnas de botones de radio
se denominan de manera diferente de iOS. En vez de decir que una función es necesaria o
prohibidos, usted está diciendo si la función es necesaria o usado. Esto se convierte en
información que el usuario de Android es capaz de leer, y puede desempeñar un papel en si
deciden comprar su aplicación. Por lo tanto, trate de seleccionar lo que corresponda a su
aplicación.
Permisos de aplicaciones
Cuando una aplicación para iOS hace uso de ciertas características, tales como su ubicación,
hay un diálogo de alerta que aparece cuando la función por primera vez. Con Android
cualquiera de estas funciones se enumeran durante la instalación de la aplicación, y el
usuario podrá dar permiso para que todas las características de una sola vez.
[ 201 ]
Deploying to Your Device
El proceso de hacer una aplicación para enviar a un probador es diferente en Android que
en iOS. De hecho, es increíblemente fácil en Android! Veamos en primer lugar.
Afortunadamente, existe un método mucho más simple. Tome el archivo APK y ponerlo en
línea en alguna parte. Eso podría estar en una ubicación compartida DropBox o Google Drive,
o tal vez sólo un servidor en su oficina. Haz lo que sea necesario para llegar al punto de que
tiene una URL que enlaza con el archivo. Ahora correo electrónico URL a sus probadores, a
una dirección de correo electrónico que se puede leer en sus dispositivos. A continuación,
sólo se necesita un solo toque del enlace en el correo electrónico para iniciar la descarga e
[ 202 ]
Chapter 7
instalación de la aplicación.
Hay una sección de Desarrollo de la configuración del dispositivo Android que los testers
puedan necesitar para visitar, para activar la función que permite a las aplicaciones que se
instalan de esta manera, pero es muy fácil de hacer ese cambio.
[ 203 ]
Deploying to Your Device
Ir a https://developer.apple.com/ios/manage/devices/index.action con el
fin de añadir los dispositivos a su cuenta. Haga clic en el botón Agregar dispositivos en esa
página, y usted será capaz de añadir los dispositivos a tu cuenta:
[ 204 ]
Chapter 7
Después de enviar los cambios, verá que el perfil modificado se encuentra pendiente. No
se necesita ningún tiempo para procesar el archivo de aprovisionamiento, usted
inmediatamente puede volver a cargar la página y encontrar que está listo para
descargar.
Descargue el nuevo perfil y agregarlo a Xcode (haz doble clic en el archivo descargado
debe hacer eso para usted). Abra Mainstack de su aplicación en LiveCode, ve a Ajustes
aplicación independiente ... | iOS, y asegúrese de que el perfil de datos se selecciona en
el menú Perfil y Guardar como aplicación autónoma ... de nuevo, para asegurarse de
que los nuevos dispositivos son conocidos por la aplicación.
[ 205 ]
Deploying to Your Device
Por ahora usted tendrá un archivo APP, lo que equivale a iOS de la APK de Android. Como
con Android que podría correo electrónico el archivo a sus probadores, junto con el archivo de
aprovisionamiento y
probadores tienen la "carga lateral" que en sus dispositivos. En este caso, eso no es tan difícil
tarea, ya que el probador puede utilizar iTunes para hacerlo. Si tienes que ir por ese camino, que sus
probadores
arrastre el archivo APP y archivos de aprovisionamiento en la biblioteca de iTunes, conectar el
dispositivo, consulte
en la ficha Aplicaciones, asegúrese de que la nueva aplicación está seleccionada y realizar una
sincronización. Sin embargo, es
posible para hacer las cosas mucho más fáciles para los usuarios, tan fácil como lo fue para los
usuarios de Android.
AirLaunch
Software hiperactivo ha hecho un plugin LiveCode que puede llevar a su archivo APP y crea
la estructura de archivos necesaria para el "over the air" instalar al trabajo. Sólo hay un
único cuadro de diálogo que se necesita para rellenar como se muestra a continuación:
[ 206 ]
Chapter 7
Después de seleccionar el archivo APP sólo tendrá que introducir la URL de la carpeta
donde será cuando esté en línea, a continuación, haga clic en el botón Crear archivos. A
continuación, e-mail la dirección URL de la carpeta para sus probadores, y cuando se visite
la página web en su dispositivo habrá un solo enlace al tacto, y la aplicación se instalará.
Ver más información sobre AirLaunch en la página utilizando el siguiente enlace:
http://www.hyperactivesw.com/airlaunch/index.html
BetaBuilder
BetaBuilder se pueden encontrar en la Mac App Store, en la fespués de enlace:
http://itunes.apple.com/us/app/betabuilder-for-ios-apps/
id415348946? mt = 12
No fue hecho con LiveCode en mente, y funciona con archivos de la API no archivos APP. El
proceso es muy similar al de AirLaunch, selecciona el archivo que desea utilizar, introduzca
la dirección URL de la carpeta en línea, y el programa generará los archivos para usted. Una
vez más, todo lo que sucede en una sola ventana de diálogo como se muestra en la
siguiente captura de pantalla:
[ 207 ]
Deploying to Your Device
Una manera fácil de convertir el archivo APP LiveCode en un IPA es arrastrar la aplicación en
iTunes, a continuación, seleccione Mostrar en Finder, haga clic en la aplicación en la
Biblioteca. Esto revelará el archivo IPA, que puede arrastrar a la ventana BetaBuilder.
Ambos productos hacen la vida más fácil para sus probadores. AirLaunch tiene las ventajas
de ser un plugin que funciona dentro de LiveCode, que es muy probable que haya abierto
todos modos, y trabajar directamente con los archivos de APP que LiveCode crea.
BetaBuilder principal ventaja es que es increíblemente barato!
TestFlightApp.com
https://testflightapp.com utiliza exactamente la misma técnica que las dos
aplicaciones utilizan, pero el sitio también incluye una gran cantidad de herramientas de
gestión de proyectos. Es mucho más de lo necesario para el envío de aplicaciones
personalizadas a un testers pocos, pero puede entrar en su más propio cuando se trata de
varias aplicaciones de salir a un gran grupo de testers.
[ 209 ]
Deploying to Your Device
En Mac va a utilizar el Terminal, que se encuentra en / Aplicaciones / Utilites. Sólo tiene que abrir
Terminal, e inmediatamente será capaz de utilizar la aplicación Keytool.
En cualquier caso, ahora se escribe una línea relativamente corto, y luego responder a las
diversas preguntas que aparecen. Para una comprensión más completa de lo que es going
adelante, visite la página web:
http://developer.android.com/guide/publishing/app-signing.html
Para nuestros propósitos, sólo tendremos que escribir el comando correcto y todo debería
ir bien, incluso si no entendemos lo que escriben!
Esta es la línea que escribir, cambiando los nombres y alias del almacén de claves para que
coincida con el nombre que desea utilizar para este certificado:
keytool-genkey-v-keystore my-release-key.keystore
-Alias-alias_name keyalg tamaño de clave RSA-2048-10000 validez
Cuando se presiona la tecla Intro o Retorno usted comenzará a ver una serie de preguntas,
comenzando con la contraseña que desea utilizar para el almacén de claves. Otras
preguntas se le pedirá su nombre completo, detalles sobre su empresa, ciudad y país. Es
un conjunto de datos que pueden ser codificados en un almacén de claves que es único, y
tiene suficiente información precisa con la que un usuario puede decidir si se debe confiar
en el certificado.
[ 210 ]
Chapter 7
Las imágenes siguientes representan las medidas adoptadas para conseguir un certificado y
el perfil de una aplicación para ser nombrado Estoy Confundido!, que es esencialmente
el rompecabezas que hemos hecho anteriormente.
En la parte App IDs del portal hay un botón New App ID que te lleva a una página para entrar
en los detalles de ID de aplicación. Aquí se puede ver que la ID se le da el nombre de Im
Desconcertado App ID, y un paquete de identificador de
com.colinholgate.impuzzled. Esto debe coincidir con el ID de aplicación internos
establecido en LiveCode.
[ 211 ]
Deploying to Your Device
Ahora que hay un identificador de aplicación, que puede ser utilizado en la creación de un
perfil de distribución de aprovisionamiento, en la sección de aprovisionamiento. Una de las
dificultades es sin embargo el mensaje de advertencia sobre la creación de
un certificado:
Al hacer clic en el enlace de texto te lleva a una larga descripción de cómo se tiene
que solicitar una autoridad de certificación, y cargar un archivo que genera el Acceso
a Llaveros. Cuando se presenta esta situación, siga cuidadosamente los pasos que se
indican:
[ 212 ]
Chapter 7
Una vez que haya cargado el archivo de solicitud de certificado que será capaz de hacer un
perfil de distribución que utiliza el ID de aplicación específico, y el certificado de
distribución. La entrada final se verá como la siguiente captura de pantalla, y deberá
utilizar el botón de descarga para obtener una copia local del archivo de
aprovisionamiento:
Ahora tiene el archivo que LiveCode requiere, sólo que no lo selecciona en la configuración de LiveCode.
En su lugar, haga doble clic en el archivo y se instalará usando Xcode. Una vez que esté en Xcode a
continuación, puede seleccionar en el menú Perfil en la Configuración de aplicación básica en LiveCode:
Al igual que con Android, debe asegurarse de añadir los iconos y pantallas de inicio, los
requisitos establecidos, y así sucesivamente, y usted será capaz de guardar un archivo APP
listo para ir a la tienda iOS App.
[ 214 ]
Chapter 7
Existe cierta similitud entre lo que cada una de las tiendas le pedirá, por lo que vamos a ver
los preparativos que usted puede ser que desee tomar antes de ir a las tiendas. Cuando esté
listo para proceder con la carga, estos are las páginas que empiezan por:
¿Cuál es similar
Las tres tiendas de aplicaciones pedirá una descripción de lo que hace la aplicación, la
información de clasificación, el precio, un sitio Web de soporte o dirección de correo
electrónico y la información de categoría. Con el fin de pedir un precio, que no sea libre,
usted tendrá que configurar una cuenta de comerciante. En el caso de Apple, que tiene que
dar una dirección de página web para el apoyo, Google sólo pide información de contacto,
y Amazon muestra de apoyo como opcional. Los tres piden capturas de pantalla, y las dos
tiendas de Android también le permite subir un vídeo de demostración.
Lo que es diferente
Manzana pide una gran cantidad de información que se transmite a través de muchas
pantallas. La carga del archivo de aplicación actual está a cargo de la utilidad Application
Loader que viene como parte de Xcode.
También parece que tiene que introducir toda la información en una sola sesión. Con el
botón Guardar en la parte inferior de la página web, pensando que puede volver y
continuar en otro momento, no parece funcionar.
Google solicita una gran cantidad de información, pero todo está atascado en una
pantalla! Tenga cuidado al comenzar a utilizar la página. Lo primero que piden es el
archivo APK. Probablemente debería cancelar que al principio, porque aún no se ha fijado
un precio para la aplicación. Si lo hace subir el APK de inmediato, que es al instante y de
forma permanente una aplicación gratuita.
Amazon pide menos información, y se presentan las preguntas dentro de una página.
Hay muy buenas críticas por ahí, alabando la facilidad de presentar a la AppStore
Amazon!
En pocas palabras
El proceso de envío es sólo la parte más estresante de desarrollar una aplicación móvil! Te
hace sentir mejor acerca de las otras etapas que has pasado, tal vez los que no eran tan malo
después de todo!
Esperamos que tengan una pareja que puede ser un segundo par de ojos, para ayudarle a
[ 215 ]
Deploying to Your Device
entender todas las preguntas, y no te pierdas algo importante que te perseguirá más tarde.
[ 216 ]
Chapter 7
Resumen
Yo no sé ustedes, pero yo soy mejor! Y no sólo porque son las 4 am, este negocio de
aplicaciones móviles de desarrollo puede ser abrumador. Incluso el lado administrativo
de las cosas pueden ser un poco complicado. En este capítulo hemos cubierto algunas
de esas tareas menos programáticas:
Estamos al final del camino en cuanto a hacer uso de las características móviles en una pila LiveCode,
y teniendo que hasta el punto de ser una aplicación móvil real. El siguiente, vamos a ver algunos add-
ons para LiveCode que le permiten utilizar las funciones más móviles.
[ 217 ]
Extender LiveCode
Adobe también había desarrollado una manera de publicar para iPhone de Flash
Professional, sino como parte de la determinación de Apple de no permitimos Flash
cualquier cosa que pueda utilizarse en el iPhone, las reglas de la App Store de presentación
fueron cambiadas, prohibiendo a los desarrolladores el uso de cualquier otra herramienta
de Xcode para publicar aplicaciones.
Algunas herramientas continuó en una zona gris, porque usaban Xcode para hacer la
publicación final. Aplicaciones GameSalad y Unidad siguió publicándose y le fue bien en la
App Store. RunRev trató de convencer a Apple para permitir LiveCode (que todavía se
llamaba Revolución Runtime en el momento) que pueda utilizarse como una herramienta de
publicación para el iPhone, incluso la promesa de publicar sólo en el iPhone, y no seguir
adelante con la publicación en Android. Manzana se mantuvieron firmes, y declinó la oferta.
Para Adobe, este no era el fin del mundo, y empezaron a trabajar en la editorial Android. Pero,
RunRev ya había planeado una conferencia en torno a la idea de publicar para iOS, y que la
conferencia tuvo que ser pospuesta.
Extending LiveCode
Durante el verano de 2010, Apple realizó una encuesta para los desarrolladores, y varias de
las preguntas que dieron a la gente como yo una oportunidad para pedir que Apple nos
permite utilizar nuestras herramientas de desarrollo preferidas, y no tener que usar Xcode.
Es difícil estar seguro de si eso es lo que hizo la diferencia, pero el 9 de septiembre de 2010,
Apple ha cambiado su posición sobre el tema. Este es el mensaje que me desperté a la
mañana:
http://www.apple.com/pr/library/2010/09/09Statement-by-Apple-on-App-
Tienda-Review-guidelines.html
Extender LiveCode
El progreso en LiveCode ha continuado a un ritmo bastante rápido, y en abril de 2012
RunRev había puesto en práctica todas las características de iOS para Android también,
además de haber añadido mucho al conjunto de características para iOS.
Sin embargo, no todas las características que está cubierto y hay un mercado de otros
fabricantes de complementos para LiveCode, lo que hace que el desarrollo sea más fácil en
LiveCode, o que proporcionan funciones que aún no están disponibles en la versión
estándar. Éstos son algunos de los complementos, la mayoría de las cuales se pueden
comprar en el mercado LiveCode:
http://www.runrev.com/store/
MobGUI
Ya hemos usado MobGUI en capítulos anteriores. Toma la forma de un plugin. Usted coloca el
archivo en su MobGUI plugins carpeta. Esta lección describe LiveCode plugins y agrega:
http://lessons.runrev.com/s/lessons/m/4071/l/21341-how-to-install-
[ 212 ]
Appendix
usuario a medida-plugins
[ 213 ]
Extending LiveCode
La forma en que funciona MobGUI es que te permite realizar controles periódicos LiveCode
en la tarjeta de la pila, y luego cuando la aplicación se ejecuta, los controles estándar se
intercambian los controles nativos. Esto tiene una ventaja sobre sólo hacer controles
estándar que se parecen a los controles de iOS, ya que el control se ve bien también.
MobGUI no hace nada que no se podía ver con sus propios scripts, pero hace que sea
mucho más fácil de usar diseño y controles móviles del sistema operativo nativo. Hay un
canal de YouTube para MobGUI que le mostrará algunas de las cosas que se pueden
hacer usando la tool:
http://www.youtube.com/user/MobGUI
tmControl
tmControl es un conjunto de temas hechas por los medios de comunicación táctiles para
que pueda dar a sus stacks LiveCode un aspecto más artístico. Además de la ciencia
ficción y otros temas, hay un tema iOS. Así es como se ve:
[ 214 ]
Appendix
No es demasiado sorprendente verdad! Un tema Android está previsto, así como adiciones al iOS
tema. Esta página mostrará la av actualmenteailable temas:
http://tmtools.tactilemedia.com/tmcontrol/themes.html
DropTools Palette
Fabricado por Hijos de Software Thunder, DropTools Palette es un complemento gratuito
para LiveCode, que actúa como una cubierta para albergar muchos tipos de controles
personalizados LiveCode. Además de ser el titular de Sons Of Thunder controles
personalizados, también ha sido utilizado por otros desarrolladores como una manera fácil
de traer sus propios controles personalizados en el mercado. El sitio web DropTools
incluye descripciones detalladas de cómo usted puede desarrollar sus propios controles
DropTools compatibles.
El sitio también actúa como un "agregador" para los controles personalizados LiveCode, e incluye
enlaces a ambos
DropTools y no DropTools compatibles add-ons. La página principal es located aquí:
http://droptools.sonsothunder.com/
Muchos de los controles personalizados no se refieren a las aplicaciones móviles, pero hay
unos pocos, y que sin duda aumentará con el tiempo.
[ 215 ]
Extending LiveCode
mergExt
mergExt es un conjunto de comandos externos para LiveCode. En el momento de escribir
esto, no hay LiveCode Android SDK, por lo que en la actualidad todos estos son sólo para
iOS. Esta es la lista tal como está, junto con descripciones tomadas de la página LiveCode
mercado:
http://www.runrev.com/store/product/mergExt-1-0-2/
[ 217 ]
Extending LiveCode
Si va a ir a hacer una bonita paleta personalizada para hacer más fácil que arrastrar y soltar
los controles personalizados a la ventana de la tarjeta, tenga en cuenta lo que es DropTools-
compatible. Se podría ahorrar una cantidad significativa de tiempo para resolver el
problema que resuelve DropTools ya, y los controles personalizados estaría en línea con los
controles DropTools otros, haciendo que la pantalla menos gente con paletas
personalizadas! Hay una gran cantidad de información sobre el desarrollo de la Dra.opTools
controles compatibles en esta página:
http://droptools.sonsothunder.com/developer/
Exterioridad
Abajo a la derecha de la ya mencionada "lecciones-y-tutoriales" de la página es una larga
lista de tutoriales, dos de los cuales se relacionan con lo que los externos. Estos tutoriales
están destinados en particular para el desarrollo externo de aplicaciones de escritorio. Por
developing externos móviles, debe mira esta página:
http://www.runrev.com/developers/documentation/externals-sdk/
[ 218 ]
Appendix
En el momento de la escritura, esta página sólo cubre los aspectos externos de iOS, pero no hay razón
para esperar que
por el tiempo que usted está leyendo esto, habrá información sobre la creación de lo externo
Android también.
La página es muy larga, e incluso incluye un video de 17 minutos! El c de vídeoun ser visto
YouTube también, en esta dirección:
http://www.youtube.com/watch?feature=player_embedded&v=lqduyQkhigg
La creación de lo externo no es trivial. Si usted tiene una idea para un externo útil, pero
siento que es más allá de sus capacidades o intereses para creaciónte a ti mismo, toma un
vistazo a la página mergExt:
http://mergext.com
Aquí usted puede hacer sugerencias o votar por los externos que le gustaría ver creó. Si
usted siente que puede hacer lo externo, ¿por qué no ponerlos a disposición de los
productos? La
va tarifa para estos complementos se encuentra en los $ 30 - rango de $ 100 - cualquier venta que
realice compensar su
los costos de desarrollo.
[ 219 ]
Extending LiveCode
[ 220 ]
Respuestas Pop
Quiz
[ 220 ]
Pop Concurso Answers
[ 221 ]
hay tramos largos de mismos píxeles de colores para la compresión de datos para funcionar
bien.
[ 222 ]
Pop Quiz Answers
[ 222 ]
Índice
La Android sección
aproximadamente 196
Adobe Director 132 Permisos de aplicaciones 198
Adobe Flash 132 Configuración básica de aplicación 196
AirLaunch Requisitos y restricciones opciones 198
aproximadamente 202 Opciones de la interfaz de usuario 199
URL, para información 203 Android pruebas de 60, 61
alarma de reloj 160 Dispositivo virtual de Android
alphaData propiedad 134 partida 60
Amazon Appstore animationEngine 215
aproximadamente 40-43 Manzana 209
URL 209 Opciones de aplicaciones Android sección Permisos,
Androide 198
60 pruebas aplicaciones
Android App creando, por los beta testers 199
el envío, a los probadores 199 subir, a las tiendas de aplicaciones 208, 209
Android Debug Bridge (ADB) 61 Aplicación de las tiendas
Android developer aplicación, subir a 208, 209
Amazon Appstore 40, 41 comparando 209
Android Market 36 app store archivo de envío
Android SDK, la descarga de 44 la creación de 204
convirtiendo 36 ARMv7 190
LiveCode, señalando Android SDK 47, 48
Android Keytool aplicación B
buscando 204, 205
utilizando 204, 205 Configuración básica de aplicación, el artículo 196
Android Market 36-40 Android
Android SDK Configuración básica de la aplicación, iOS sección 191,
descargar 44 192
instalar, en Mac OS X (Intel) 45 BetaBuilder
instalación, en Windows 46, 47 aproximadamente 203, 204
LiveCode, poiting a 47, 48 URL 203
beta testers
aplicaciones, capacidad para 199
[ 221 ]
Birthday Reminder 160 D
mapas de bits de datos
de mapa de bits 132 selectores de fecha
utilizado, para la creación de botones creando 161-164
de estilo OS 80
Puntos de interrupción 31
Navegador de tarjeta
aproximadamente 112
controles del navegador, añadiendo
113
browserFinishedLoading función 118
Informes Bug artículo 189
Construir para la configuración de la
sección 190 iOS
C
botones de la calculadora
la creación de 19
controladores de tarjetas
la adición de 22, 23
tarjetas
la creación de 15, 16
navegar entre los 16
charToNum función 132
checkdistance manejador 156
Regalo de Navidad lista 160
manejador clearPressed 24
clipboardData 22
código, LiveCode jerarquía
sobre 14
tarjetas, la creación de 15, 16
cartas, navegando entre 16 y 17
detección de colisiones
maskData, usando para 139
colisión mapa detección
creando 136-138
Copiar archivos del artículo 189
currentcommand variable de 25
CurrentValue variable 26
personalizados complementos
la creación de 216
controles personalizados 216
externas 216, 217
controles personalizados 216
Esquema de URL personalizado, iOS
sección 194
[ 224 ]
selector de fechas, banco de pruebas de
aplicaciones móviles
Viendo del 77
depuración, LiveCode 30, 31
eliminar manejador 180
correo electrónico de escritorio de
aplicaciones, banco de pruebas de
aplicaciones móviles
invocando 72
nativa aplicación de correo electrónico,
llamando a 72
distancia
calcular, entre dos puntos sobre la Tierra 167,
1
6
8
función distancia 156-179
distribución de certificados
crear, para iOS 206-208
sintaxis punto 20
DropTools Palette
aproximadamente 214
animationEngine 215
mergAccessory 215
mergAnswerColor 215
mergAV 215
mergBanner 215
mergDoc 215
mergExt 215
mergMessage 215
mergMK 215
mergPop 215
mergReader 215
mergSettings 215
mergTweet 215
mergXattr 215
mergZXing 215
E
función
edgepiece
huevo
temporizador
152 160
e-mail de prueba, banco de pruebas de
aplicaciones móviles
instalación, en los dispositivos 72
externals 8, 216, 217
F
Flash 132
G
Sección general 188 [ 225 ]
genericRGB perfil de
color 138
función GetDistance 179 iOS
getPixel función 132 certificado de distribución, creando para 206-
aproximadament 208
e 133 pruebas
134, 136
Gimp 133
GMT 161
Google Play
URL 209
GPS 164
Interfaz gráfica de usuario (GUI) 170
Greenwich Mean Time. Ver GMT
H
14 controladores de
jerarquía, LiveCode
tarjetas, creando
código 14 15
apilar estructura 14
scripts de inicio de tarjetas
aproximadamente 177
añadiendo, a app recordatorios 178-180
Software hiperactivo 202
HyperCard 8
Yo
Iconos área, imagen iOS
artículo 192
seleccionar, para rompecabezas 146-151
imageData del
aproximadamente 133
mal uso de 134
transferir 151-154
datos de imagen de formato 132, 133
139 ImageDataTest pila
inspector paleta
sobre 11
usado, en aplicación de la calculadora
sencilla 18
instaladores
crear, para iOS 202
controles de la interfaz
sobre 28
botones rollover 28-30
imágenes fijas de control 28
Reproductor de vídeo de control 28
[ 226 ]
instaladores, creando
para 202 pruebas de
64
pruebas, iOS simulador utilizado 64
iOS App
la preparación de 200, 202
iOS nombres de código 57
iOS Developer
convirtiendo 49-56
iOS SDK
LiveCode, apuntando a 59, 60
iOS sección
aproximadamente 189
Configuración básica de aplicación 191, 192
Construir para la configuración 190
Esquema de URL personalizada 194
Iconos de área 192
Opciones de Orientación 194
Requisitos y restricciones opciones 194
Pantallas Splash 193
Status Bar opción 195
iOS simulador
utilizando 64
iTunes Connect
URL 209
J
rompecabezas
la creación de 146
imageData del, transfiriendo 151-154
imagen, seleccionar 146-151
piezas, creando 146-151
eventos de toque, la creación de 155-157
K
Keepers tarjeta
aproximadamente 125
la creación de 126-128
archivo de almacén de claves 204
Kindle Fuego
añadiendo, a ADB 62, 63
con 61
L
diseños, LiveCode con el Administrador de
Geometría
alrededor del 93
[ 227 ]
botones, posicionando 94 Tutoriales en línea RunRev los 32
diseños, utilizando MobGUI tamaño de la pantalla y la orientación, el ajuste
95 diseños, utilizando un 91
controlador de cambio de Comience ventana Center 9
tamaño banco de pruebas de aplicaciones móviles, la
el 91 por creación de 70
código simple ejemplo de diseño 92 Tutoriales 9
Lingo idioma 20 Guía del usuario 9
Links tarjeta Las muestras de usuario 9
aproximadamente 114
manejador de init, añadiendo 118, 119
enlaza función de extracción, lo que hace
115-118
118 eslabones perdidos
Enlaces controlador
tarjeta init
la adición de 118, 119
Enlaces función de extracción
creando 115-118
Linux artículo 189
LiveCode
aproximadamente 7, 69, 131, 187
personalizados complementos, creando
216
depuración 30-32
Diccionario 9
descargar 9
extiende 212
jerarquía, creando 13
Ayuda menú 9
Historia 8
iconos, arrastre de las herramientas de
paleta 11, 12
imageData del, mal uso de 134
instalación de 9
interfaz controla 28
rompecabezas, la creación de 146
principal de Windows 10
metáforas 8
MobGUI 83
lecciones en línea 9
Para utilizar los botones de estilo, la
creación de 79
señalando, a SDK iOS 59, 60
poiting para Android SDK 47, 48
recordatorios de aplicación, la creación de
170
Recursos 9
[ 226 ]
LiveCode aplicación
otra pila, utilizando para el almacenamiento de
datos 107
almacenamiento de datos pila, creando 107-
109
datos externos, carga 103
datos externos, ahorrando 103
apilar estructura 100
archivo de texto, lectura 105, 106
archivo de texto, escritura 105, 106
URL, consulta 103-105
Aplicación WebScraper, creando 110
LiveCode Gerente Geometría
utilizado, para los diseños de 93
LiveCode móvil 35
loadImage manejador 150
ubicación de la tarjeta
creando 180-182
M
Mac artículo 189
Herramienta Magic Wand 140, 147
ventanas principales, LiveCode
sobre 10
inspector paleta 11
Message Box 11
herramientas de paleta 11
makepuzzle manejador 153
mapa
creando, de Estados Unidos 136-138
maskData
aproximadamente 134
utilizarse, por 139 de detección de colisiones
Tarjetas multimedia
aproximadamente 121
Enlaces para los medios, la extracción de 121,
122
Medios de tarjetas de guiones
la creación de 123, 125
mergAccessory 215
mergAnswerColor 215
mergAV 215
mergBanner 215
mergDoc 215
mergExt 215
mergMessage 215
mergMK 215
mergPop 215
mergReader 215
[ 227 ]
mergSettings Photoshop
mergTweet 215 aproximadamente 133
215 215
mergXattr
mergZXing 215
Message Box 11
MetaCard 8
MobGui 189
MobGUI
alrededor del 83, 212
descargar 84
Cuenta con 88
partida 85
utilizado, para la creación de banco de
pruebas de aplicación 86-88
utilizado, para los diseños de 95
con 213
de trabajo 213
MobGUI controles nativos
el 88 por
funciones 89, 90
mouseColor función 136
MouseEnter manejador 136
mouseUp manejador 179
moveCars manejador 144
N
ubicación nativo
seguimiento 165-167
newNumber booleano variable de 25, 26
Nook 67
notificación de mensajes 160
numberPressed 21
O
OpenCard evento 24
Opciones de orientación, la sección 194 iOS
Para utilizar los botones de estilo
la creación de 80
crear, mapas de bits utilizado 80
Photoshop, utilizado para la preparación de
estados de botón
80-83
P
Pascal 132
[ 228 ]
utilizado, para la preparación de los estados de
botón 80-82
física dispositivo Android
conectar 61
conectar, Fuego Kindle utiliza 61
Fuego Kindle, añadiendo a ADB 62, 63
imágenes, banco de pruebas de aplicaciones
móviles
carga 77-79
piezas
creando, por rompecabezas 146-151
pixel 132
Plus 8
preopenstack manejador 155
R
raza imagen del coche
creando 141-145
hipódromo
la creación de 139, 140
regex 114
regexp 114
recordatorio 159, 160
pantallas recordatorio de aplicaciones
creando 170-174
recordatorio formulario de entrada 182-185
recordatorios de aplicación
tarjetas, trazando 170-174
la creación de 170
formulario de entrada 182-185
Scripts de inicio de tarjetas, añadiendo 178-180
ubicación de la tarjeta, creando 180-182
pantallas, creando 170-174
apilar las funciones de nivel, añadiendo 174-177
Requisitos y Restricciones, opciones de Android
artículo
198
Requisitos y opciones Restricciones, iOS
artículo
194
resetpuzzle manejador 153
cambiar el tamaño de controlador de
utilizado, para los diseños de 91
returnInField mensaje 174
RGB valora 132
botones rollover 28-30
RunRev.com 133
Tutoriales en línea RunRev los 32
Runtime Revolution 8, 211
[ 229 ]
S T
tamaño de la pantalla y la orientación navegación por pestañas, WebScraper
ajuste 91 la creación de 110, 111
diseño, utilizando LiveCode Gerente nombres sabrosos código
Geometría 93 Ice Cream Sandwich 48
diseño, utilizando MobGUI 95 Jelly Bean 48
diseño, utilizando controlador de cambio de Key Lime Pie 48
tamaño 91 banco de pruebas de aplicaciones móviles
otros tamaños 96 crear, MobGUI utilizado 86-88
14 guiones selector de fechas, mostrando 77
lista de la compra 160 correo electrónico de escritorio de aplicaciones,
showData función 175, 176 invocando 72
aplicación de la calculadora sencilla e-mail de prueba, instalar en dispositivos de 72
botones de la calculadora, la creación de 19 aplicación del navegador nativo, llamando a 75
controladores de tarjetas, añadiendo 22, 23 nativa aplicación de correo electrónico, llamando a 72
la creación de 18 imágenes, carga de 77-79
ampliar 27 la creación de 70
inspector paleta, utilizando 18 pila del banco de pruebas, la creación de 70, 71
Las variables 24 tratando, en los dispositivos 73, 74
simple pila página web, apertura 75
pruebas, en los simuladores de 65, 66 probadores
probando, en los dispositivos 66, 67 Android App, enviando a 199
Pantallas Splash opción, iOS sección 193 TestFlightApp.com
pila de secuencias de comandos de nivel aproximadamente 204
aproximadamente 174 URL 204
añadiendo, a app recordatorios 174-177 Texto de la carta
pila de tarjetas 8 aproximadamente 120
Stacks 8 la creación de 120
Pilas artículo 189 medición del tiempo las funciones de utilidad
apilar estructura creando 161-164
aproximadamente 100 recolectores de tiempo
código impulsado 100 creando 161-164
ubicaciones de código 101-103 tmControl 213, 214
diseños creados manualmente 100 lista de tareas pendientes 160
estructura de pila, jerarquía LiveCode 14 herramientas de paleta
Standalone Settings Opciones de aplicación sobre 11
aproximadamente 188 iconos, arrastre de 11, 12
Android artículo 196 toRand función 179
Copiar archivos del artículo 189 eventos de toque
General de la Sección 188 la creación, por rompecabezas 155-157
iOS artículo 189 touchMove evento 156
Pilas artículo 189
Status Bar opción, iOS artículo 195 U
Imagen fija de control 28
SuperCard 8 ID de dispositivo único (UDID) 200
[ 228 ]
Unix Time 161 la apertura de 75
Opciones de interfaz de usuario de Android, WebScraper aplicación
sección 199 Navegador tarjeta 112
UTC (Tiempo Universal Coordinado) 161 la creación de 110, 111
Guardianes de la tarjeta 125
V Links tarjeta 114
121 tarjetas multimedia
las variables navegación por pestañas, la creación de 110
alrededor del 24 por Texto de la carta 120
currentcommand variable de 25 Web del artículo
CurrentValue variable 26 189
newNumber variable booleana 25 Ventanas artículo 189
tipos de variables 24-26
detallado sintaxis 20 X
Reproductor de vídeo de control 28
Xcode
W instalando 57-59
[ 229 ]
[ 230 ]
Guía para principiantes