Está en la página 1de 340

LiveCode Mobile Development

Guía para principiantes

Crea divertidas, aplicaciones ricas para Android y iOS con


LiveCode

Colin Holgate

BIRMINGHAM - MUMBAI
Guía LiveCode Mobile Development principiantes

Copyright © 2012 Packt Publishing

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.

Cada esfuerzo se ha hecho en la preparación de este libro para asegurar la exactitud de la


información presentada. Sin embargo, la información contenida en este libro se vende sin garantía,
ya sea expresa o implícita. Ni el autor, ni Packt Publishing y sus concesionarios y distribuidores
serán responsables por cualquier daño causado o presuntamente causado directa o
indirectamente por este libro.

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.

Publicado por primera vez: Julio 2012

Producción de Referencia: 1190712

Publicado por Packt Publishing


Ltd. Place Livery
35 Livery Street
Birmingham B3 2PB, Reino Unido.

ISBN 978-1-84969-248-9

www.packtpub.com

Cover Image Artie por Ng (artherng@yahoo.com.au)


Crédito
s

Autor Coordinador del Proyecto


Colin Holgate Leena Purkait

Revisores Corrector de pruebas


Björnke von Gierke Stephen Seda
Andreas Rozek
Los indizadores
Adquisición Editor Hemanjini Bari
María Jazmín Nadar Tejal Daruwale

Lead Editor Técnico Coordinador de Producción


Susmita Panda Arvindkumar Gupta

Editores Técnicos Cubrir las obras


Rati Pillai Arvindkumar Gupta
Lubna Shaikh
Acerca del Autor

Colin Holgate se formó originalmente como un técnico en telecomunicaciones en la


Real Fuerza Aérea, pero con el advenimiento de la era de la computadora personal hizo la
transición a trabajar como ingeniero de soporte técnico para las empresas que se incluyen
Apple Computer Reino Unido.

En 1992 se trasladó a los EE.UU. para convertirse en un programador de tiempo multimedia


completo, que trabaja para La Compañía Voyager. En este cargo, programado premio
ganando varios CD-ROM, incluyendo la Noche de un día duro y This Is Spinal Tap.

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.

Andreas Rozek es un físico (aunque con muchos años de experiencia en proyectos de


investigación de la UE en materia de telecomunicaciones y multimedia móvil). Pero, como
su esperanza (es decir,
que "Las computadoras debe ser divertido y apoyar a las personas en lugar de molestar o
incluso impedir") todavía tiene que convertirse en la realidad común, esencialmente de
búsqueda - día tras día - para entornos de desarrollo muy adecuado "para el resto de
nosotros" y trata de construir "soluciones humanitarias" por medio de sistemas acoplados
de manera inteligente, conceptos intuitivos operativos, interfaces de usuario atractivas y
procedimientos de tolerancia a fallos.

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

Los archivos de soporte, libros electrónicos, ofertas de


descuento y mucho más
Es posible que desee visitar www.PacktPub.com para los archivos de soporte técnico y
descargas relacionadas con tu libro.

¿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.

En www.PacktPub.com, También se puede leer una colección de artículos libres de


técnicos, regístrate para abrir una serie de boletines gratuitos y recibe descuentos y
ofertas exclusivas en los libros Packt y libros electrónicos.

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.

¿Por qué registrar?


 Se pueden hacer búsquedas a través de cada libro publicado por Packt
 Copiar y pegar, imprimir y marcar contenido
 A petición y accesible a través del navegador web

Acceso gratuito para los titulares de cuentas Packt


Si usted tiene una cuenta con Packt en www.PacktPub.com, Puede utilizar esta
opción para acceder PacktLib hoy y ver nueve libros totalmente gratis. Sólo tiene que
utilizar sus credenciales de inicio de sesión para acceso inmediato.
Tabla de contenidos
PreFas 1
Tíoter 1: LivEcode fundatals 7
Antecedentes historia y metaphors8
Usted tiene LiveCode, ¿no? 9
Aprender la disposición de la land9
Principal windows10
Tiempo de acción - es un lastre, pero te va a gustar 11!
Creación de un hierarchy13
Pila structure14
¿Dónde código goes14
Tiempo para la acción - de decisiones y la navegación entre cards15
Realización de una aplicación sencilla calculadora 18
Inspector de pistas, oh ... 18
Tiempo de acción - hacer de la calculadora buttons19
Verbosidad, sinónimos, y "yo" 20
Adición de la tarjeta handlers22
Tipos de variables en LiveCode24
Ampliación de la calculator27
Otra interfaz controls28
Reproductor de vídeo control28
Imagen fija control28
Rollover buttons28
Controles muchos más ... 30
Debugging30
Tutorials32 línea de RunRev
Summary32
Tíoter 2: Getting Starteed con LivEcode Mobile 35
iOS, Android, o ambas 36?
Table of Contents

Convertirse en un Android developer36


Android Market36
Amazon Appstore40
Descarga del SDK44 Android
Instalación del SDK de Android en Mac OS X (Intel) 45
Instalación del SDK de Android en Windows46
LiveCode Señalando el SDK47 Android
Convertirse en un developer49 iOS
Instalación Xcode57
LiveCode Señalando el SDKs59 iOS
Antes de que podamos hacer nuestro primer móvil app60
Cómo prepararse para la prueba de Android60
Tiempo de acción - a partir de un Android virtuales device60
Conexión de un físico device61 Android
El uso de un Fire61 Kindle
Tiempo para la acción - la adición de un fuego Kindle a ADB62
Cómo prepararse para la prueba de iOS64
Tiempo de acción - con el iOS simulator64
Appiness por fin! 64
Tiempo para la acción - probando una simple pila en la simulators65
Tiempo para la acción - probando una simple pila de devices66
Además reading67
Summary68
Tíoter 3: El usuario Edificio Enterfaces 69
La creación de un banco de pruebas móvil app70
Tiempo para la acción - lo que el banco de pruebas stack70
Invocando el escritorio aplicación de correo electrónico 72
Tiempo de acción - pidiendo que el nativo de aplicación de correo electrónico 72
Instalación del correo electrónico de prueba a devices72
Tiempo de acción - stack tratando de banco de pruebas en devices73
Abrir una web page75
Tiempo de acción - pidiendo la aplicación del navegador nativo 75
Mobile-solamente, fecha picker76
Tiempo de acción - que muestra una fecha picker77
Móvil de sólo carga pictures77
Tiempo de acción - Carga pictures78
Haciendo OS estilo buttons79
Usando bitmaps80
Tiempo para la acción - el uso de Photoshop para preparar botón states80
MobGUI al rescate! 83
Tiempo de acción - Conceptos básicos del MobGUI84

[ 2]
Table of Contents

Test app cama, el way86 MobGUI


Tiempo de acción - con MobGUI para hacer un banco de pruebas app86
MobGUI nativo controls88
Tiempo de acción - con controles nativos de MobGUI89
Ajuste de las cosas por pantalla diferente sizes91
Diseño con un cambio de tamaño handler91
Tiempo para la acción - diseño simple código example92
Layout usando la Geometría LiveCode Manager93
Tiempo para la acción - con el Administrador de Geometría para posicionar buttons94
Layout usando MobGUI95
Tiempo de acción - con MobGUI recordar diseños para US95
Además reading96
Summary97
Tíoter 4: Uso de RemotDa etuna y Medios de Comunicación 99
Pila structure100
Código impulsado y creado manualmente layouts100
Lugares para code101
Cargar y guardar data103 externos
Consultar un URL103
Leer y escribir en un archivo de texto 105
Usando otra pila para almacenar data107
Tiempo de acción - la creación de una base de datos guardar stack107
Creación de una web "scraper" app110
Tiempo de acción - la creación de navegación por pestañas 110
El navegador card112
Tiempo de acción - la adición del navegador controls113
El card114 Links
Tiempo para la acción - hacer una función de extracción de enlaces 115
Las personas desaparecidas links118
Una cosa más ... 118
Tiempo de acción - la adición de la tarjeta de Enlaces "init" handler118
El texto card120
Tiempo de acción - la creación de la card120 Texto
El card121 Medios
Tiempo para la acción - la extracción de una lista de medios links121
Tiempo de acción - la creación de la tarjeta de los medios de comunicación scripts123
Los encargados card125
Time for Action - la creación de los Guardianes card126
¿Y ahora qué? 129
Summary129

[ 3]
Table of Contents

Tíoter 5: Realización de una Jigsaw Puzzle Aplicunción 131


Datos Formato de la imagen 132
Misterio byte ... 133
El mal uso imageData del! 134
Tiempo para la acción - probando una función getPixel 134
Simulación de un montón y un montón de botones 136
Tiempo de acción - hacer un mapa de los Estados Unidos 136
Uso de maskData para la detección de colisiones 139
Tiempo de acción - haciendo un hipódromo 139
Tiempo para la acción - lo que un coche de carreras 141
Cómo hacer un rompecabezas 146
Ir a pedazos ... 146
Tiempo de acción - la creación de las piezas y la elección de un image146
Tiempo de acción - la transferencia de imageData151
Adición de interactividad 154
Tiempo para la acción - creación contacto events155
Summary158
Tíoter 6: Realización de una Reminder Aplicunción 159
¿Qué es un "recordatorio"? 159
¿Cuándo? 160
Fecha y hora pickers161
Tiempo de acción - la creación de fecha y hora pickers161
¿Dónde? 164
Tiempo para la acción - probando ubicación nativo tracking165
Cálculo de la distancia entre dos puntos en Earth167
¿Qué? 169
Hacer que los recordatorios app170
Diseñar el cards170
Tiempo de acción - crear el recordatorio aplicación screens170
Pila nivel scripts174
Tiempo para la acción - la adición de funciones de nivel de pila 174
Home tarjeta scripts177
Tiempo para la acción - lo que los botones de la tarjeta Inicio work178
Crear una ubicación card180
Tiempo de acción - hacer de la ubicación de la tarjeta work181
Recordatorio entrada form182
Tiempo de acción - teniendo en información sobre el reminder182
Summary185
Tíoter 7: deploying to YDe nuestrovicio 187
Configuración de aplicaciones independientes 188

[ 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

Pop Concurso Answers 219


Capítulo 1, LiveCode Fundamentals219
Capítulo 2, Primeros pasos con LiveCode Mobile220
Capítulo 3, Edificio del usuario Interfaces220
Capítulo 4, Uso de datos remotos y Media221
Capítulo 5, Cómo hacer una aplicación Jigsaw Puzzle 221
Capítulo 6, Cómo hacer una aplicación Recordatorios 222
Index 223

[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.

El iPhone fue lanzado en junio de 2007, y el sistema operativo Android, en septiembre de


2008. Si quieres crear algo que funcionaba en ambas plataformas que tenía que aprender
dos entornos de desarrollo y lenguajes; Objective-C para el iPhone y Java para Android.

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.

Si lo importante es la forma en que la herramienta es accesible, entonces LiveCode gana


fácilmente. Es también
tan válida una opción para hacer la mayoría de las aplicaciones que usted podría desear. De
hecho, para aplicaciones que
son un conjunto de pantallas individuales, como sería el caso para la mayoría de aplicaciones de
utilidad, así como para el tablero
y los juegos de puzzle, LiveCode se adapta mejor que las otras herramientas. También tiene un
mejor acceso
a elementos de la interfaz nativa, con el resto de herramientas que normalmente tienes que crear
gráficos que [7]
se asemejan a la apariencia de los controles nativos de iOS y Android, en lugar de acceder a la
realidad.
Preface

Con su fácil de usar Inglés-como lenguaje de programación, y la "pila de tarjetas de" la


metáfora, LiveCode le permite concentrarse más en la creación de la aplicación que desea
hacer, y menos en los aspectos técnicos del entorno de desarrollo.

Lo que este libro cubre


Capítulo 1, Fundamentos LiveCode, le dará a conocer el entorno LiveCode, y su lenguaje de
programación similar al Inglés. Los usuarios experimentados LiveCode puede saltarse este
capítulo, pero para alguien nuevo en LiveCode este capítulo le llevará a través de la creación
de una aplicación de calculadora simple como una manera de hacer que usted familiarizado
con las distintas herramientas y la jerarquía de LiveCode.

Capítulo 2, Introducción a LiveCode Mobile, describe en detalle cómo configurar tu ordenador


Mac o Windows para que esté listo para desarrollar y publicar aplicaciones móviles. Este
capítulo le llevará hasta el final de registrarse como un desarrollador de iOS y Android, para
crear y probar su aplicación móvil LiveCode primero.

Capítulo 3, La construcción de interfaces de usuario, se muestra cómo utilizar algunas de las


características estándar de telefonía móvil, tales como selectores de fecha, álbum de fotos y
cámara. En este capítulo también mostrará cómo hacer sus propios botones con iOS mirar a
ellos, y cómo utilizar el LiveCode add-on, MobGUI, para hacer su vida más fácil!

Capítulo 4, Uso de datos remotos y medios de comunicación, se analiza la estructura de las


aplicaciones, dónde colocar el código, y cómo leer y escribir en archivos de texto externos.
También creará una aplicación móvil que es un "web-scraper", capaz de extraer enlaces y los
medios de comunicación desde una página web, y mostrar o reproducir el contenido de esa
página.

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.

Capítulo 6, Realización de una aplicación Recordatorios, examina qué tipo de información se


necesita para representar un "recordatorio", y cómo configurar los eventos de notificación
para que sean alertadas en una fecha y hora especificadas. Va a hacer una aplicación de
recordatorios que puede crear una lista de este tipo de eventos, e incluso una lista de los
eventos en función de su ubicación actual.

Capítulo 7, Implementación en tu equipo, es un capítulo de referencia que describe todos los


ajustes de publicación móviles. El capítulo también muestra cómo enviar aplicaciones a los
probadores beta, y cómo empezar con la presentación de su aplicación final a las tiendas de
aplicaciones diversas.

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

Lo que necesitas para este libro


Además del propio LiveCode, se necesitaría un Mac o un PC, iOS y / o dispositivos Android, y
una cantidad de dinero si se siguen las partes sobre cómo registrarse como desarrollador
móvil! Para el desarrollo de iOS tendrá acceso a un Mac basado en Intel para algunos de los
pasos. El código de ejemplo requiere LiveCode versión 5.5 o posterior.

¿Quién es este libro para


El lector ideal para este libro sería alguien que ya sabe LiveCode, está interesado en la
creación de aplicaciones móviles, y quiere salvar a las muchas horas que tomaría para
localizar toda la información sobre la manera de empezar! Capítulo 1, Fundamentos
LiveCode, ayudará a los lectores que saben de programación, pero no están familiarizados
con LiveCode suficiente para que puedan beneficiarse del resto del libro.

Convenios
En este libro, usted encontrará varios epígrafes que aparecen con frecuencia.

Dar instrucciones claras de cómo llevar a cabo un procedimiento o tarea, usamos:

Tiempo de acción - en el epígrafe


1. Acción 1
2. Acción 2
3. Acción 3

Instrucciones a menudo necesitan una explicación adicional para que tengan


sentido, por lo que se siguen con:

¿Qué ha pasado?
En este epígrafe se explica el funcionamiento de las tareas o instrucciones que acaban

de terminar. Usted también encontrará algunas otras ayudas de aprendizaje en el libro,

incluyendo:

Pop Quiz - encabezamiento


Estos son cortas preguntas de opción múltiple destinadas a ayudarle a probar su comprensión.

[ 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

Cualquier entrada de línea de comandos o de salida se


escribe de la siguiente manera:
export PATH = $ PATH :/ Usuarios / nombredeusuario / Documents /
android-sdk-macosx /
plataforma-
herramienta

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.".

Advertencias y notas importantes aparecen en un cuadro


como este.

Consejos y trucos aparecer así.

[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.

Descargar el código de ejemplo


Puede descargar los archivos de código de ejemplo para todos los Packt libros que haya comprado de su cuenta
al http://www.packtpub.com. Si ha adquirido este libro en otra parte, se puede visitar
http://www.packtpub.com/support y registrarse para tener los archivos enviados por
correo electrónico directamente a usted.

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.

Por favor, póngase en contacto con nosotros en copyright@packtpub.com con un enlace al

material sospechoso pirata. Le agradecemos su ayuda en la protección de nuestros autores, y


nuestra capacidad para producir contenido valioso.

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 tiene un lenguaje de programación similar al Inglés, un entorno de


desarrollo gráfico, y una metáfora fácil de entender estructural. Cuando se crea
una aplicación, pasar más tiempo pensando en cómo poner en práctica las
diferentes características, y menos acerca de las complejidades de la
herramienta que está utilizando. Pero si usted nunca ha usado antes LiveCode,
todavía va a ser desconocido al principio. Este capítulo le llevará hasta la
velocidad, listo para los últimos capítulos que requerirán que usted está más
familiarizado con la terminología y las características de la herramienta.

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á:

 Familiarizarse con el entorno LiveCode


 Investigar la jerarquía de un LiveCode "pila"
 Crear una aplicación de calculadora simple
 Más información sobre los controles de la interfaz diversos

Así que vamos a seguir adelante con ella ...


LiveCode Fundamentals

Antecedentes historia y metáforas


Muchas herramientas de desarrollo sólo tiene que presentar un lenguaje de
programación y las interfaces con las rutinas del sistema. Herramientas de alto nivel a
menudo presentan las mismas cosas, pero con una estructura de tal manera que se
pueda imaginar metáforas del mundo real de los diferentes aspectos de la herramienta.
LiveCode es muy parecido a eso, y su metáfora es una pila de tarjetas. Esta metáfora se
originó con
HyperCard de Apple Computer herramienta de autoría, creada por Bill Atkinson en
mediados de 1980. La primera versión de HyperCard fue lanzado en agosto de 1987, y se
convirtió en un gran éxito tanto en la educación y multimedia. Empresas como la Compañía
Voyager publicada líneas enteras de productos que se crearon utilizando HyperCard.

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.

Bajo la variación HyperCard de la metáfora, los documentos consistían en cartas que


sostenía botones, campos y gráficos de mapas de bits, fondos que mantenían un conjunto
de tarjetas y pilas que contenían un conjunto de fondos. LiveCode adopta un enfoque
ligeramente diferente, y en lugar de tener fondos que sostienen las tarjetas, que le permite
agrupar un conjunto de controles de interfaz y configurar aquellos a actuar como si fueran
una entidad de fondo. Esto termina siendo más flexible, aunque algo ajeno a las personas
que han utilizado HyperCard mucho.

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"

Además, puede escribir lo externo, que son comandos y funciones escritas en C


idioma, lo que puede ampliar las capacidades de LiveCode aún más.

[9]
LiveCode Fundamentals

Usted tiene LiveCode, ¿no?


Si aún no ha instalado LiveCode, vaya to esta página web: http://www.runrev.com/
descargas /. Usted tendrá que crear una cuenta para poder descargar la versión de
prueba. Si usted planea ir a comprar LiveCode, lea esta página:
http://www.runrev.com/ productos / livecode / licencia de tipo-
overview / para comprender las variaciones de licencia hay. Como guía aproximada,
basada en el precio en el momento de la escritura, para crear aplicaciones móviles que son
libres, que sería de $ 99, o si desea hacer que las aplicaciones que
podría cobrar, que sería de $ 499. Cada plataforma adicional que usted desea publicar serían
otros $ 99.

Una vez que haya descargado la versión de prueba, o comprar una de las licencias,
¿por qué no seguir adelante y lanzar él!

El aprendizaje de la configuración del terreno


La primera vez que LiveCode abierto se le mostrará una ventana de inicio, que funciona
como una forma de abrir documentos recientes, una lista de enlaces a foros, e información
de instalación inicial. También proporciona una manera de ver la información promocional.
No hace ningún daño para mantener la ventana abierta, pero si lo hace pasar a cerrarla
puede volver a abrir la interfaz de inicio en el menú Ayuda.

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í.

Las lecciones en línea

Además de los recursos que se ven dentro de sí mismo


LiveCode, hay una enorme cantidad de información y
tutoriales en el sitio web RunRev. Un buen starting punto
sería: http://lessons.runrev.com/

[ 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 parte superior de la paleta de herramientas muestra todos los controles de la interfaz


que usted tendrá que crear una aplicación interactiva. Debajo de ellos son un conjunto de
herramientas para la edición de gráficos vectoriales, y un conjunto de herramientas para la
edición de gráficos de mapa de bits.

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.

Tiempo de acción - es un lastre, pero te va a gustar!


Usted construye cosas en LiveCode arrastrando los iconos de la paleta de herramientas a la ventana Stack. Si las
paletas no están abiertas, la paleta Inspector se puede abrir haciendo clic en elicono en la parte izquierda de la
barra de herramientas, o seleccionando una de las opciones del inspector de menú en el menú Objeto. La paleta
de herramientas se puede abrir mediante la selección de la paleta de herramientas en el menú Herramientas.
Paraello, siga estos pasos:

1. En el menú Archivo, seleccione Nuevo Mainstack.


2. En la paleta de herramientas, haga clic en la herramienta de edición (la parte superior
derecha icono de lado).

Seleccione Editar, o no ...

En LiveCode puede arrastrar controles de la paleta de herramientas a la


ventana de la tarjeta sin seleccionar primero la herramienta de edición. Sin
embargo, si usted está en la herramienta de ejecución que no será capaz de
seleccionar el control con el fin de ajustar su posición o tamaño, por lo que
en estas instrucciones se nos intencionalmente la selección de la herramienta
de edición antes de agregar controles a la ventana de la tarjeta, sólo para
estar seguro.

3. Arrastre los iconos de la parte superior de la paleta de herramientas a la ventana de pila.


4. Pruebe las opciones de capas en la parte inferior del menú Objeto.

[ 12 ]
Chapter 1

5. Seleccionar más de un elemento, y experimentar con las opciones de alineación de


los objetos en la paleta Inspector. La alinear opciones se muestran de forma
automática cuando se selecciona varios objetos, pero también puede seleccionar
Alinear objetos en el menú desplegable de la paleta Inspector. Usted no verá esta
opción si sólo hay un objeto seleccionado. Aquí vemos las opciones, porque tres
botones están seleccionados:

6. Seleccione un solo botón, y en la paleta Inspector introduzca un nombre y una


etiqueta. Si no ve el nombre y los campos de la etiqueta, asegúrese de que ha
seleccionado las propiedades básicas de menú desplegable la paleta Inspector.

[ 13 ]
LiveCode Fundamentals

7. Agregar varios controles más a la ventana de la tarjeta, y practicar la alineación y el


nombramiento de los controles. También puede cambiar el tamaño arrastrando las
asas que se ve en las esquinas y los laterales, mientras que el control está
seleccionado. Así es como se podría mirar si había añadido algunos botones, un
campo, un panel de pestañas, y un control de reproductor de video:

¿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.

Creación de una jerarquía


Todo va a alguna parte, pero tener las cosas en el lugar equivocado puede llevar a problemas.
Así que debemos aprender más sobre la estructura de una pila LiveCode.

[ 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

No hay ninguna ventaja de rendimiento de tener el controlador compartido en el nivel de


tarjeta, o mucho de una mejora del tamaño del archivo, pero como se está desarrollando el
código de la calculadora, puede realizar cambios en el guión sola tarjeta, en lugar de 11
calculadora individuo guiones botón.

Ahora vamos a empezar a construir la calculadora, y agregar secuencias de comandos


para los 14 botones, un campo, y la tarjeta.

Descargar el código de ejemplo


Puede descargar los archivos de código de ejemplo para todos los Packt libros que haya comprado
de su cuenta alhttp://www.packtpub.com. Si ha adquirido este libro en
otra parte, se puede visitar http://www.packtpub.com/support y
registrarse para tener los archivos enviados por correo electrónico directamente
a usted.

Tiempo de acción - haciendo y navegar entre las tarjetas


Una calculadora en realidad no necesita una pantalla de título, pero vamos a hacer de todos
modos, con el fin de
practicar la adición de secuencias de comandos y haciendo un poco de navegación básica.
Usted puede tomar su borrado Salida
pila de antes, o iniciar un Mainstack Nuevo en el menú Archivo.

1. Seleccionar tarjeta nueva en el menú Objeto.


2. Utilice el menú Ver para ir ya sea a la tarjeta anterior (Ir Anterior), o primera tarjeta
(Vaya primero).
3. Asegúrese de que dispone de la herramienta de edición seleccionado en la paleta de
herramientas y arrastre un campo Etiqueta para el centro de la ventana de la
tarjeta. En este caso es fácil ver cuál es el campo Label (etiqueta que dice: en el
icono), sino como un consejo general, puede apuntar a los controles
en la paleta de herramientas y ver un mensaje de ayuda que muestra qué tipo de control
que es.
4. En la sección Propiedades de base de la paleta Inspector, desactive la casilla No
envuelva
casilla de verificación.
5. Tipo título en el campo de entrada Nombre.
6. Elegir contenido del Inspector menú desplegable, y reemplace el texto inicial que
dice Label: escribiendo Simple Calculator en el campo de entrada de
contenido.
7. Elija el formato de texto en el menú desplegable, y haga clic en el botón de
[ 17 ]
LiveCode Fundamentals
texto alinear el centro, que es el medio de los tres botones Alinear.

[ 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:

9. Arrastre un botón de inserción (el segundo icono de la parte superior izquierda de la


paleta de Herramientas)
desde la paleta de herramientas y colóquelo debajo del campo de título.
10. En el Inspector, seleccione Propiedades básicas del menú desplegable (que es el
menú que dice Formato de texto en la captura de pantalla anterior), el tipo de
Comenzar en el campo de entrada Nombre. LiveCode mostrará automáticamente
el mismo texto como etiqueta del botón, aunque no lo escriba en la casilla de
Etiqueta.
11. Usted puede entrar en las opciones de formato de texto para los botones también, si lo desea!
12. Prepararse mentalmente - estamos a punto de escribir nuestro primer script!
13. Con el botón seleccionado, elija Objeto de secuencias de comandos en el menú
Objeto. También puede hacer clic en el mismo botón y seleccione Editar guión.

[ 19 ]
LiveCode Fundamentals

14. La ventana Script aparecerá y mostrará un script de arranque, de en


mouseUp, (Línea en blanco), y final mouseUp como se muestra en la
siguiente captura de pantalla:

15. Completar la secuencia de comandos escribiendo ir ahora en la línea en


blanco que le demos este guión final:
en mouseUp
ir ahora
final mouseUp

16. Cierre la ventana de script, y haga clic en Sí cuando se le pregunte si


desea guardar los cambios.
17. Elija la herramienta Buscar de la paleta de herramientas (el superior izquierdo-
herramienta, que se parece a una flecha de cursor regular), y haga clic en el botón
Comenzar que usted acaba de hacer. Todo está bien ahora estás mirando una
tarjeta en blanco. No se preocupe, usted no acaba de borrar
el campo de título y un botón! Ahora se encuentra en la segunda de las dos cartas
que usted hizo antes. Utilice el menú Ver de nuevo para volver a la primera tarjeta,
para tratar de nuevo el botón.
18. Ahorre! En el menú Archivo, seleccione Guardar y guarde la pila, con el nombre
Calculadora Simple, en algún lugar se puede encontrar fácilmente más tarde.
[ 20
]
Chapter 1
Tal vez usted podría hacer una carpeta para guardar las pilas que usted hará
durante la lectura de este libro.

[ 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.

Pop Quiz - mejor nombre?


Si usted quiere hacer algo grande en el mundo herramienta de autoría multimedia,
¿cuál de estos nombres sería una mala elección?
1.Henry
2.Bill
3.Bob
4.Kevin

Realización de una aplicación sencilla calculadora


Incluso con un conocimiento básico de LiveCode, puede empezar a hacer algo de uso. Aquí
vamos a hacer una pila calculadora muy simple.

Inspector de pistas, oh ...


Usted se encontrará con la paleta Inspector mucho, así que tome un momento para estudiar cómo se
comporta. Cuando se selecciona un objeto en la tarjeta, verá que la paleta Inspector cambia su apariencia, a
veces incluso su altura, para mostrar las opcionespara el elemento seleccionado. Es lo suficientemente
inteligente como para notar cuando se ha seleccionado varios artículos, a continuación, se mostrará la
alineación herramientas.

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

Tiempo para la acción - lo que los botones de la calculadora


Uso de la primera captura de pantalla de este capítulo como guía, vamos a construir los
botones de la calculadora (los guiones que se escriben también se enumeran más adelante,
si usted quiere asegurarse de que la ha escrito correctamente):

1. Si no está ya ahí, diríjase a la segunda tarjeta (la actualmente vacía).


2. Asegúrese de que el botón Editar está seleccionada en la paleta de herramientas y
arrastre un botón de comando a la tarjeta, en la posición del botón con la etiqueta
7.
3. En las propiedades básicas de la paleta Inspector, para cambiar el estilo del menú
desplegable
a Rectángulo redondeado (en la vida real que se tomara el tiempo para tener buen gráfico
botones, aquí se acaba mi juego feo "arte programador!").
4. Establezca el nombre del botón para number7, y la etiqueta 7.
5. Seleccione Guión objeto en el menú de objetos para ver la secuencia de comandos
de arranque como lo hizo con el botón Begin.
6. En la línea en blanco entre en mouseUp y mouseUp final, tipo
numberPressed la etiqueta de mí.

7. Cierre y guarde el script.


8. Seleccione el botón y hacer una copia de la misma, por la elección de objetos
duplicados en el menú Editar, y la posición que el botón con la etiqueta 8 será.
Copiar / Pegar alt y arrastrar otras dos formas para duplicar un objeto.
9. Establezca el nombre de Number8, y la etiqueta 8.
10. Repetir los pasos 8 y 9, por los botones 9, 4, 5, 6, 1, 2, 3, 0, y el punto decimal,
usando el número correspondiente en lugar de 8. Para el punto decimal, defina el
nombre de
decimalpoint.

11. Duplicar uno de los botones de nuevo, el nombre del nuevo botón
dividir, y el tipo /por su etiqueta.

12. Seleccione Secuencia de comandos de objetos para el botón de división,


y cambiar numberPressed en la línea media para
operatorPressed, hacer toda la línea se lea como
operatorPressed el nombre corto de mí.

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.

Verbosidad, sinónimos, y "yo"


La naturaleza cerca-Inglés del lenguaje de programación en LiveCode es increíblemente poderoso,
pero tan rígidamente. En algunas otras herramientas que usted tiene la opción de si utiliza
detallado similar al Inglés
sintaxis, menos detallado, o lo que se llama la sintaxis con punto. El lenguaje Lingo, en Adobe Director,
es un
buen ejemplo para comparar.

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

o un poco menos detallado sintaxis:


el texto del miembro 1 = "hola mundo"

[ 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

poner 3 caracteres de la palabra 2 de fld 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

numberPressed se propagará hasta un controlador de tarjeta vamos a añadir (pronto). la


etiqueta de mí
se verá en la etiqueta que se define para el objeto de que el guión está
dentro de.

establecer el clipboardData
["texto"] a mí

En este caso, me normalmente se refieren al objeto (como es el caso con la etiqueta de


mí), sino porque nos dio la pista adicional de ["Texto"], LiveCode sabe que es el
contenido de texto del campo que tiene ese guión, y no el propio campo. Sin embargo,
debido a que es el potencial de confusión al leer su propio código más tarde, habría que
agregar un par de palabras para que el significado más claro:

establecer el clipboardData ["texto"] en el


texto de mí

[ 28
]
Chapter 1

Por cierto, que el guión de presentación del campo no es necesario


para la calculadora a trabajar. Simplemente está ahí para que en
cualquier momento puede hacer clic en el campo y tienen el valor
actual se copia en el portapapeles para pegar
en otras aplicaciones.

[ 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

En cualquier caso, ya que es un campo, LiveCode sabe lo que significa.

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á.

Adición de los controladores de tarjetas


Si hubieras atrevido a tratar de usar los botones de la calculadora, usted habría visto un
montón de errores de script. Tenemos que añadir en los controladores de la tarjeta de nivel
para estar en el extremo receptor de las llamadas que los botones están haciendo. En lugar
de caminar a través de escribir una sola línea de código a la vez, probablemente sería más
rápido para presentar las líneas de una sola vez y explicar lo que hace cada línea. En una
sesión de práctica, aquí están las líneas que hemos celebrado hasta el momento:

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

en mouseUp se activa al presionar y soltar el botón izquierdo del ratón mientras en el


botón, numberPressed llamará a un controlador de tarjeta de llamada
"numberPressed", pasando con ella el sello que había establecido para el botón que tiene
este script.
La C(Borrar) botón tiene este script:
en mouseUp
clearPressed
final mouseUp

clearPressed llamará a un guión carta llamada "clearPressed"

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

Y este es el que está en el botón + -:


en mouseUp
toggleSign
final mouseUp

El campo de la pantalla tiene este script:


en mouseUp
establecer el clipboardData
["texto"] a mí mouseUp final

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

Tipos de variables en LiveCode


En términos generales, las variables son posiciones de memoria donde se almacenan los
valores que usted necesita para acceder más tarde. En la mayoría de lenguajes de
programación que usted puede dictar que las rutinas tienen acceso a las variables. Menos
Inglés-como lenguas pueden utilizar los términos "público", "privado", y "protegido". Las
cosas no son tan diferentes en LiveCode pero aquí las palabras utilizadas describir
más de la región donde se encuentra la variable utilizada. Si una variable ha de ser legible en
todas partes, que sería "global". Si es sólo para ser usado en el guión actual, es "local".

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

nivel de tarjeta: Esta es la primera línea de la

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.

Este es el controlador para al pulsar las teclas +, -, *, / o botones:


el operador operatorPressed
currentCommand si está vacío,
poner campo "display" en operador
currentTotal poner en currentCommand
poner en verdadero
newNumber más
poner operador en currentCommand
equalsPressed
End If
final operatorPressed

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

El contenido del campo de visualización se almacenan en la CurrentValue variable, y el


botón operador ha pulsado último (que se almacena en currentCommand) se mira para
ver qué sucede después. Si no había un operador anterior (como sería el caso si se ha
pulsado =dos veces en una fila) no hacemos caso al pulsar el botón y salir de la rutina. Para
los cuatro operadores,
nosotros hacemos el cálculo correspondiente. Después, guarde el nuevo total corriendo a la
currentTotal variable, asegúrese de que el newNumber variable booleana se establece
verdadero (De modo que el botón siguiente número pulsado borrará el campo de la
pantalla), y nos olvidamos de la última tecla de mando que se pulsa, poniendo vacío en
la currentCommand variable.

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.

Para el último controlador, togglesign, inserte el siguiente código:


en togglesign
si el personaje de un campo de "display" es
"-" y luego borrar el carácter de un campo
"display"
más
poner "-" delante campo
"display" end if
final togglesign

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

Pop Quiz - Trato de recordar ...


Como se llega a aprender una nueva herramienta que puede llegar a tomar un montón de
tiempo recordando que la cosa es que usted necesita. ¿Sabes lo que quieres hacer, ya
sabes cómo hacerlo, pero
no puede recordar dónde se encuentra esa cosa! ¿A dónde fuiste a establecer el estilo de
texto para el campo título de la calculadora?
1.El menú Editar.
2.El menú Objeto.
3.El sección Formato de texto de la paleta Inspector.
4.El menú Texto.

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:

 Los botones de la calculadora de operador se nombran para que el script tarjeta


sabe que uno hace clic sobre.
 Cuando el botón se presiona =, hay un conjunto de si declaraciones en el
equalspressed controlador que determinar qué sucede después.

Tener un héroe go - para llegar a la raíz de las cosas


En Windows, puede hacer un símbolo de raíz cuadrada con Alt 251, y en Mac con Opción +
v Desafortunadamente LiveCode no le gusta como los rótulos de los botones! Al menos en
Mac, al escribir ese personaje en la paleta Inspector, el carácter inmediatamente se
desvanece. Una solución alternativa sería utilizar el cuadro de mensaje y escriba lo
siguiente:
establecer la etiqueta de btn "raíz cuadrada" a "√"

Eso te dará el símbolo de la derecha como la etiqueta del botón.

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

Otros controles de interfaz


Hasta ahora sólo hemos tenido que buscar en los botones y los campos para poder crear
la calculadora. En capítulos posteriores vamos a usar muchos controles más, así que
vamos a echar un vistazo a ellos.

Reproductor de vídeo de control


Si su sistema tiene instalado QuickTime, LiveCode puede reproducir películas QuickTime,
utilizando el tipo de control del reproductor. Aquellos se pueden añadir a la tarjeta de
varias maneras, así como mediante el uso de un comando de secuencia de comandos tal
como se describe en los siguientes puntos:
 Un archivo puede ser añadido de su disco duro seleccionando Importar como archivo de
control / Video
en el menú Archivo
 Un jugador de vacío puede ser creado seleccionando Nuevo Control / Jugador de la
Objeto menú
 Un control del reproductor se pueden arrastrar desde la paleta de herramientas a la
tarjeta
 Un jugador puede crear con código, incluyendo el establecimiento de su nombre:
nuevo jugador "player name"

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"

Imagen fija de control


De la misma manera que se acaba de ver para la reproducción de vídeo, imágenes fijas
también se puede añadir a una pila. Todas las opciones que se muestran para la adición de
un reproductor de vídeo puede ser utilizado para las imágenes. Aquí, por ejemplo, es el
script necesario para añadir el logotipo de su empresa RunRev de la tarjeta:
nueva imagen "revlogo"
establecer el nombre del archivo de imagen "revlogo" a
"http://www.runrev.com/runrev- globals / corporate-nav / images /
runrev.gif "

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.

Controles muchos más ...


LiveCode tiene una gran cantidad de diferentes controles. Muchas variaciones son sólo
leves, pero hay muchos que son bastante diferentes unos de otros. Mira el menú Objeto y
luego nuevo control. Como verás la lista es muy larga!

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

La mayoría de lo que se ve es el mismo que cuando se edita scripts, pero si usted ve la


variación de depuración esté en un estado de pausa, una imagen congelada del programa
mientras se ejecuta. En este ejemplo, el programa se detuvo porque la línea 46 está en
busca de un campo denominado dis play, y no hay un campo, debe ser mostrar.

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.

Si el guión se detuvo por un punto de interrupción, puede utilizar la fila de botones en la


parte superior para pasar a través del código. Los botones son:

 Continuar establecerá el script que se ejecuta de nuevo


 Deténgase se detendrá la secuencia de comandos en ejecución, de modo que usted
puede hacer cambios
 Mostrar siguiente instrucción mostrará un indicador a la izquierda de la línea actual
 Entra en la declaración siguiente Se utiliza para entrar en un controlador diferente

[ 42
]
Chapter 1

 Paso a paso por la declaración siguiente irá en el próximo estado de cuenta en


el controlador de corriente, sin entrar en un controlador mencionado en la línea
actual
 Al salir del manejador actual se utiliza para saltar las líneas restantes en un
controlador que había entrado previamente en y salir de vuelta al controlador
que llamó a la actual

Usted se familiarizará con el editor de script y depurador a medida que avanza, pero que debería empezar!

Tutoriales en línea de RunRev


En este capítulo hemos cubierto lo suficiente como para que se familiarice con el entorno,
para practicar el uso de algunos controles, y para hacer un poco de escritura de guiones. Hay
mucho para LiveCode como una herramienta, y por lo que puede estar interesado en mirar
en otros temas, o entrar en más profundidad de la que se describe aquí.

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.

En este capítulo cubrimos:

 Botones, campos, secuencias de comandos y la estructura de la pila, para


obtener una comprensión de cómo funcionan juntos.
 Varios guiones cortos, para ilustrar la sintaxis de Inglés-como utilizado por LiveCode.
 La ventana de script, y cómo le depurar un script.
 Otros controles de la interfaz, como preparación para su uso en los capítulos posteriores.

[ 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:

 Regístrate para Android Market


 Regístrate para Amazon Appstore
 Descargar e instalar el SDK de Android
 Configurar LiveCode para que sepa dónde buscar para el SDK de Android
 Conviértete en un desarrollador de iOS de Apple
 Descargar e instalar Xcode
 Configurar LiveCode para que sepa dónde buscar los SDK de iOS
 Configure simuladores y dispositivos físicos
 Pruebe una pila en un simulador y dispositivo físico

Aquí vamos
...
Getting Started with LiveCode Mobile

iOS, Android, o las dos cosas?


Podría ser que sólo tienen interés en iOS o sólo en Android. Usted debe ser capaz de ver
fácilmente dónde vaya directamente a, a menos que estés intrigado acerca de cómo vive la
otra mitad! Si, como yo, eres un capitalista, entonces usted debe estar interesado en
ambos sistemas operativos.

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.

Convertirse en un desarrollador de Android


Es posible desarrollar aplicaciones Android OS sin tener que firmar nada, pero vamos a tratar
de ser optimista y suponer que en los próximos 12 meses, usted tendrá tiempo para hacer
una aplicación impresionante que le hará rico! Para ello, vamos a repasar lo que está
involucrado en la firma
a publicar sus aplicaciones tanto en el Android Market y la Appstore de Amazon.

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.

¿Qué dirección de correo electrónico para usar?


Algunos servicios de Google son más fáciles para inscribirse, si usted
tiene una cuenta de Gmail. Crear una cuenta de Google +, o firmar para
arriba para algunos de sus servicios de Cloud, requiere una dirección de
Gmail (o eso me parecía a mí en el tiempo). Si ya ha configurado Google
Checkout como parte de su cuenta, algunos de los pasos de proceso de
la firma a ser más simple. Por lo tanto, usa tu cuenta de Gmail, y si usted
no tiene uno, cree uno!

 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 pago de los $ 25 se puede hacer a través de Google Checkout.

 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

 Por último, es necesario aceptar el Acuerdo de distribución para desarrolladores de


Android Market.

 Que le den una excusa para ir y hacer un poco de café ...

[ 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.

¿Qué dirección de correo electrónico para usar?


Esto se siente como déjà vu! No hay ninguna ventaja real en Google
utilizando su dirección de correo electrónico al registrarse en el Programa de
Desarrolladores de Amazon Appstore, pero
si le sucede que tiene una cuenta en Amazon, inicia sesión con eso. Se
simplificará la etapa de pago, y su cuenta de desarrollador y la cuenta
general de Amazon se asocian entre sí.

[ 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

Pop Quiz - cuando algo es demasiado?


Re 1.You 'al final del desarrollo de su mega-aplicación, es en 49,5 MB de tamaño, y sólo
tiene que añadir música de título de la pantalla. ¿Por qué no añades esa melodía
épica de dos minutos que se han alineado?
a.It tomaría demasiado tiempo para cargar
b. Las personas tienden a omitir la pantalla de título
tamaño de archivo c.El pronto de todos modos se va
a ir a más de 50 MB
d. Heavy metal podría no ser apropiada para aplicaciones de cuentos para niños

Descarga del Android SDK


Jefe de vuelta a http://developer.android.com/, y haga clic en Descargar enlace, o ir
directamente a http://developer.android.com/sdk/index.html.

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

Instalación del SDK de Android en Mac OS X (Intel)


LiveCode sí mismo no requiere un Mac con procesador Intel, se puede desarrollar pilas
usando un Mac basado en PowerPC, pero tanto el SDK de Android y algunas de las
herramientas para iOS requiere un Mac basado en Intel, que lamentablemente significa que
si usted está leyendo esto como se sienta al lado de su Mac G4 o G5, entonces no vamos a
llegar muy lejos!

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.

Abrir el Terminal de aplicación, que está en Aplicaciones / Utilidades. Es necesario


cambiar los directorios que se ubicará en el android-sdk-macosx carpeta. Un truco muy
útil en la Terminal es que usted puede arrastrar los elementos en la ventana de terminal para
obtener la ruta de acceso a ese elemento. Con ese truco, puede escribir CD y un espacio en la
ventana de Terminal, a continuación, arrastre el android-sdk-macosx carpeta justo
después del espacio. Usted va a terminar con esta línea:
nuevo-host-3: colin ~ $ cd / Users / colin / Documents / android-sdk-macosx

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 $

O escriba cuidadosamente o copiar y pegar esta línea del archivo Léame:


tools / android update sdk - no-ui

Pulse Intro o Enter nuevamente. ¿Cuánto tiempo toma la descarga dependerá de su


conexión a Internet. Incluso con una conexión a Internet muy rápida, todavía tardará
más de una hora.

[ 45 ]
Chapter 2

Instalación del SDK de Android en Windows


La página de descargas recomienda utilizar el exe enlace de descarga, y que va a hacer
cosas adicionales, tales como comprobar si tiene el Java Development Kit (JDK) instalado. Al
hacer clic en el enlace, utilice la opción Ejecutar o Guardar las opciones como lo haría con
cualquier descarga de un instalador de Windows. Aquí se optó por utilizar Ejecutar. Si usted
hace uso de Guardar, entonces usted tendrá que abrir el archivo después de que se guardan
en el disco duro. En el siguiente caso, ya que el JDK no se ha instalado, un
cuadro de diálogo aparece diciendo para ir al sitio de Oracle para obtener el JDK:

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.

De cualquier manera, te da la bienvenida con otro instalador para ejecutar o guardar,


como usted prefiera. Naturalmente, se necesita un tiempo para que el instalador haga lo
suyo también! Cuando finalice la instalación, aparecerá una página de registro JDK, sino
que depende de usted si se registra o no.

De vuelta en el cuadro de diálogo de instalación de Android SDK, puede hacer clic en el


botón Atrás y, a continuación, en el botón Siguiente para volver a esa etapa JDK de
cheques, sólo que ahora se ve que usted tiene el JDK instalado. Complete los pasos
[ 46 ]
Getting Started with LiveCode Mobile
restantes de la instalación de SDK, como lo haría con cualquier instalador de Windows.

[ 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.

LiveCode Señalando el SDK de Android


Después de todo el trabajo de instalación y de línea de comandos, es un cambio
refrescante para volver a LiveCode!

[ 48 ]
Getting Started with LiveCode Mobile

Abra las Preferencias LiveCode, y seleccione Soporte Móvil.

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).

¡Uf! Ahora, vamos a hacer iOS ...

Pop quiz - nombres sabrosos código


1.Android OS utiliza algunos nombres curiosos de código para cada versión. En el
momento de escribir esto, estamos en Android OS 4, que tenía un nombre en clave
de Ice Cream Sandwich. Versión 4.1, presentado en el Google I / O en 2012, es Jelly
Bean, y la siguiente versión se piensa que es tarta de lima. Cuál de estos es más
probable que sea el nombre de código para la posterior OS Android?
una. Entrar b
Cabin.
Almuerzo c

[ 49 ]
Chapter 2
Box. Munchies
d. Cheesecake de limón

[ 50 ]
Getting Started with LiveCode Mobile

Convertirse en un desarrollador de iOS


Creación de aplicaciones para iOS LiveCode requiere que LiveCode debe tener acceso al SDK
de iOS. Esto está instalado como una parte de las herramientas de desarrollo Xcode, y que es
un programa Mac-sólo. Además, al hacer subir una aplicación para iOS App Store, la aplicación
que se utiliza es también sólo para Mac, y también es parte de la instalación de Xcode. Si
usted es un desarrollador basado en Windows y desean desarrollar y publicar para iOS,
entonces necesitará una máquina virtual que se puede ejecutar Mac OS, Mac o un real.

La mayor diferencia entre convertirse en un desarrollador de Android y un desarrollador de


iOS es que usted tiene que firmar con Apple para su programa de desarrolladores, incluso si
nunca producir una aplicación para iOS App Store. Si las cosas van bien, y terminan haciendo
una aplicación para las diferentes tiendas, entonces esto no es un gran problema. Se le habrá
costado $ 25 para poder presentar al Android Market, $ 99 al año (el primer año gratis) para
presentar a la Appstore Amazon, y
$ 99 por año (incluyendo el primer año) para ser un desarrollador de iOS de Apple. Sólo venden
más de
300 copias de su aplicación sorprendente 0,99 dólares, y es pagado fo sí!

Su punto de partida para iOS es http://developer.apple.com/programs/ios/.

[ 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

La compra real de la cuenta de desarrollador de iOS se maneja a través de la Apple Store


para su región.

[ 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!

Pop quiz - nombres de código para iOS


Usted tuvo fácil con el examen sorpresa sobre los nombres de Android OS de código! No es así con iOS.

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

Hacer frente a los dispositivos más nuevos y mayores


A principios de 2012, Apple lanzó al mercado un nuevo iPad. El principal
punto de venta de éste en comparación con el iPad 2 es que tiene una
"Retina" display. Los iPads regulares tienen una resolución de 1024x768,
y la versión retina tiene un
resolución de 2048x1536. Si desea crear aplicaciones para tomar ventaja de
eso, usted debe obtener la versión de Xcode desde la Mac App Store, y
no es una de las versiones más antiguas de la página del desarrollador. El
nuevo Xcode exige que sea en Mac OS 10.7.3 o posterior. Por lo tanto, para
apoyar plenamente los últimos dispositivos, es posible que tenga que
actualizar el software del sistema más de lo que esperábamos! Pero espere,
hay más. Al tomar una versión posterior de Xcode, se
A continuación se ausente de las versiones de iOS SDK que se necesitan para
apoyar mayores dispositivos iOS, como el iPhone original y el iPhone 3G.
Afortunadamente, usted puede ir a Preferencias en Xcode, y hay una
pestaña de descargas, donde se puede disfrutar de los SDKs mayores
descargados en la nueva versión de Xcode.

LiveCode Señalando los SDK de iOS


Abra las Preferencias LiveCode, y seleccione Soporte Móvil.

[ 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.

Antes de que podamos hacer nuestra primera aplicación


móvil
Ahora que los SDK necesarios están instalados y LiveCode sabe dónde están, podemos hacer
una pila y probarlo en un simulador o en un dispositivo físico. Nosotros, sin embargo, tiene
que conseguir los simuladores y dispositivos físicos calentado ...

Cómo prepararse para la prueba de Android


Simulación en iOS es más fácil de lo que es para Android, y las pruebas en un dispositivo físico es
más fácil en
Android que en iOS, pero la puesta en marcha de los dispositivos Android físicas puede ser
horrendo!

Tiempo de acción - a partir de un dispositivo virtual de Android


Usted tendrá que hacer un poco de investigación profunda en las carpetas del SDK de Android para encontrar
el programa de instalación de Android Virtual Device, y bien puede ser que desee crear un acceso directo o
alias para un acceso más rápido.

1. Navegue hasta el SDK de Android instrumentos carpeta, situado en C: \


Archivos de programa (x86) \ Android \ android-sdk \ en Windows,
y en su Documentos: android-sdk-macosx: herramientas carpeta en Mac
OS.
2. Abra el Administrador de AVD en Windows o Android en Mac (se parece a un ejecutable
de Unix
- Haz doble clic en él, y la aplicación se abrirá a través de una ventana de línea de
comandos).
3. Si estás en Mac, seleccione Administrar AVDS ... en el menú Herramientas.

[ 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

9. Haga clic en el icono de Android, y seleccione la casilla de verificación Build Andoid.


10. Cierre el cuadro de diálogo Configuración, y echar un vistazo en el menú Desarrollo.
11. Si la máquina virtual está en funcionamiento, debería ver que aparece en el
Target Testsubmenú.

¿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.

Conexión de un dispositivo físico Android


Conexión de un dispositivo Android físico puede ser muy sencillo:

1.Conecte el dispositivo por USB.


2.Observe el submenú Desarrollo Target Test para ver en la lista.

Puede haber casos problemáticos sin embargo, y de búsqueda de Google se convertirá en su


mejor amigo antes de que haya terminado! Deberíamos considerar un caso problema de
ejemplo para darle ideas sobre cómo resolver situaciones similares que pueden aparecer.

El uso de un Kindle Fire


Cuando se trata de encontrar los dispositivos Android, el SDK de Android reconoce que
muchos de ellos de forma automática. Algunos dispositivos no son reconocidos, y hay
que hacer algo para ayudar Android Debug Bridge (ADB) encontrarlos.

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

Tiempo para la acción - la adición de un fuego Kindle a ADB


Sólo se necesita una línea de texto para agregar el Kindle Fire a la lista de dispositivos que
ADB conoce. La parte difícil es localizar el archivo de texto para editar y conseguir ADB para
reiniciar después de hacer los cambios. Las cosas están más involucrados con Windows a
Mac, ya que también hay que configurar el controlador de USB, por lo que los dos sistemas
se muestran aquí como procesos distintos:

Para Windows:

1. En el Explorador de Windows, navegue hasta la ubicación del archivo


adb_usb.ini se encuentra, en C: \ Users \ nombredeusuario \
android \..

2. Abrir el archivo de texto adb_usb.ini en un editor de texto. El archivo no tiene


saltos de línea visibles, por lo que Wordpad sería una opción mejor que el Bloc de
notas.
3. En la línea después de las tres líneas de instrucción, tipo de 0x1949.
4. Asegúrese de que no hay líneas en blanco, y el último carácter del archivo de texto
debe ser el 9al final de 0x1949.
5. Guardar.
6. Vaya a donde android_winusb.inf se encuentra, en C: \ Archivos de
programa
(X86) \ Android \ android-sdk \ extras \ google \ USB_Driver \.

7. Haga clic derecho en el archivo y en Propiedades | Seguridad, seleccione


Usuarios de la lista, y haga clic en Editar para configurar los permisos para que se
le permite escribir en el archivo.
8. Abierto android_winusb.inf en el Bloc de notas.
9. Agregue estas tres líneas al [Google.NTx86] y [Google.NTamd64] secciones,
y guardar el archivo.
; Kindle Fire
%% SingleAdbInterface = USB_Install, USB \ VID_1949 PID_0006 y
%% CompositeAdbInterface = USB_Install, USB \ VID_1949 PID_0006 + +
MI_01

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.

Para Mac (mucho más simple!):

1. Vaya a la ubicación del archivo adb_usb.ini se encuentra. En Mac, en el


Finder, seleccione el menú Buscar | Ir a la carpeta ..., y el tipo de ~ /. Android
/.

2. Abrir el archivo adb_usb.ini en un editor de texto.


3. En la línea después de las tres líneas de instrucción, tipo de 0x1949.
4. Asegúrese de que no hay líneas en blanco, y el último carácter en el archivo de texto sería
el 9
al final de 0x1949.
5. Guardar.
6. Open Utilities | Terminal.
7. Usted puede dejar OSX saber cómo encontrar ADB desde cualquier lugar, al escribir esta línea
(reemplace yourusername con su nombre de usuario, y también cambiar la ruta si
ha instalado el SDK de Android en una ubicación diferente):
export PATH = $ PATH :/
Users/yourusername/Documents/android-sdk- macosx / platform-
tools

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.

Cómo prepararse para la prueba de iOS


Si cuida pasó por todas las etapas Android, sobre todo en Windows, se espera que sea
divertido por la brevedad de esta sección! Hay un problema, aunque, en realidad no se
puede probar en un dispositivo iOS de LiveCode. Vamos a ver lo que tiene que hacer en su
lugar en un momento, pero primero, aquí están los pasos necesarios para probar una
aplicación en el simulador de iOS.

Tiempo de acción - utilizando el simulador de iOS


Los primeros pasos son muy parecidos a los de aplicaciones de Android, pero luego se
vuelve más rápido. Recuerde que esto sólo se aplica a Mac OS, y sólo se puede hacer
estas cosas en Windows si está utilizando Mac OS en una máquina virtual, y hacer que
muy probablemente no cubiertos por el acuerdo de usuario Mac OS! En otras palabras, lo
mejor es conseguir un Mac si tiene la intención de desarrollar para iOS.

1. Abra LiveCode, cree un nuevo Mainstack y guarde la pila en su disco duro.


2. Seleccione Archivo | Configuración de aplicaciones independientes ....
3. Haga clic en el icono de iOS y seleccione la casilla de verificación Generar para iOS.
4. Cierre el cuadro de diálogo de configuración, y echar un vistazo en el menú Desarrollo.
5. Usted verá una lista de opciones del simulador, para el iPhone y el iPad, y diferentes versiones de
iOS.

¿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.

Appiness por fin!


[ 70 ]
Getting Started with LiveCode Mobile

What just happened?


En este punto, usted debería ser capaz de crear un nuevo Mainstack, guardarlo, seleccione iOS
o Android en el cuadro de diálogo Configuración independiente, y ser capaz de ver los
simuladores o dispositivos virtuales en el menú Desarrollo / Test. En el caso de una aplicación
para Android, también podrá ver el dispositivo en la lista, si está conectado a través de USB a la
vez.

[ 71 ]
Chapter 2

Tiempo para la acción - probando una simple pila en los


simuladores
Siéntase libre de hacer lo que es más elaborado que solicitó en estos pasos! Las instrucciones
estarán haciendo la suposición de que usted sabe cómo encontrar las cosas por ti mismo en la
paleta de inspector de objetos.

1. Abra LiveCode, cree un nuevo Mainstack, y guárdelo en un lugar donde es fácil


encontrar en un momento de ahora.
2. Establecer la ventana de la tarjeta a un tamaño de 1024x768, y desactive la casilla de
verificación Redimensionable.
3. Arrastre un campo de etiqueta en la esquina superior izquierda de la ventana de la
tarjeta, y establecer su contenido en algo apropiado. Hello World podría hacer
muy bien!
4. Si está desarrollando en Windows, vaya al paso 11.
5. Abra la aplicación autónoma de diálogo Configuración, haga clic en el icono de
iOS y seleccione la casilla de verificación Generar para iOS.
6. En Opciones de orientación, establecer la orientación inicial iPhone en horizontal.
7. Cierre el cuadro de diálogo.
8. Desde el Desarrollo / Target Test sub-menú, seleccione el simulador de iPad.
9. Seleccione Prueba en el menú Desarrollo.
10. Usted debe ahora ver a su pila de prueba que se ejecuta en el simulador de iOS!
11. Como se señaló anteriormente, el lanzamiento del dispositivo virtual Android.
12. Abra la aplicación autónoma cuadro de diálogo Configuración, haga clic en el icono
de Android, y seleccione la casilla de verificación Build para Android.
13. En Opciones de la interfaz de usuario, establezca la orientación inicial a Horizontal.
14. Cierre el cuadro de diálogo.
15. Si el dispositivo virtual está en ejecución por ahora, hacer todo lo necesario
para pasar de la pantalla de inicio bloqueada, si eso es lo que se está
mostrando.
16. Desde el Desarrollo / Target Test sub-menú, seleccione el emulador de Android.
17. Seleccione Prueba en el menú Desarrollo.
[ 72 ]
Getting Started with LiveCode Mobile
18. Usted debe ahora ver a su pila de prueba que se ejecuta en el emulador de Android!
What just happened?

[ 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.

Tiempo para la acción - probando una simple pila de dispositivos


Consiga sus cables USB listo, y conectar los dispositivos a su computadora. Android primero ...

1. Se le debe quedar seleccionado en Configuración Android aplicación independiente.


2. Obtenga su dispositivo a su pantalla de inicio, más allá de la pantalla de bloqueo inicial, si
es que existe.
3. Elige Desarrollo / Target Test y seleccione su dispositivo Android. Bien puede decir
Androide y un número muy largo.

4. Elige Desarrollo / Test.


5. La pila debe ahora estar ejecutándose en su dispositivo

Android. Ahora iOS ...

1. Si usted no ha leído el capítulo posterior sobre la implementación en el dispositivo,


o las páginas de Apple, o que no han instalado los certificados y los archivos de
aprovisionamiento, entonces usted tendrá que pasar esta prueba, por ahora.
2. Cambiar la configuración de aplicación independiente de nuevo a iOS.
3. En Configuración de la aplicación básica de la configuración de iOS es un perfil en
el menú desplegable que muestra los archivos de aprovisionamiento que ha
instalado. Elija el que está configurado para el dispositivo que se va a probar.
4. Cierre el cuadro de diálogo y selecciona Guardar como aplicación autónoma ... en el
Expediente menú.
5. En Finder, busque la carpeta que acaba de crear, y lo abre para revelar la App
propio archivo. Como no se dio por la pila de un nombre sensible, será nombrado
Untitled 1.

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.

Tener un héroe go - Nook


Hasta hace poco, el apoyo de Android para el Nook Color de Barnes and Noble no era lo
suficientemente bueno para aplicaciones LiveCode a instalar. Parece que ha mejorado, sin
embargo, y bien podría ser otra tienda de aplicaciones que vale la pena para que usted
pueda apuntar.

Investigar el proceso de firma, descargar su SDK, y así sucesivamente. Con un poco de


suerte algo de lo que aprendió en la suscripción a las otras tiendas también se aplicará a la
tienda de Nook. Esta es su punto de partida:
https://nookdeveloper.barnesandnoble.com

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:

 Registrarse en Android Market


 Inscribirse en Amazon Appstore

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

Así que muchas pantallas diferentes!


Cuando se realizan aplicaciones de servicios públicos o juego para computadoras de
escritorio que puedas
a menudo llegar a tener una ventana de tamaño especial, por lo que usted puede hacer
gráficos personalizados que se ajustan exactamente. Con los dispositivos móviles que tiene
que hacer frente a una
amplia gama de tamaños de pantalla, y relaciones de aspecto, y también tienen elementos
de interfaz
que parecen correctos para el sistema operativo en el dispositivo del usuario.

LiveCode es capaz de publicar en Mac, Windows y Linux, y supone un avance hacia la


solución de la dificultad de buscar elementos de la interfaz adecuada para cada plataforma.
El menú View tiene un aspecto y elemento de menú Feel donde se puede elegir entre el
tema indígena, Mac OS Classic, Windows 95, y Motif. Lo mismo no puede decirse de los
sistemas operativos móviles, todos
controles parecen Motif. Usted todavía tiene dos opciones: puede crear gráficos que parecen
que pertenecen en su sistema operativo de destino, o puede llamar a rutinas nativas con el fin
de que el sistema se presenta los controles adecuados que buscan.
En este capítulo vamos a:

 Establecer un "banco de pruebas" de aplicaciones móviles


 Abra el correo electrónico y las ventanas del navegador
 Muestra un control de selector de fecha
 Carga de imágenes de la biblioteca y la cámara
 Hacer un botón de iOS buscando [ 77 ]

 Manual de diseñar una interfaz


 Utilice el código para diseñar una interfaz
 Mira a controles de la interfaz móvil de gran alcance add-on
Building User Interfaces

La creación de un banco de pruebas de aplicaciones


móviles
Como un campo de pruebas para las cosas que vamos a intentar, vamos a configurar una sola
aplicación móvil que cuenta con varias pantallas, una para cada una de las cosas que
queremos probar.

Lo que hay que llamar a la aplicación de banco de pruebas?


Podríamos llamar a casi cualquier cosa, pero vamos a dejar que el iPhone ayuda a
tomar la decisión por nosotros. En el iPhone y el iPod touch, sólo hay una pequeña
cantidad de espacio debajo de los iconos de la pantalla de inicio para que aparezca
su nombre. iOS se
su nombre nice app largo y se mostrará una versión abreviada del nombre,
utilizando elipses para concatenar los extremos del nombre juntos. "Mi
aplicación duper super" aparecerá como "Mi sup ... app" - no es tan informativo!
El número de letras que puede aparecer sin que se truncada variará
dependiendo de la anchura de las letras utilizadas, pero típicamente es un límite
de 11 cartas. Por lo tanto, vamos a llamar al banco de pruebas de aplicación "LC
banco de pruebas", que es exactamente 11 cartas!

Tiempo para la acción - lo que la pila de banco de pruebas


Antes de crear el iOS y Android, tenemos que conseguir lo que queremos ir como una pila
LiveCode, y completamente a prueba en nuestras computadoras de escritorio. Estos pasos
van a asumir que usted sabe cómo hacer lo que se le pide en LiveCode, sin instrucciones
precisas.

1. LiveCode Abrir, crear un nuevo Mainstack y Guardar como LCTestBed.


2. Establezca el tamaño en 320x480. Sólo para asegurarse de que las cosas van a
aparecer en la más pequeña de las pantallas. Las cosas que hacen que estará en la
zona lateral superior izquierdo de pantallas más grandes.
3. Vamos a hacer un botón por cada carta en la pila. Comience por hacer una llamada
Menú.

4. Nombre de la primera tarjeta Menú.

[ 70 ]
Chapter 3

5. Agrega botones para correo electrónico, navegador, DatePicker e Imagen.


Asegúrese de que los botones son lo suficientemente grandes para tocar en sus
dispositivos. Usted debe tener algo como la siguiente captura de pantalla:

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

Invocando el escritorio aplicación de correo electrónico


Hay muchos casos en que es posible que desee saber de los usuarios de sus aplicaciones. Tal
vez usted quiere que correo electrónico mejoras sugeridas, o dejar que te hagan preguntas.
Desde aquí se puede poner en marcha su programa de correo electrónico, y luego se van a
decidir qué
escribir. Si lo prefiere, puede configurar automáticamente la dirección "A", el tema, e
incluso algunos del cuerpo del mensaje. Por lo menos que podría hacer su vida más fácil, ya
que puede filtrar los correos entrantes basado en algo que le coloca en el campo de asunto.

Tiempo de acción - pidiendo que el nativo de aplicación de correo


electrónico
Vamos a hacer algunos campos y un botón para probar el envío de una función de correo electrónico.

1. Ir a la tarjeta e-mail y crear cuatro campos. Nómbrelos Desde, CC,


Asunto, y Cuerpo.

2. Hacer un botón denominado Test.


3. En el botón de prueba, escriba el siguiente guión:
en mouseUp
poner el campo "Para"
poner en ToText campo "CC"
en ccText
poner el campo "Asunto" en
subjectText poner campo "Cuerpo" en
bodyText
revMail ToText, ccText, subjectText,
bodyText final mouseup

4. Seleccione la herramienta de ejecución y la información de ejemplo tipo en cada uno de


los campos.
5. Haga clic en el botón Probar.

¿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.

Instalación del correo electrónico de prueba en los dispositivos


[ 72 ]
Chapter 3
No es ninguna sorpresa que la prueba funcionó escritorio, la posibilidad de abrir otras
aplicaciones es una característica básica de LiveCode. Aún así, es estupendo para poder
establecer un texto inicial para el nuevo mensaje de su uso. A continuación se debe ver
si esto puede funcionar en dispositivos también.

[ 73 ]
Building User Interfaces

Tiempo de acción - stack tratando de banco de pruebas en los


dispositivos
Conecta tu Android y / o dispositivo iOS al ordenador mediante USB. Estas instrucciones son
casi los mismos que en el capítulo anterior, donde hemos probado un Hello World pila, y
después de este punto cualquier dirección será más breve, basado en el supuesto de que usted
sabe los pasos necesarios para probar una aplicación en su dispositivo. Capítulo 7,
Implementación en el dispositivo, se describen
todas las opciones del cuadro de diálogo Configuración de aplicaciones independientes,
pero por el momento sólo vamos a rellenar algunos detalles, así que aquí vamos a ver
sólo una parte del diálogo, a partir de la configuración de Android.

1. Asegúrese de que Android está activada en la configuración de aplicación independiente


Cuadro de diálogo.
2. En el campo de identificador, el tipo de un identificador que será único.
com.yourname. lctestbed iba a hacer.

3. Obtenga su dispositivo a su pantalla de inicio, más allá de la pantalla de bloqueo inicial, si


es que existe.
4. En LiveCode, elija Desarrollo / Target Test y seleccione su dispositivo Android. Se
llamará Androide seguido de un número largo.
5. Elige Desarrollo / Test.
6. Después de haber sido compilados, la pila debe ejecutarse en su dispositivo
Android, y usted debería ser capaz de tocar el botón Correo electrónico y crear un
mensaje de prueba que utilizará el Android aplicación de correo electrónico.

[ 74 ]
Chapter 3

7. Pasando a iOS, si no lo ha hecho, lea el Capítulo 7, Implementación en el dispositivo, o


leer por lo menos aquellas partes que muestran cómo instalar los certificados para
desarrolladores iOS y archivos de aprovisionamiento. Al igual que con Android, sólo
vamos a cambiar un par de elementos en el cuadro de diálogo Configuración de la
aplicación independiente. Esta es el área que vamos a estar cambiando:

8. Cambiar la configuración de aplicación independiente para iOS.


9. Bajo la aplicación básica sección Configuración de los ajustes de iOS es un perfil
en el menú desplegable de los archivos de aprovisionamiento que ha instalado.
Elija uno que está configurado para el dispositivo que se va a probar en.
10. En el campo de aplicación interna en un ID único de identificación. Al igual que con
Android, com.yourname. lctestbed iba a hacer. sunombre Por supuesto,
sería su nombre, o el nombre de su empresa.
11. Si está probando el iPad, seleccione la opción iPod, iPhone y iPad de la
Dispositivos compatibles en el menú desplegable.
12. Cierre el cuadro de diálogo y selecciona Guardar como aplicación autónoma ... en el
Expediente menú.
13. Cuando el proceso de almacenamiento se haya completado puede ver un
mensaje de advertencia, informándole sobre pantallas de inicio y los iconos
que faltan. No haga caso de estos por ahora.
14. En Finder, busque la carpeta que acaba de crear, y lo abre para revelar la
App propio archivo.
15. Abra Xcode y seleccione Organizador en el menú Ventana y, a continuación, seleccione
Dispositivos, si no está ya seleccionado.

[ 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

Apertura de una página web


Otra de las necesidades de su aplicación ha de ser capaz de presentar información adicional
en línea. Usted quiere que el usuario haga clic en un enlace, o el tacto como el caso puede
ser, y será llevado a una página que enumera todas las otras aplicaciones que pueden
comprar a usted!

Tiempo de acción - pidiendo la aplicación del navegador nativo


Esta próxima prueba será mucho más rápida. O al menos, las instrucciones serán más
breves, como vamos a condensar algunos de los pasos en direcciones más concisas.

1. Copie el botón de prueba en la tarjeta de E-mail, y pegarlo en la tarjeta del


navegador, sólo para ahorrar algo de tiempo para hacer el botón de un aspecto
agradable.
2. Edite el script de botón de prueba, y el cambio a lo siguiente:
en mouseUp
lanzar url "http://www.runrev.com/"
final mouseUp

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:

1. Seleccione Android en el cuadro de diálogo Configuración de la aplicación independiente.


2. Selecciona tu dispositivo Android como el blanco de prueba en el menú de
Desarrollo (muy probablemente ya se habrá seleccionado de la prueba anterior).
3. Seleccione Prueba en el menú Desarrollo.
4. La prueba anterior de la aplicación se pueden sobrescribir, y la nueva versión
se iniciará automáticamente.
5. Pruebe el botón del navegador, y luego el botón de prueba que acaba de crear en el
Navegador tarjeta. La página runrev.com debe ser
abierta.
Para
iOS:

1. Seleccione iOS en el cuadro de diálogo Configuración de la aplicación independiente.


2. Rehacer el Guardar como aplicación independiente, arrastre el archivo de aplicación en su
dispositivo en el
Organizador ventana de Xcode, como lo hizo la
primera vez.
3. Prueba el navegador y botones de prueba, así que debería ver la página de inicio RunRev
abierto dentro de Safari.

¿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.

Si está probando tanto en Android y iOS, te darás cuenta de que el comportamiento es


diferente cuando regrese de mirar una página web. Con Android, puede pulsar el botón de
flecha hacia atrás
y todavía estar en la tarjeta del navegador de su pila. Con iOS la pila se reinicia cuando
regrese. Una solución a esto que vamos a examinar más tarde es para escribir datos en un
archivo externo, de modo que cuando la aplicación se vuelve a abrir podemos regresar al
usuario a donde estaban antes de salir de la aplicación.

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

Tiempo de acción - que muestra un selector de fecha


Muchas aplicaciones requieren que el usuario seleccione una fecha para un evento, y con
los dispositivos móviles hay una mirada especial a la "selector de fechas" que se
muestran. LiveCode nos permite visualizar dicho control.

1. Copie el botón de prueba de la tarjeta de explorador y pegarlo en la tarjeta DatePicker.


2. Cambiar el guión a lo siguiente:
en mouseUp
iphonePickDate
"fecha" mouseUp final

3. Seleccione la herramienta Ejecutar y probar el botón de prueba. Verás un


error, porque esta es una característica de sólo móvil.
4. Para variar, seleccione Simulador de iPhone o iPad a partir de la Meta de Desarrollo / Test
menú y, a continuación, elija Prueba en el menú Desarrollo.
5. Verá su stack abrir en el simulador de iOS, y puedes probar el DatePicker y
Pruebabotones, para ver el selector de fechas iOS se está visualizando.
6. Realice los mismos viejos Guardar Como e instalar siguiendo los pasos ventana del
organizador a fin de tratar el selector de fechas en su dispositivo iOS.
7. Pulse el botón DatePicker en la tarjeta del menú y el botón de prueba de la tarjeta datepicker.
Un selector de fecha iOS nativo debe aparecer.

¿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.

Mobile-solamente, cuadros de carga


Tal vez algún día será posible poner en imágenes desde la aplicación de escritorio ordenador
del usuario foto, o desde su cámara web, pero por ahora estas son características que sólo
funcionan en dispositivos móviles.

[ 79 ]
Building User Interfaces

Tiempo de acción - Fotos de carga


LiveCode puede recurrir a la biblioteca de fotos natal y aplicaciones de la cámara. Vamos a
probar ambos en Android y iOS, pero por supuesto sólo si el dispositivo tiene algunas
imágenes guardadas, y una cámara. Para el Kindle Fire, que no tiene una cámara, asegúrese
de guardar algunas imágenes en la aplicación Galería, de modo que por lo menos podemos
intentar cargar esos.

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.

2. Edite el guión de la Prueba de la cámara botón a lo siguiente:


en mouseUp
mobilePickPhoto "cámara"
fin mouseup

3. Edite el guión de la Prueba Biblioteca botón a lo siguiente:


en mouseUp
mobilePickPhoto
"biblioteca" fin mouseup

4. Al probar la carga de imágenes, la imagen que se carga cubrirá los botones de


prueba, nos impide volver a la carta menú. Para resolver este problema, agregue
esto a la escritura de la tarjeta:
en mouseup
si la palabra 1 del objetivo es "imagen" a continuación,
elimine el objetivo final mouseup

5. Ir a Ajustes aplicación independiente, y seleccionar Android.


6. Tenemos que preguntarnos Android OS permiso para utilizar la cámara, y para almacenar
la imagen, a fin de comprobar los requisitos para la cámara y escritura de almacenamiento
externo como se muestra en la siguiente captura de pantalla:

[ 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.

Pop Quiz - conseguir el cuadro grande


Nos tomamos tanto por sentado lo que se refiere a las mejoras en la tecnología. Usted puede
sentir duro hecho por si la cámara del teléfono es un mísero 2 megapíxeles, pero piensen en
cómo eran las cosas hace mucho tiempo, y lo grande que la imagen que estaban acostumbrados a
ver. En términos de la
número de píxeles, el número de pantallas originales de Macintosh pueden encajar en el área
indicada por una sola
8-megapixel foto?
un 4
a.
b. 15
c. 24
d. 45

Haciendo utilizar botones de estilo


Es bueno que LiveCode puede recurrir a los controles del sistema operativo nativo, sino
que plantea un problema debido a que los estándares de estilo Motif-botones se vean
muy bien en comparación. Podemos arreglar que, o bien mediante el uso de algunas
características integradas de LiveCode, o con el uso de un producto de complemento.

[ 82 ]
Chapter 3

El uso de mapas de bits


Como vimos en el Capítulo 1, Fundamentos LiveCode, puede utilizar mapas de bits diferentes
para los estados del botón. Usted puede obtener este tipo de imágenes, tomando imágenes
de los botones de su dispositivo móvil
por lo menos con iOS y OS Android v4 y más tarde, o usted puede ahorrar mucho tiempo
descargando archivos que otros han hecho disponibles. Algunos de estos archivos sólo tienen
licencia para su uso en prototipos,
pero vamos a echar un vistazo a uno que también tiene licencia para su uso en productos
comerciales.

Tiempo para la acción - el uso de Photoshop para preparar los


estados botón
El archivo que se va a utilizar Photoshop tiene efectos de filtro que GIMP no puede
manejar, así que por desgracia se necesita Photoshop para seguir estos pasos, o por lo
menos un amigo que tiene Photoshop!

1. Lea el artículo en el siguiente enlace:


http://spin.atomicobject.com/2011/03/07/photoshop-template-for-
iOS botones /

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

3. Abra el archivo en Photoshop (puede abrir automáticamente).


4. En la paleta Capas ocultar las capas nombradas Antecedentes y Barra de Herramientas -
Retina.
5. Expanda la capa denominada Button Bar - Retina, y ocultar la capa de la etiqueta del
botón.
6. Utilice la herramienta Marco para seleccionar un área alrededor del botón lateral
superior derecho. Ahora debería tener el siguiente aspecto:

[ 83 ]
Building User Interfaces

7. Elija Copiar combinado en el menú Editar.


8. Seleccione Nuevo en el menú Archivo, asegúrese de que el contenido de fondo se
establece en
Transparente, y aceptar el tamaño que le den.
9. Seleccione Pegar, será un ajuste exacto, y usted verá el estado de reposo para ese botón.
10. Seleccione Guardar para Web y dispositivos ... en el menú Archivo.
11. En el cuadro de diálogo Guardar, seleccione 24 bits PNG, y asegúrese de que la
casilla de Transparencia está seleccionada. Guarde el archivo PNG con un nombre
adecuado, por ejemplo bluebuttonup.png.
12. Volver al documento principal y activar la capa activa visible =.
13. Haga otra Copiar combinado, Nuevo, Pegar y Guardar para Web y dispositivos ....
14. Guarde el PNG como bluebuttondown.png.
15. Vuelve a LiveCode.
16. Vuelva a abrir la pila de banco de pruebas.
17. Utilice Archivo | Importar como Control | Archivo de Imagen ... para traer los dos archivos
PNG en la pila.
18. Puede colocar las dos imágenes en cualquier lugar. Desactive la opción Visible en Propiedades
[ 84 ]
Chapter 3
básicas para cada imagen.
19. Añadir un nuevo botón a la primera tarjeta, y le dan el nombre Ubicación.

[ 85 ]
Building User Interfaces

20. Establecer la secuencia de comandos botón para:


en iphoneStartTrackingLocation
mouseUp
poner iphoneCurrentLocation () en
theLocation theLocation respuesta
["latitud"]
final mouseUp

21. Seleccione la Ubicación botón, y en las propiedades básicas de la paleta


Inspector, desactivar el nombre de Show y opaco.
22. En Iconos y Fronteriza, apague Tres D, Border, y la frontera Hilite.
23. Haga clic en el botón varita mágica junto a la entrada del icono de la paleta Inspector.
24. Desde la biblioteca de imagen en el menú desplegable, seleccione Esta pila.
25. Haga clic en el encendedor de las dos imágenes azules.
26. Haga clic en el botón varita mágica junto a la entrada icono Hilite, a
continuación, haga clic en la más oscura de las dos imágenes.
27. Cambiar el tamaño del botón para ser lo suficientemente grande como para
mostrar la imagen azul sin que se recorta.
28. Coloque un campo Etiqueta en la parte superior de la tecla.
29. En Propiedades Básicas, marque la casilla para discapacitados. Esto es para
asegurarse de que el campo no atrapar el clic que usted va a hacer. Queremos
que el botón para obtener ese clic.
30. En Contenido, introduzca Ubicación.
31. En Formato de texto, establezca el campo para utilizar Helvetica Neue, 18 punto,
Bold, y
centro alineados.

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.

No hay una salida fácil, aunque, pero que le costará $ 50!

Pop quiz - el costo de las cosas en estos días


Al igual que con el aumento de sus expectativas para el tamaño de una foto digital,
también espera obtener una mayor cantidad de su dinero en estos días. Mientras que
sopesar las ventajas de gastar $ 50, ¿cuánto mejor valor crees que una memoria de
ordenador ahora en comparación con hace 25 años?
A.10 b veces mejor.
La mitad de bueno

C.100 veces mejor


d. 6.000 veces mejor!

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

Tiempo de acción - Conceptos básicos del MobGUI


Al igual que con otros complementos para LiveCode, MobGUI tendrá que ser instalado en la
carpeta de plugins LiveCode. En Windows que serán Mis documentos / Mi LiveCode
/ Plugins. En Mac será ~ / Documentos / My LiveCode / Plugins.

1. Descargue la versión más reciente de MobGUI de


http://mobgui.com/download. php.

2. El archivo comprimido se ampliará para convertirse en una pila LiveCode, llamado


revMobGUI.livecode.

3. Arrastre la pila en la plugins carpeta y volver a abrir LiveCode.


4. Hacer una nueva Maintstack.
5. En el menú Desarrollo, elige Plugins / revMobGUI. Esta ventana aparecerá:

[ 88 ]
Chapter 3

6. El primero de los iconos es la pantalla de bienvenida, y los últimos cinco iconos


son para cosas tales como el registro, soporte y actualizaciones recibiendo. Haga
clic en el segundo icono, el que se parece a un botón de reproducción. Verá este
acuerdo:

7. La ventana MobGUI se parece mucho a una combinación de la herramienta y LiveCode


Inspector paletas.
8. Intenta arrastrar elementos diferentes en la tarjeta, y mirar las opciones para cada artículo.
9. Haga clic en la imagen iPhone, a ver que se puede cambiar entre los
diferentes conjuntos de controles.
10. Seleccione el iOS Controles 2 de la lista que aparece.
11. Arrastre un TabBar en la ventana de la tarjeta, tenga en cuenta la forma en que se ajusta
a la parte inferior.
[ 89 ]
Building User Interfaces
12. Haga clic en el control Button y seleccione 4 de la lista.

[ 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.

Prueba de cama aplicación, la forma MobGUI


Vamos a hacer mucho la misma aplicación banco de pruebas, pero en este vamos a tratar de dar una
mirada más a la aplicación de iOS.

Tiempo de acción - con MobGUI para hacer una aplicación de banco


de pruebas
A medida que trabaja en LiveCode y empezar pilas nuevas, guardar y cerrar otras pilas
abiertas previamente, ya que todavía puede ser la memoria de ocupación. A veces se puede
entrar en un estado de confusión en el que estamos haciendo una nueva pila sin título, sólo
para encontrar que ya hay una pila sin título en el camino, que le pregunta si desea purgar.
¿Por qué no disfrutar de un lanzamiento para dejar de fumar y fresca de LiveCode!

1. Crear un nuevo Mainstack. Establezca el nombre de MGTestBed, y guárdelo en algún


lugar se puede encontrar fácilmente. Tal vez en la carpeta con el LCTestBed pila, que
se sentía sola!
2. Abra la ventana MobGUI, seleccionando el Desarrollo / Plugins / revMobGUI.
3. En la página de la ventana de controles MobGUI usted verá que usted puede elegir
un tamaño de la pila. Seleccione el tamaño de iPhone, y la pila se convertirá en
320x480.

[ 91 ]
Building User Interfaces

4. Haga clic en el botón denominado código preOpenCard Añadir a la escritura de la


tarjeta. Se trata de introducir el código necesario para inicializar MobGUI.

5. Establezca el nombre de esta primera carta a Correo electrónico.


6. Recuerde que puede cambiar entre los diferentes conjuntos de controles con un
clic derecho sobre la imagen del iPhone. A partir de ese menú, seleccione iOS
Controles 2.
7. Arrastre el control de BG en la tarjeta. Se va a crear una capa de fondo.
8. Arrastre una barra de pestañas en la ventana de la tarjeta. Se acoplará a la parte
inferior de la ventana de la tarjeta, y también cambiar el tamaño de la anchura de
la tarjeta.
9. Haga clic en el botón de control en la ventana MobGUI y seleccione 4.
10. Arrastre los botones en la ventana de la tarjeta, en la parte superior de la
barra de pestañas. Cuatro botones serán añadidos.
11. Lo más probable los botones se fuera a la parte derecha de donde deben estar.
Alt + doble clic en uno de los botones, para cambiar el tamaño y la propagación a través
del ancho de
la ventana de la tarjeta. Si es necesario, seleccione los botones y empujar hacia arriba o
hacia abajo para
hacer que ellos se sientan bien en contra de la barra de pestañas.
12. Seleccione cada botón y establecer los nombres y etiquetas a Correo
electrónico, Navegador, DatePicker, y Imagen.

13. Seleccione la Email botón y elegir objetos de secuencias de comandos en el


menú Objeto o haga clic en el botón y elija la opción Editar guión. La
secuencia de comandos se verá así:

[ 92 ]
Chapter 3

14. Usted puede agregar a la secuencia de comandos. Modifique la Touchstart controlador


para que se vea como el siguiente:
en Touchstart PID
mobGUITouch el identificador
largo de mi tarjeta ir el nombre
corto de mí
final Touchstart

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.

MobGUI controles nativos


Una de las características de gran alcance de MobGUI es que puede usar los controles
ordinarios LiveCode como marcadores de posición para lo que será controles nativos
cuando se ejecuta la aplicación en un dispositivo. Esto es algo que puedes hacer por ti
mismo con el código, pero ser capaz de mover los controles de marcador de posición
[ 93 ]
Building User Interfaces
alrededor hasta que te gusta el diseño se ahorrará un montón de tiempo.

[ 94 ]
Chapter 3

Tiempo de acción - con controles nativos de MobGUI


Haga clic en la imagen pequeña del iPhone en la ventana MobGUI, y asegúrese de que
usted está en el Native iOS controles establecidos.

1. Ir a la tarjeta E-mail y arrastre tres controles de texto y un control de texto de


líneas múltiples de los controles nativos de iOS establecidos en la ventana
MobGUI.
2. Nombre de los controles de texto como Para, CC, y Asunto, y el control de texto de
líneas múltiples como
Cuerpo. El tamaño de la Cuerpo debe hacerse lo suficientemente grande como para
entrar en unas pocas líneas de texto.
3. A medida que crea cada campo, tenga en cuenta que puede establecer el tipo de
teclado. Ajústelo a Email para la A y CC campos.
4. De iOS Controles 1 establecer y arrastrar dos botones a la ventana de la
tarjeta. Nombre de un Hecho, y el otro Enviar. Usted debe tener algo que se
parece a la siguiente captura de pantalla:

[ 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

6. MobGUI puede recuperar propiedades de estos campos nativas, utilizando un


mobFieldGet función. Cambie el botón Enviar touchEnd controlador a utilizar
esa función para cada campo, y también para llamar la revMail función:
en touchEnd PID
mobGUIUntouch el identificador largo de mí
poner mobFieldGet ("A", "texto") en
ToText poner mobFieldGet ("CC", "texto")
en cctext
poner mobFieldGet ("Subject", "texto") en
subjecttext poner mobFieldGet ("Cuerpo", "texto")
en BodyText revMail ToText, cctext, subjecttext,
BodyText
final 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.

Tener un héroe go - otras pruebas y bonitos iconos


Seguir adelante y añadir las otras dos pruebas a la pila.

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.

Ajuste de las cosas para diferentes tamaños de pantalla


Hasta ahora sólo hemos comprobado con un tamaño de iPhone, y sólo la orientación
vertical. Usted puede querer usar la misma pila para el iPhone y el iPad, o quizás iPad y
tabletas Android, que tienen relaciones de aspecto bastante diferentes.

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.

Layout utilizando un controlador de cambio de tamaño


Cuando se cambia una pila de tamaño de la ventana, envía un LiveCode resizeStack
mensaje de que pueden atrapar, con el fin de reorganizar los controles para la nueva
[ 98 ]
Chapter 3
anchura y altura.

[ 99 ]
Building User Interfaces

Tiempo para la acción - ejemplo sencillo diseño de código


Podría llegar a ser muy complicado si se puso un vistazo a todos los controles de la tarjeta
con código, así que sólo vamos a construir un caso sencillo, para mostrar la técnica. Puede
mejorar esta tarde para los casos más complejos.

1. Crear un nuevo Mainstack.


2. Añadir cuatro botones través de la anchura de la tarjeta.
3. Pon este controlador en el guión de la tarjeta:
en resizeStack newWidth,
newHeight
poner la anchura del botón 1 en buttonWidth
put (newWidth - 4 * buttonWidth) / 5 en
brecha de poner la parte superior del botón
1 en repetición buttonTop con a = 1 a 4
fijar la parte superior de un botón para buttonTop
establecer la izquierda del botón una brecha a + (a-1) * (brecha
+ buttonWidth)
Fin de repetición
pasar
resizeStack
resizeStack final

4. Cambiar el tamaño de la ventana de la tarjeta. Los botones deben extenderse uniformemente


a través de la tarjeta.
5. Vaya a Ajustes aplicación independiente y seleccione la opción iOS.
6. Asegúrese de que los dispositivos compatibles incluyen los iPad.
7. Establezca las opciones de orientación para incluir las cuatro orientaciones.
8. En el menú de Desarrollo estableció el objetivo de prueba para ser el
simulador de iPad, y hacer una prueba.
9. En el simulador, elija Rotar a la izquierda o Girar a la derecha, en el menú Hardware.
10. Los botones deben propagarse por toda la pantalla, tanto en orientación vertical
y paisaje.

¿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

Layout usando el Administrador de Geometría LiveCode


Mientras se selecciona un control en la tarjeta, la paleta Inspector tiene una entrada
denominada geometría. Es una interfaz un tanto extraño! Vamos a echar un vistazo.

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.

Tiempo para la acción - con el Administrador de Geometría en la


posición
botones
Ahora vamos a añadir algunos botones a la pila que hemos marcha. Una cosa a saber:
las características de diseño de MobGUI (que veremos a continuación) están en
competencia con el Administrador de la geometría, así que si usted todavía tiene que
se abren desde antes, haga clic en la casilla de verificación que dice "Desactivar la
geometría auto.

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.

Tiempo de acción - con MobGUI recordar diseños para


nosotros
Si has estado siguiendo a lo largo de allí, y marcó la casilla para desactivar ventana
MobGUI geometría auto, desactive de nuevo. Vamos a necesitar!

1. Crear un nuevo Mainstack.


2. Uso de la ventana MobGUI, establezca la ventana de la tarjeta para iPhone de tamaño y
Paisaje.
3. Arrastre un control NavBar en la tarjeta.
4. Arrastre un TabBar en la tarjeta.
5. Haga clic en el botón de control MobGUI y seleccione 4, a continuación, arrastre los
cuatro botones en la barra de pestañas que acaba de agregar.
6. Alt + doble clic en uno de esos botones para extenderse, y también ellos se
mueven verticalmente a ser muy bien posicionado en contra de la barra de
pestañas.
7. Haga clic en la imagen en la ventana de iPhone MobGUI, y cambiar la orientación
de ser Retrato.
8. Seleccione la barra de pestañas y sus botones, y moverlos a la parte inferior de
la ventana de la tarjeta vertical.
9. Utilice las teclas Alt + doble clic truco para hacer que la barra de pestañas, la
barra de navegación, y los botones, se extendieron por todo el ancho de la
ventana de la tarjeta vertical.

[ 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.

Tener un héroe go - otros tamaños


Acabamos de hacer la propia tarjeta trazar muy bien para iPhone retrato y los modos de paisaje.
Ahora haga lo mismo otra vez, para el retrato iPad y modos de paisaje, y también para un tamaño de
pantalla de costumbre
800x480, tanto vertical como horizontal.

Un consejo ahorro de tiempo es que usted puede seleccionar


todos los controles antes de hacer la Alt + doble clic. Esto hará
que la barra de navegación, TabBar y botones, que se extiende de
una sola vez.

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.

En este capítulo hemos cubierto varias maneras de lograr ese objetivo:

 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

Los datos tienen que salir más!


Las solicitudes pueden presentarse en la que todos los datos de apoyo está
dentro de la aplicación, pero muy a menudo queremos mostrar los datos que
están en el mundo real en alguna parte, y también para guardar información
(una lista de puntajes altos tal vez) a archivos externos a la aplicació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

No te olvides de descargar los archivos de ejemplo!


Hay una gran cantidad de líneas de código de este capítulo. El código se
muestra junto con explicaciones acerca de cada función, y se podía construir
algo que hacía juego con el archivo de muestra correspondiente. Pero sería muy
fácil cometer un error al transcribir los guiones, tanto en términos de lo que el
guión dice, y
donde el script debe ser colocado. Puede ser más seguro para estudiar los
archivos de ejemplo y para leer la descripción general aquí. Puede descargar el
código desde el sitio Packt.
Using Remote Data and Media

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.

Código impulsado y creado manualmente diseños


Si usted se imagina cómo una aplicación móvil típica aparece, podría ser algo como
lo siguiente:

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.

Ubicaciones para el código


LiveCode es extremadamente flexible en términos de cómo estructurar las cosas que se
hacen con ella. Además de una docena de tipos diferentes de control que podrían contener
código, puede tener scripts delanteros, los grupos, la tarjeta actual, un mainstack, pilas en el
uso de secuencias de comandos, la espalda, y LiveCode sí mismo. Este diagrama muestra
sólo unos pocos ejemplos de los controles, pero te da la sensación de cuántos niveles hay a
la jerarquía en LiveCode:

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 ...

Suponga que tiene un botón de menú principal, y su función es la de llevar al usuario a la


tarjeta de llamada principal. Teniendo esto como guión del botón parece tener sentido:
en mouseUp
ir tarjeta
"principal"
mouseUp final

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

En el guión tarjeta no habría este controlador:


en navTo Acard
[ 102 ]
Chapter 4
Acard
saveNavState
go tarjeta
final navTo

[ 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.

Pop quiz - nombre que la estructura


1.There es un término común usado para describir la jerarquía LiveCode que ayuda a
transmitir cómo la información se transmite hacia arriba y hacia abajo en la
jerarquía. ¿Cuál es ese término?
una. El b Event
Horizon. C La ruta del
mensaje. La pila de
llamadas
d. La pila de Inicio

Cargar y guardar datos externos


En muchas aplicaciones se desea realizar un seguimiento de los cambios que el usuario ha
hecho. Hay varias maneras de hacerlo que con LiveCode, incluyendo la consulta de una
URL, leer y escribir en un archivo de texto y guardar los datos dentro de una pila.

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

En el momento en que la línea se puso a prueba, 609,46 apareció en el cuadro de mensaje:

¿Quién sabe lo que va a encontrar cuando lo intento!

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

en gotit addr, estado


si el estado es "caché" o el estado es
"descargado" y conteste url addr
más
responder
estado final si
terminar gotit

La gotit controlador también comprueba para ver si la llamada trabajado, y si no se


mostrará lo que el error era. La descargar línea es asegurarse de que usted no está
leyendo el valor previamente almacenado en caché. Si se trata de un valor que sólo se
cambian con poca frecuencia, como con el precio de cierre de una acción,
que generalmente se desactive sólo la versión en caché cuando es probable que hayan
cambiado. Al día siguiente mercado financiero en este caso.

[ 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

Leer y escribir en un archivo de texto


En los días de HyperCard la única opción real para guardar y cargar datos externos era
escribir un archivo de texto. LiveCode puede, por supuesto, lo que también, y en algunos
casos puede ser la solución más sencilla. Los archivos de configuración y las preferencias son
un par de buenos ejemplos donde puede ser un pequeño archivo de texto se utilizan para
configurar la aplicación en la forma en que el usuario desea que sea.

A modo de ejemplo, digamos que tenemos los archivos de configuración de texto,


llamado englishstrings.txt y frenchstrings.txt, que se incluyeron en la lista
Copiar archivos de la aplicación autónoma de diálogo Configuración, y que van a utilizar
para establecer si los nombres de los botones están en Inglés o Francés en la aplicación.
También querrá escribir un archivo de preferencias de recordar la elección del usuario.
Cuando la aplicación se abre nos echaría un vistazo para ver lo que el archivo de
preferencias dice, y luego cargar el archivo de cadenas apropiado.

Con los sistemas operativos móviles iOS, y, en particular, hay


reglas estrictas acerca de dónde se le permite guardar los
datos. A medida que avanzamos vamos a utilizar ubicaciones
que están aprobados para tal uso por parte de Apple y Google.

[ 106 ]
Chapter 4

Los archivos detextoqueseincluyenenunaaplicaciónmóvil estaráenlamismaubicaciónquelaaplicaciónensí,ylos


archivos detextoquedeseaescribirdebeestareneldocumentos carpeta de su aplicación. Debido a que los
caminos pueden parecer muy diferentes en iOS y Android, debemos utilizar los LiveCode
specialFolderPath función para localizar estas carpetas. Así es como un OpenStack
manejador echaría un vistazo para ver si las preferencias se han fijado, y si no, llevar al usuario
a una pantalla de idioma de elección inicial:
en OpenStack
langstrings globales
poner "file:" & specialFolderPath ("documentos") & "/ prefs.txt"
en prefsfile
poner prefsfile url en prefstext
prefstext si está vacío,
- Prefs nunca se han establecido, por lo que ir a la opción de
idioma tarjeta go "elección de la lengua" tarjeta
más
- Lenguaje ya ha sido elegido, por lo que cargar hasta el derecho
expe
dien poner "file:" & specialFolderPath ("motor") & prefstext y
te
"Strings.txt" en langfile
poner fin a langfile url
langstrings si
final OpenStack

La ruta de motor carpeta especial es la misma ubicación que el archivo de la


aplicación, así como los archivos de soporte que ha incluido en la sección Copiar
archivos de la aplicación autónoma de diálogo Configuración (según se describe en el
tema Copiar archivos en el capítulo 7), al guardar el autónomo aplicación. En el
ejemplo anterior habría archivos denominados englishstrings.txt,
frenchstrings.txt, spanishstrings.txt, y así sucesivamente. Esta línea:

poner "file:" & specialFolderPath ("motor") & prefstext &


"strings.txt" en langfile

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

Usando otra pila para almacenar datos


Lo ideal sería que usted acaba de guardarse los cambios en la pila que se encuentre en ese
momento, salvo que iOS
no permite guardar en el directorio de la aplicación. Tenemos que evitar que, por
guardar una pila en la carpeta de documentos. La pila para salvar o bien puede ser el que es
nuestro
pila de aplicaciones, o simplemente podría ser utilizado exclusivamente para el almacenamiento
de datos. Guardar datos en una pila
puede ser más conveniente que guardar en archivos de texto. Por ejemplo, usted puede tener varias
texto
campos que están allí sólo para almacenar bits de información que serán necesarias la próxima
vez que el
aplicación se ejecuta. Si estaba utilizando archivos de texto que o bien se necesita un montón de
ellos, o usted tendrá que
procesar el texto de un archivo único con el fin de extraer los bits individuales de información.

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!

Tiempo de acción - la creación de una base de datos guardar pila


Vamos a estar haciendo una copia de una pila, pero sólo si una copia de la pila no existe ya.
LiveCode tiene un buen "si hay una ..." función, que fue hecho para momentos como este!
En primer lugar vamos a crear las pilas de datos que necesitamos.

1. Iniciar un nuevo Mainstack, con un nombre de LaunchStack. Guárdelo en un


lugar distinto carpeta de su ordenador documentos.
2. Inicie otra Mainstack nuevo, con un nombre de AppStack. Guárdelo junto
a la primera pila.
3. Coloca algo en la tarjeta de cada pila, por lo que es fácil reconocer cuando estás en
esa pila. Por ejemplo, arrastre un botón en la tarjeta de la LaunchStack y el
nombre de pila de una manera que hace que sea muy fácil saber dónde se
encuentra. Hacer lo mismo para la AppStack apilar.
4. Ponga esta OpenStack controlador en el guión de pila LaunchStack:
en OpenStack
establecer el defaultFolder a specialFolderPath
("Documentos")
si no hay un archivo "AppStack.livecode" luego

[ 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

poner URL ("binfile:" & masterfile) en la dirección URL


("binfile:" &
appfile)
End If
ir apilar specialFolderPath ("Documentos") & "/
AppStack.livecode" responder el nombre de esta pila
final OpenStack

5. Guarde ambos pilas y dejar de LiveCode.

Antes de tratar las pilas en un dispositivo o en el simulador, los vamos a tratar como pilas de
escritorio.

1. Busque en su Documentos carpeta, y no debería ser una AppStack.livecode


presentar en el momento.
2. Inicie LiveCode haciendo doble clic en el LaunchStack.livecode archivo. Si
usted encuentra que LiveCode no se inicia este camino, asegúrese de que ha
asociado . Livecode documentos para ser abierto por LiveCode.
3. Busque en su Documentos carpeta, y ahora debería ser una AppStack.livecode
archivo, con un tiempo de creación que coincide con la hora actual.
4. También debe ver que el camino hacia la AppStack es precisamente en su
Documentos carpeta.

Ahora a probarlo en un dispositivo móvil, o utilizando el simulador de iOS.

1. Cierre la pila AppStack y descomentar la línea specialFolderPath poner ... a partir


de la secuencia de comandos de pila LaunchStack que ha introducido en el paso
4.
2. Ir a Ajustes aplicación independiente, y elija la sección Copiar archivos.
3. Haga clic en Agregar archivo ... y localizar y añadir el original AppStack.livecode
pila (no el que se creó con la prueba anterior).
4. Elija la sección Android o iOS de los ajustes de aplicación independiente, y
marque la casilla para crear la aplicación para esa plataforma.
5. En el menú Desarrollo, seleccione su destino de la prueba. Eso sería ser uno de los
simuladores de iOS si elige iOS, o un dispositivo conectado Android.

[ 110 ]
Chapter 4

6. Seleccione Prueba en el menú Desarrollo. Usted debe terminar con su actuación


AppStack, y un diálogo de alerta que muestra la ruta de acceso a la pila. La captura
de pantalla siguiente muestra el cuadro de diálogo resultante en la ventana
Simulador de iOS y Android en una tableta 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.

Pop quiz - otros lugares especiales


1.See si usted acaba de saber esto, o utilizar esta cuestión como una excusa para leer el
notas de la versión y el diccionario! ¿Cuál de estos NO es un specialFolderPath tipo?
a.Users b.
Casa
c.Desktop d.
0x000e

[ 111 ]
Using Remote Data and Media

Creación de una web "raspador" de la aplicación


Como excusa para probar varios controles móviles nativas, vamos a hacer una aplicación que
pueda leer las páginas web y extraer enlaces a los distintos medios de comunicación en la
página. La aplicación tendrá una tarjeta que muestra un navegador web, tarjetas para
mostrar los enlaces, texto y multimedia desde la página web, y un juego de tarjetas para
recordar los elementos seleccionados.

Tiempo de acción - la creación de navegación por pestañas


Antes de entrar en la fabricación de la tarjeta del navegador, es necesario establecer los
elementos que se comparten entre todas las cartas en la aplicación.

1. Crear un nuevo Mainstack, establezca su nombre por el de WebScraper, y guardarlo en


algún lugar.
2. Usaremos MobGUI de nuevo, para hacer la vida más fácil. Seleccione revMobGUI de la
Desarrollo / Plugins submenú.
3. En estas instrucciones usaremos iPhone, retrato, pero no dude en utilizar el iPad o
Android para un tamaño de la tarjeta. Seleccione iPhone y Retrato en la ventana
MobGUI, o sus opciones preferidas.
4. Desactive la casilla de la barra de estado.
5. Al igual que hizo en el momento de actuar - utilizando MobGUI recordar diseños
para nosotros desde el capítulo 3, la creación de interfaces de usuario Utilice las
herramientas MobGUI agregar una barra de navegación (que se ajusta a la parte
superior de la ventana de la tarjeta), un BG para establecer el buen patrón de
fondo y una TabBar, que se ajustará a la parte inferior de la ventana de la tarjeta.
6. Haga clic en el botón de control de ficha en la ventana MobGUI y seleccione 5 en el
menú desplegable. Arrastre los cinco botones en la tarjeta.
7. Opción / Alt + doble clic en uno de los cinco botones para hacer que se extendió a
través de la ventana de la tarjeta, y empujar hacia arriba o hacia abajo para
descansar centrado en la barra de pestañas.
8. Dar los cinco botones de los nombres BrowserButton, Links,
Texto, Medios de comunicación, y Keepers.

8. Edite el script de cada botón, y en el Touchstart controlador, agregue un


pasar Touchstart línea, para dejar el controlador con este aspecto:
en Touchstart PID
mobGUITouch el identificador
largo de pasarme Touchstart
[ 112 ]
Chapter 4
final Touchstart

9. Establezca el nombre de la barra de navegación a NavBar.

[ 113 ]
Using Remote Data and Media

10. En el menú Edición, Seleccionar todo, y el grupo seleccionado en el menú Objeto.


11. Edite el script del grupo que acaba de formarse y entrar en este script:
en Touchstart
poner el uTabText de mí en tTabText
establecer el utext del grupo "NavBar" para
ir tTabText tarjeta tTabText
init
final Touchstart

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.

17. Ir a Ajustes aplicación independiente, elegir iOS o Android como la plataforma


que desee utilizar, seleccione el destino adecuado en el menú Desarrollo,
y hacer una prueba.
18. Haga clic o toque en los botones de ficha cinco, y usted debería ver el nombre del
cambio NavBar, y el botón de pestaña seleccionada debe ser el que has
seleccionado.

¿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:

LiveCode ha, en el momento de la escritura, ha actualizado para que


las características de Android acuerdo con las características de iOS.
Desafortunadamente, MobGUI no ha sido actualizado en la misma
forma. El control del navegador nativo sólo funciona en iOS. Es de
esperar que MobGUI se actualizará pronto!

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

Tiempo para la acción - añadiendo el navegador controla


Volver a la primera carta de la pila, y encontrar el camino a la parte control nativo de la
MobGUI ventana.

1. Arrastre el control de explorador en la ventana de la tarjeta. Es el que tiene la


imagen que muestra la página de búsqueda de Google.
2. Cambiar el tamaño del control para completar la anchura de la tarjeta, y su altura para
encajar entre la barra de pestañas y un poco por debajo de la barra de navegación.
Dale el nombre Browser.
3. Con el control del navegador seleccionado, marque la casilla en la ventana titulada
MobGUI
Auto destruir en closeCard. Esto ayudará a reducir el uso de memoria de la aplicación
final,
durante las horas que no están en la tarjeta navegador.
4. Arrastre un control de texto nativo en el espacio entre el control del navegador y la barra
de navegación.
Nombre que url, y cambiar su tamaño para ser casi tan ancho como la tarjeta, dejando
espacio para un Go
botón de la derecha.
5. Arrastre un control Button en ese espacio, establezca su etiqueta Ve, y cambiar su
tamaño para verte bien.
Puede Opción / Alt + doble clic para que él mismo espacio una distancia estándar de la
derecha de la ventana de la tarjeta.
6. Edite el script del botón Go (que, como usted puede notar es en realidad un grupo), y
añadir un par de líneas antes del final de la Touchstart controlador, así:
- Las demás líneas están aquí
establecer el uURL de grupo "Browser" para el grupo de
utext "url" se centran en nada
final touchEnd

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

8. Edite la secuencia de comandos de control del explorador. Vamos a


utilizar el browserFinishedLoading mensaje para saber cuándo
hay que actualizar algunas variables y texto URL.

[ 117 ]
Using Remote Data and Media

9. Añadir este controlador a la base de la escritura del control del navegador:


en browserFinishedLoading puntilla,
pType mundial gPageURL, gPageHTML
poner la puntilla en gPageURL
poner la puntilla url en gPageHTML
establecer el utext de grupo "url" para PURL
terminar browserFinishedLoading

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?

Un enfoque común al extraer un patrón conocido de texto es utilizar expresiones


regulares, a menudo referido como regex o regexp. En su forma más simple, es fácil de
entender, pero puede llegar a ser muy compleja. Lea el artículo de Wikipedia si quieres
comprendy en profundidad:

http://en.wikipedia.org/wiki/Regular_expression

Otra fuente útil de información es este artículo en el correo ordinario PacktXpressions:


http://www.packtpub.com/article/regular-expressions-python-26-text-
transformación

Un problema sin embargo es que el uso de expresiones regulares para analizar el


contenido HTML está mal visto. Hay decenas de artículos en línea que le dice francamente
no para analizar HTML con expresiones regulares! Aquí está un ejemplo conciso:
http://boingboing.net/2011/11/24/why-you-shouldnt-parse-html.html

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 la búsqueda de vínculos haremos la suposición de que el enlace está dentro de un a


href etiqueta, pero aún así hay una gran cantidad de variaciones de la forma en que pueden
aparecer. La estructura general de una etiqueta href es la siguiente:
<a Enlace href="http://www.runrev.com/support/forum/"> texto que el
usuario verá </ a>

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.

Tiempo para la acción - hacer una función de extracción de enlaces


A veces es muy útil para crear pruebas en una pila por separado, y luego copiar la
función que usted ha hecho en su pila de aplicaciones.

1. Crear un nuevo Mainstack. Guárdalo, sólo para estar seguro!


2. Añade un par de campos y un botón.

[ 120 ]
Chapter 4

3. Establecer guión del botón a la siguiente:


en mouseUp
poner url "http://www.runrev.com/" en el
campo 1 getLinks put (campo 1) en el campo 2
final mouseUp

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

5. Si se va a tratar de hacer clic en el botón en este punto, verá que la fuente de


toda la página aparece en el campo 2.
6. Vamos a utilizar la función de filtro, y eso necesita que el texto sea en líneas separadas.
Así que queremos que cada eslabón de estar en una línea propia. La función replace
puede hacer eso
muy bien. Añadir estas dos líneas al script (antes de la volver línea, por supuesto):
sustituir "/ a>" por "/> A" y de retorno en pPageSource

reemplazar "<a" con retorno & "<a" en pPageSource


7. Intente hacer clic en el botón. Los dos campos se verá mucho el mismo, pero las líneas que tienen
un vínculo en ellos estarán en una línea propia.
8. Añada una línea para filtrar la lista tal como está, para reducirlo a sólo los
que tienen vínculos en ellos:
filtro pPageSource con "* a href * / a>"

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.

Los eslabones perdidos


La pieza que faltaba en la pila de prueba es la variable global que almacena la
URL de la página. En el caso de la pila de aplicación, ese valor es proporcionado
por el navegador del control de browserFinishedLoading función, pero
aquí tenemos que enchufar un valor para fines de prueba.

Coloque una línea de declaración mundial en el guión botón y en el guión de la pila. En el


guión botón, llene la variable con valor nuestro caso de prueba. La secuencia de comandos
se verá así:
mundial gPageURL

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.

Una cosa más ...


La secuencia de comandos barra de pestañas incluyó una línea init. Que se ponen en la
secuencia de comandos de tarjeta, en este caso, la
Enlaces escritura de la tarjeta. Pero eso todavía no existe! Vamos a hacer.

Tiempo de acción - la adición de la tarjeta de Enlaces "init" handler


Antes de continuar, asegúrese de que está satisfecho con las funciones de la pila de
[ 124 ]
Chapter 4
prueba, y que los has copiado en el guión pila WebScraper.

1. Ir a la tarjeta de la pila Links WebScraper.

[ 125 ]
Using Remote Data and Media

2. En la ventana MobGUI, haga clic en el botón Añadir preOpenCard guión.


3. Edite el script tarjeta y añadir estas variables globales y init función:
gPageHTML mundial, gLinks

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

4. ¿Es una prueba de la aplicación.


5. En el simulador de iPhone o dispositivo Android, si eso es lo que está utilizando, Cambiar
el
URL a http://www.runrev.com/, y seleccione el botón Go.
6. Cuando se carga la página, seleccione el botón ficha Vínculos.
7. Ahora debería estar buscando en la lista de 12 enlaces, sólo que esta vez se presentan en una lista
selector nativo.
8. Seleccione el enlace de tercero en la lista y, a continuación, Hecho.
9. Usted debe ser llevado de vuelta a la tarjeta del navegador, con la página de Facebook de RunRev cargado.

¿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

Tiempo de acción - la creación de la tarjeta de Texto


Comience en la pila de prueba que ha realizado, para que podamos tener la función de
trabajar allí antes de añadir a la pila WebScraper.

1. Duplicar el botón que hizo al extraer enlaces. Cambiar la llamada a la función


getLinks decir getText - De lo contrario la secuencia de comandos puede seguir
siendo el mismo.
2. Edite el script de la pila de prueba y agregar esta función:
función getText pPageSource
poner replaceText (pPageSource "(: <(P <tag> guión | estilo)
[\ s \ S] * </ (P = tag)>) | (:?????! <- [\ s \ ? S] * ->) | (:?
<[\ s \ S] *>) "," ") en pPageSource
Si reemplazar con "" en pPageSource
reemplazar con la ficha "" en
pPageSource retorno pPageSource
final getText

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

7. En las propiedades de la ventana MobGUI para el control, desactive la casilla editable.


8. Edite el script de tarjetas, y añade este init función:
mundial gPageHTML

en init
si la plataforma es "iphone" o la plataforma es "android",
entonces mobFieldSet "PageText", "texto", getText
(gPageHTML)
End If
End init

9. Intente una prueba de la aplicación.


10. En la tarjeta del navegador, cambiar la dirección URL de google.com para runrev.com y
pulse Go.
11. Pulse el botón de tabulación del texto en la parte inferior.
12. Ahora debería estar en la tarjeta de texto, y viendo los elementos de texto de la página Web que
se muestra en un campo de texto desplazable nativo.

¿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.

La tarjeta de los medios de comunicación


La tarjeta de los medios de comunicación va a empezar muy parecido a la tarjeta de Links,
con un "init" en función de la secuencia de comandos de tarjetas, y una función de pila
script para extraer los enlaces de medios de la página.

Tiempo para la acción - la extracción de una lista de enlaces de


medios
Probablemente es una expresión regular que permita, mediante todos los "src" enlaces de
una página, pero estamos sólo interesados en cosas que sabemos LiveCode es capaz de
mostrar o jugar. Así que esta vez vamos a utilizar un camino más tortuoso para extraer
sólo los vínculos que pueden manejar.
[ 130 ]
Using Remote Data and Media

1. Usted puede también dirigirse a la pila de prueba!


2. Hacer un tercer botón mediante la duplicación de una de las otras dos, y cambiar el
getLinks
o getText parte en el guión botón para llamar getMedia en su lugar.

[ 131 ]
Chapter 4

3. En el guión de pila, escriba todo esto:


mundial
gPageURL

función getMedia pPageSource


poner ". jpg,. gif,. gif,. jpeg,. mov,. mp4, m4v,. mp3" en la
repetición tExtensions con a = 1 y el número de elementos en
tExtensions
poner un punto de tExtensions en tExtension
reemplazar tExtension con tExtension & "*" & retorno
en pPageSource
Fin de repetición
repetir con a = el número de líneas en pPageSource hasta la
línea de Poner 1 a pPageSource en TLINE
si el último carácter del TLINE es
"*" y luego borrar el último
carácter del TLINE
poner removeLeaders (gPageURL, TLINE) en una
línea de pPageSource
más
eliminar una línea de final
si pPageSource
Fin de repetición
volver pPageSource
final getMedia

función removeLeaders pPageURL, pLinkURL


poner quote & "'()" en tDelimiters
repetir con a = 1 hasta el número de caracteres en
tDelimiters char a poner de tDelimiters en
tDelimiter
establecer el itemdelimiter a tDelimiter
poner el último elemento de pLinkURL en pLinkURL
Fin de repetición
volver getPath (pPageURL, pLinkURL)
removeLeaders
finales

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.

Tiempo de acción - la creación de los scripts de tarjetas


multimedia
Copie las funciones que demostraron a trabajar en el guión de pila de prueba, y pegarlos en
WebScraper guión pila. Entonces ...

1. Ir a la tarjeta multimedia. Al igual que con la tarjeta de Enlaces no vamos a agregar


cualquier control a la tarjeta, lo haremos con la escritura. Por lo tanto, modificar la
secuencia de comandos de la tarjeta.
2. Aquí está la carta Media init función, y se necesitan variables globales:
gPageHTML mundial, gMediaList

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

5. Cree el showMedia función:


en showMedia pMediaFile
si hay una imagen "mediaImage" y luego borrar la imagen
"MediaImage"
establecer el itemdelimiter a "."
switch (el último elemento de pMediaFile)
caso "png"
caso "gif"
caso "jpg"
caso "jpeg"
nueva imagen
establecer el nombre de la imagen del número de imágenes que
"MediaImage"
establecer el nombre del archivo de imagen
"mediaImage" para pMediaFile descanso
caso "mp4"
caso "m4v"
caso "mov"
caso "mp3"
establecer el showController del templatePlayer a
pMediaFile verdadero video del juego
rompe
r el
interruptor
final
final showMedia

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.

Los encargados de la tarjeta


En realidad, va a ser las tarjetas Keepers. Se trata de ser un lugar que puede esconder los
medios de comunicación que le han resultado interesantes. Por razones de tamaño de
archivo que en realidad estamos sólo va a almacenar la URL a los medios de comunicación -
después de todo, un vídeo de pronto usaría el almacenamiento de su dispositivo!

[ 137 ]
Chapter 4

Time for Action - la creación de la tarjeta Keepers


Como la tarjeta Keepers está en el extremo de la pila, puede llegar a ella, ya sea con Ver repetido
/ Ir
Próximo acciones, o sólo una única vista / Ir última acción.

1. Ir a la tarjeta de Guardianes, y crear un botón para MobGUI Anterior,


Siguiente y Play Media. Hacer que un campo LiveCode, y el nombre
mediaURL. Ahora debería tener algo parecido a esto:

2. Agregue estas líneas a la Touchstart manejador del botón Prev:


si el nombre de esta tarjeta no es
"Guardianes" y luego ir anterior
End If

[ 138 ]
Using Remote Data and Media

3. Agregue estas líneas a la Touchstart manejador del botón Siguiente:


si el número de esta tarjeta <el número de tarjetas y
luego ir próximo
End If

4. Añada esta línea al diabólico botón Multimedia Touchstart handler:


campo showMedia "mediaURL"

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.

Tener un héroe go - agregar algunos lugares preestablecidos


Si usted hace la aplicación WebScraper, y empezar a ser útil, es muy probable que habrá un
conjunto de páginas web que se remontan a una y otra. Tener que escribir la dirección URL
cada vez sería tedioso. Así que, ¿por qué no hacer un campo oculto en la tarjeta del
navegador, y escriba
una lista de tus páginas favoritas. Agregar un botón a la tarjeta también, que se abrirá una
[ 141 ]
Chapter 4
lista de las páginas para que usted pueda elegir. El que usted elija puede cargar el control
de explorador con la página deseada. Todos los pasos para hacer esto se trata en la
sección de tarjetas enlace de arriba.

[ 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

Imagínese esto ...


Hasta ahora hemos estado tratando con una gran cantidad de texto o llamar
a funciones del sistema operativo móvil. Esas son cosas interesantes, pero no
son tan visual. Si estaba deseando perder el tiempo con imágenes y datos de
imagen, ha llegado tu hora!

LiveCode no es, naturalmente, una potencia de gráficos, y su modo de manejo de datos de


imagen (a menudo denominado como "datos de mapa de bits" por otras herramientas) es algo
inusual, en que se almacena con eficacia los píxeles de una imagen como una serie de
caracteres de un solo byte para representar los valores de rojo, verde y azul de cada píxel. La
manipulación de una imagen final es bastante flexible, pero con el fin de crear algo en la línea
de un rompecabezas que tenemos que entender el formato de datos de imágenes.
En este capítulo se incluirán los siguientes puntos:

 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

Datos Formato de la imagen


En otras herramientas de autoría, como Adobe Director y Flash de Adobe, los datos de mapa de
bits se almacena como una matriz de 24 - o los valores de 32-bit. Si quieres saber el color del
píxel 20 desde el borde de la izquierda, en la fila 15a de la parte superior de la imagen, se utiliza
un getPixel función con esos números enchufado En Flash, que utiliza un punto cero de
partida de todos sus tipos de variables, se podría decir:
pixelcolor bitmapvariable.getPixel = (19,14);

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

Además de la singularidad de cada píxel se almacena como cuatro bytes de información,


tampoco hay sentido de filas y columnas. Todos los píxeles de una imagen tiene su fin cuatro
bytes para terminar, hay que hacer un cálculo para saber en qué parte de los datos del píxel
que está buscando se encuentra. Si se tiene en cuenta cómo se trabaja en un editor de mapa
de bits, por ejemplo Photoshop o Gimp, selecciona las cosas basado en un X y un valor Y, lo
que corresponde a la columna y la fila donde se encuentra el píxel de la imagen. LiveCode no
le permite acceder a mapas de bits en esa forma. De ahí la necesidad de hacer un cálculo.

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

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 * 65536 + tGreen * 256 + tBlue
final getPixel

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".

Misterio byte ...


El primer carácter de los cuatro, que representa un píxel, no se utiliza. RunRev.com tiene
tutoriales sobre cómo usar imageData del, y hay que byte se conoce como Alpha. Eso tiene
sentido, incluso las otras herramientas que le puede dar un número de 32 bits tendrá el
valor dividen en alfa, rojo, verde y azul. ¿Por qué ese byte, que se llama Alfa RunRev,
contiene el valor alfa? ¡Quién sabe!
[ 133 ]
Making a Jigsaw Puzzle Application

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:

poner el maskData de "imagen de prueba" de la imagen en


tMaskData poner el alphaData de imagen "la imagen de
prueba" en tAlphaData

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.

Con alphaData se obtiene un conjunto de valores que representan la opacidad de los


píxeles. 0 sería totalmente transparente, 255 sería totalmente opaco, y los valores
intermedios será translúcido. 128 sería de 50% de opacidad.

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.

El mal uso imageData del!


Los temas de los tutoriales en línea LiveCode implican la manipulación de la imageData del,
por ejemplo, convertir una imagen en color en una escala de grises de una. (Este ejemplo
en particular se encuentra en:
http://lessons.runrev.com/s/lessons/m/4071/l/25371-vision-how-do- i-
convertir-a-color-imagen a escala de grises.) No vamos a hacer eso aquí. En
su lugar,
usaremos los valores de la imagen, la máscara, y alfa, para lograr algunas cosas interesantes
que no cambian la imagen en absoluto. De hecho, en algunos casos, ni siquiera se ve la
imagen!

Tiempo para la acción - probando una función getPixel


Antes de llegar a ejemplos útiles, vamos a hacer un getPixel función, y un caso de prueba
rápida.

1. Hacer una Mainstack nuevo. Guárdelo como ImageDataTests.

[ 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

2. Hacer la pila del tamaño de su dispositivo más grande prueba. O simplemente


tratar de 1024x768 si vamos a usar el simulador de iPad.
3. En el menú Archivo, seleccione Importar como Control / Image y seleccionar
cualquier archivo de imagen pequeña que tiene, para colocarlo en la esquina del
lado superior izquierdo de la ventana de la tarjeta. El ejemplo que se muestra a
continuación utiliza una imagen de logotipo LiveCode.
4. Coloque un objeto gráfico nuevo al lado de la imagen. Va a estar mostrando un solo
color, por lo que sólo hacen lo suficientemente grande para ver fácilmente el color.
Nombre que muestra.
5. Gráficos tienen un valor por defecto configurado para mostrar un cuadro vacío, por
lo que escribir esto en el cuadro de mensaje para que se llenará en:
establecer el relleno de un gráfico en true

6. Edite el script de la imagen, y escriba las siguientes


líneas:
en mouseMove PMX, PMY
- Poner getPixel (el nombre corto de mí, PMX - la izquierda de
mí, PMY - la parte superior de mi) en tPixelColor
- Establecer el gráfico de backgroundColor "muestra" para
mouseMove final tPixelColor

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

9. De vuelta en el guión de imágenes, elimine las dos líneas. Empiece apuntando a la


imagen, y usted debería ver la muestra de color para que coincida con el cambio
gráfico del píxel bajo el cursor

[ 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!

Pop-Quiz - ¿cuántos bits en un byte?


"Bytes" fue mencionado un par de veces, y usted bien sabe acerca de "la profundidad de
bits" cuando se habla de fotografías digitales. ¿Cuántos bits hay en un byte?
una.
32. b.
24. c. 8.
d. Depende de cuánta hambre
tengamos.

Simulación de un montón y un montón de botones


En algunas aplicaciones es necesario saber exactamente qué área de la imagen que el
usuario está señalando. Por ejemplo, cuando hay un mapa y donde quieras mostrar
información relativa a la región que el usuario ha hecho clic. Esto podría hacerse utilizando
una gran cantidad de botones rectangulares, ya que podría romper las regiones hasta en los
gráficos y el uso de un MouseEnter controlador para detectar qué región está. O usted
podría utilizar en lugar de una sola imagen para representar a todas las regiones.

Tiempo de acción - hacer un mapa de los Estados Unidos


Hay muchos lugares en línea para obtener imágenes de dominio público para su uso en las
aplicaciones. Búsqueda de "imágenes de dominio público", y verás enlaces a artículos de
Wikipedia, los sitios del gobierno y otros sitios dedicados a la descarga de free-to-use
images. El mapa que se muestra aquí vino de este archivo:
http://upload.wikimedia.org/wikipedia/commons/3/32/Blank_US_Map.svg

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:

6. Cambiar el tamaño del mapa de manera que se llene un tercio de la ventana de la


pila y elija Exportar.

[ 139 ]
Making a Jigsaw Puzzle Application

Los ajustes de color del perfil


LiveCode trata a los mapas de bits de un modo que ignora la información
de perfiles de color en la imagen, y eso arruinaría lo que estamos tratando
de hacer. Al exportar una imagen ver si hay una opción para configurar el
perfil de color para genericRGB. Si no la hay, a continuación, utilizar
una utilidad como Sync Color para aplicar el genericRGB perfil de color.
Una vez que la imagen se guarde hay algo que usted puede hacer para
asegurarse de que se importan en LiveCode: antes de realizar la importación,
el tipo establecer el screengamma a 2,23 en el cuadro de
mensaje y pulse Intro. Esto establecerá LiveCode a la configuración correcta
para asegurarse de que el
valores de color vienen en forma correcta.

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

9. Importe el PNG en su ImageDataTests apilar.


10. Establecer escritura de la imagen a la siguiente:
en mouseMove PMX, PMY
poner getPixel (el nombre corto de mí, PMX - la izquierda de
mí, PMY - la parte superior de mi) en tStateColor
establecer el itemdelimiter a coma
poner el tema 1 de tStateColor - 100 en TLINE
poner TLINE línea del campo "estados" en el campo
de mouseMove "estado" final

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

Pop-Quiz - conseguir el cuadro grande


La imagen del mapa ejemplo es un archivo SVG. Hacer un poco de investigación Wikipedia, y
decidir si un SVG
archivo es más pequeño que un archivo PNG para una imagen determinada?

R. Sí. b.
No.
c.Depends sobre la naturaleza de la imagen.

Uso de maskData para la detección de colisiones


En los antiguos juegos 2D laberinto de aventura tu personaje se mueva en distintas
partes, y cuando la comprobación para ver si había una pared o en un hueco, el programa
tenía que ver sólo relativamente pocos lugares. Los puntos ocupados podrían ser
almacenados en una matriz, teniendo poca memoria.

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.

Tiempo de acción - haciendo un hipódromo


Vamos a hacer una pista de carreras de coches pequeños para moverse. Lo haremos de la pila que
hemos construido! En primer lugar tenemos que convertir lo que está en la tarjeta en una imagen
que representa paredes y espacios.

1. Utilizando las herramientas LiveCode dibujar, añadir un montón de objetos


para la ImageDataTest
apilar. Estos van a ser los obstáculos en la pista de
carreras.

[ 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

3. El comando anterior se llevará una captura de pantalla de la ventana de la tarjeta, y


lo colocamos en la tarjeta como un control de imagen nuevo.

[ 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:

11. Combinar las capas del documento y, a continuación, seleccione Guardar.


12. Volver a LiveCode, haga clic en el botón Actualizar, y la imagen de la instantánea se
actualizará para reflejar los cambios realizados.
13. Nombre de la imagen como telón de fondo. Más adelante vamos a configurar la
imagen de estar detrás de otros objetos, pero por ahora vamos a dejarlo encima de
todo lo demás.

[ 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.

Tiempo para la acción - lo que un coche de carreras


Tómese todo el tiempo que quisiera crear una imagen del coche. Hacerlo de modo que está mirando a la
derecha. A continuación, una vez que esté en la pila vamos a empezar a añadir las funciones necesarias para su
guión. Un tamaño de aproximadamente 40 píxeles a través de debe ser aproximadamente correcto. He aquí un
primer plano la imagen de lo que estamos hablando, como se ve en Photoshop:

[ 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 ...

1. Importe la imagen como un control, y colocarlo en algún lugar de la zona blanca de la


ImageDataTests apilar. Nombre que car1.

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

6. La setSpeeds controlador, que es llamado por startStopCars, inicializará el


gSpeeds variable con una velocidad aleatoria para cada una de las imágenes del
coche. También se fijará la dirección inicial a cero, así como la colocación del vehículo
en una ubicación conocida en el área blanca (200.200 en este caso). Añadir la
setSpeeds controlador a la secuencia de comandos de pila, por debajo de la
startStopCars handler:
en setSpeeds
puesto vacío en la
repetición gSpeeds con
[ 142 ]
Chapter 5
100 = 1 a
poner "car" y en un carname
si hay una imagen carname luego
poner (al azar (10) +10) / 10 En el punto 1 de la línea
de un gSpeeds poner 0 en el punto 2 de la línea de un
gSpeeds
establecer la locomotora de carname
imagen a 200.200 más

[ 143 ]
Making a Jigsaw Puzzle Application

la salida
final de la
repetición si
terminar
setSpeeds
final de
repetición

7. En una moveCars controlador, que se muestra en el paso 8, vamos a mirar el


gBackdropMaskData variable para ver si el coche se va a ejecutar en algo sólido.
Añadir esta hitBarrier función:
función hitBarrier px, py
poner (PY-1) * gMaskWidth + pX en tStartChar
poner charToNum (char tStartChar de gBackdropMaskData)
en tMaskValue
si tMaskValue = 255 entonces return
true else return false
final hitBarrier

8. La moveCars controlador se llamó inicialmente por la startStopCars


controlador, y luego se llamará cada 2 ticks hasta que el gMovingCars variable se
establece en falso. Escriba lo largo moveCars manejador en el guión de pila:
en moveCars
poner la pantalla
de tiempo largo
mechón
repetir con un 100 = 1 a
poner "car" y en un 0,1
carname poner en
anglechange
si hay un carname imagen a
continuación, poner 0 en
mostrador
repetir mientras contador
<20 agregar 1 para
contrarrestar
poner punto 1 de la línea de un gSpeeds en tCarSpeed
poner punto 2 de la línea de un gSpeeds en
tCarDirection poner el punto 1 de la locomotora de
carname imagen en tCarX poner punto 2 de la
locomotora de carname imagen en tCarY
poner la ronda de ((cos (tCarDirection) * tCarSpeed) * 20
+
tCarX) en tLookAheadX
poner la ronda de ((sin (tCarDirection) * tCarSpeed) * 20
[ 144 ]
Chapter 5
+
tCarY) en tLookAheadY
si hitBarrier (tLookAheadX, tLookAheadY) luego
poner tCarDirection + anglechange en el punto 2 de
la línea A de gSpeeds
poner anglechange * -1 * ((20 - random (10)) / 10)
en anglechange
poner max (1, tCarSpeed - .1) En el punto 1 de la
línea de un gSpeeds

[ 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.

9. Agregue un botón de Start / Stop Coches a la ventana de la tarjeta, y establecer su


secuencia de comandos a ser:
en startStopCars
mouseUp
[ 146 ]
Chapter 5
final mouseUp

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

Pop-Quiz - calcular esto!


Para el mapa de los EE.UU. sólo necesitábamos para simular 50 botones. Si usted hizo uso del
rojo, verde y azul, ¿cuántos botones podría simular?

a.One botón enorme. b.


65.536 botones.
c.16, 777.216 botones.

Cómo hacer un rompecabezas


Las cosas que hemos probado hasta ahora en este capítulo utilizan técnicas que podrían ser útiles
en cualquier
Aplicación LiveCode, no específicamente con las aplicaciones móviles. Usted puede tratar de la
pila que
han construido, sino que va a funcionar bien en un dispositivo móvil, incluso con el selector de
color, los estados mapa,
20 coches y conducir alrededor de la pantalla! Sin embargo, esas pruebas no realmente hacer uso
de cualquier móvil
características. El resto del capítulo se basará en la información acerca imageData del, y
También se aprovechará de una serie de características de dispositivos móviles pocos.

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.

Tiempo de acción - la creación de las piezas y la elección de una


[ 149 ]
Making a Jigsaw Puzzle Application
imagen
Si desea seguir con exactamente la misma imagen que se muestra aquí, wtomadas de la
parte superior izquierda de este archivo:
http://static3.depositphotos.com/1004551/191/v/950/
depositphotos_1914748-rompecabezas-puzzle-blank-templates.jpg

[ 150 ]
Chapter 5

1. Hacer una Mainstack nuevo a 1024x768 (o el tamaño de su dispositivo de


tableta). Nombre de la pila rompecabezas, y establecer el título a Jigsaw
Puzzle. Hacer un Guardar.

2. Abra la imagen del rompecabezas entero en su editor de imágenes.


3. Utilice la herramienta Varita mágica para recoger la parte interior de la pieza lateral
superior izquierdo del rompecabezas.
4. Rellene que con un color que hace que sea fácil de detectar posibles lagunas restantes.
5. Copiar y pegar en un documento nuevo (con un fondo transparente) que es el
tamaño de la pieza que ha copiado.
6. Repare las lagunas, con la herramienta pincel establece en el mismo color de relleno.
7. Guardar como PNG (con Photoshop que se Guardar para Web y dispositivos, 24
bits, con transparencia). Utilice un esquema de nombres que le ayudarán a
identificar fácilmente las imágenes. Por ejemplo, tlcorner.png, p1.png,
trcorner.png, y así sucesivamente.

8. Proceder a través de todas las áreas de diferente forma. En la imagen de ejemplo


que será tan pocos como 14 formas únicas. No hay necesidad de salvar otras
piezas que tienen la misma forma como los que ya tiene.
[ 151 ]
Making a Jigsaw Puzzle Application

9. El conjunto de imágenes se verá así:

10. En la pila rompecabezas, vaya a Archivo | Importar como Control | Imagen, e importar
todas las 14 imágenes.

[ 152 ]
Chapter 5

11. Coloque un rompecabezas que cubre la mayor parte de la ventana de la tarjeta. En


las pantallas que se muestran debajo del rompecabezas era 900x622. Realizar
duplicados de las imágenes de media pieza para llenar todo el rompecabezas.

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

15. Hacer otro botón, denominado fromlibrary y etiquetados Cargar una


imagen, con este script:
en mouseUp
LoadImage
[ 153 ]
Making a Jigsaw Puzzle Application
"biblioteca" 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.

La creación de algunas imágenes de prueba.


Si utiliza el simulador de iPad que no será capaz de probar la obtención
de una imagen de la cámara, y al principio no tiene ninguna imagen en
la foto
biblioteca. Para resolver esto, arrastrar imágenes desde el Finder hasta la
ventana del simulador, y la imagen se mostrará en una ventana de Safari. A
continuación, puede hacer clic y mantenga presionado en la imagen y
selecciona Guardar. De esa manera usted puede agregar algunas imágenes
a la biblioteca con el fin de seleccionar uno de ellos como imagen para el
puzzle.

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.

A continuación, vamos a transferir la imagen elegida en las piezas del rompecabezas.

Tiempo de acción - la transferencia de imageData del


Al establecer la imagen elegida para ser la misma anchura y altura que el grupo que contiene
las piezas del rompecabezas (que es donde los 900 y 662 números de vino), se hace posible
transferir el rectángulo correspondiente de los datos de la imagen completa de la pieza de
puzzle en cuestión.

1. Abra el script de nuevo la tarjeta. Agregue el controlador makepuzzle:


en resetpuzzle
makepuzzle
que el número de imágenes en el grupo "piezas" en la
repetición imagecount con a = 1 a imagecount
makepiece el nombre corto de la imagen de un grupo de
"trozos" de final de repetición
final makepuzzle

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

puesto vacío en TempImage


poner a la izquierda de la imagen piecename - la izquierda
del grupo de "piezas" en dx
poner la parte superior de la imagen piecename - la cima del
grupo "piezas" en dy
repetir con y = 1 a pieceheight
poner ((y + dy-1) * puzzlewidth + dx) * 4 sourcestart
poner en caracteres sourcestart +1 a + sourcestart
piecewidth * 4 de
originalimage después TempImage
Fin de repetición
establecer el imageData del piecename de imagen
para makepiece final TempImage

3. En el anterior imageData del pruebas de que sólo estábamos interesados en un


píxel a la vez, pero aquí queremos un montón de filas de datos. La aritmética, ((Y
+ dy-1) * puzzlewidth
+ Dx) * 4 en sourcestart, rápidamente saca toda una fila de píxeles a la vez.
Las filas se formó una nueva variable, TempImage, que finalmente se transfiere a la
pieza del rompecabezas real.
4. Después de que las piezas tienen su rectángulo de la imageData del, Entonces
necesitamos para mover las piezas en lugares al azar, listo para el usuario para
jugar el juego. Esto se hace con un dispersión handler:
en dispersión
repetir con a = 1 para el número de imágenes en el grupo de
"piezas", coloque el myloc imagen de un grupo de
"piezas" de la locomotora de
la imagen de un grupo de "piezas"
poner el nombre corto de la imagen de un grupo de
"piezas" en n si edgepiece (n) a continuación,
establecer la locomotora de la imagen de un grupo de "piezas"
a 40 +
aleatorio (400), 300 + aleatorio (400)
más
establecer la locomotora de la imagen de un grupo de "piezas"
a 500 +
aleatorio (500), 300 + aleatorio (400)
End If
final de
la
repetición
fin dispersión

5. La primera cosa que la mayoría de los jugadores de rompecabezas hacer es


separar las piezas de bordes rectos. Podemos codificar las cosas de un modo que
les permite ahorrar un poco de tiempo, mediante el empleo de una función que
[ 153 ]
Making a Jigsaw Puzzle Application
coloca las piezas de borde alejado de las piezas de borde no. La edgepiece
función (que se llama desde el dispersión controlador mencionado
anteriormente) es la siguiente:
función pName edgepiece
devolver la palabra 2 de pName = 1 ó 3 palabras de pName = 1 o
la palabra 2 de pName = hcount o palabra 3 de pName = vcount
final edgepiece

[ 154 ]
Chapter 5

6. El nombre que hemos cuidadosamente establecido para cada pieza se comprueba


para ver si esa pieza se encuentra en los márgenes izquierdo, derecho, superior o
inferior del puzzle. En otras palabras, se trata de una pieza desde el borde exterior
del rompecabezas. Scatter coloca las piezas de bordes rectos en la mitad izquierda
de la pantalla, y los otros en la mitad derecha de la pantalla.

7. El inicio de la makepuzzle controlador llama a un resetpuzzle manejador. Que se


utiliza
para asegurarse de que las piezas están de vuelta al punto de partida, listo para una nueva
imagen para ser
cargado. Eso se logra mediante el uso de una variable de la propiedad en cada pieza,
llamada myloc,
que registra la ubicación inicial. Aquí está la resetpuzzle handler:
en resetpuzzle
repetir con a = 1 para el número de imágenes en el grupo de
"piezas"
si el myloc de la imagen de un grupo de "piezas" no está
vacío a continuación, establezca la locomotora de la
imagen de un grupo de "piezas" para la myloc de
la imagen de un grupo de "piezas"
más
establecer el myloc de la imagen de un grupo de "piezas"
a la locomotora de la imagen de un grupo de "piezas"
End If
final de
la
[ 155 ]
Making a Jigsaw Puzzle Application
repetición
final resetpuzzle

8. Se puede ver que si myloc si no ya se ha establecido, la pieza debe estar en


su posición de inicio, y por lo que el resetpuzzle manejador sigue adelante y los
registros que
ubicación en el myloc propiedad.

[ 156 ]
Chapter 5

9. Elimine el comentario de las líneas en el paso 17 de Time for Action - la creación de


las piezas y la elección de una imagen (la makepuzzle y dispersión líneas), y
otra prueba de la aplicación. Ahora debería ser capaz de elegir una imagen y verla
como hacia fuera las piezas del rompecabezas. Esperamos que pueda ver algo como
la siguiente captura de pantalla:

¿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

Tiempo de acción - la creación de


eventos de toque
Los controladores hasta ahora han sido en la secuencia de comandos de tarjetas, el plan
de ser a tener diferentes tarjetas con diferentes tipos de rompecabezas. Los
controladores de interactividad puede ser colocado en la pila de secuencia de comandos,
disponible para todas las tarjetas.

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"

2. La preopenstack handler chequea si la aplicación está en el iPhone, y pide que


la resolución original del dispositivo utilizado. Esto se asegurará de que las
pantallas Retina mostrar la mejor calidad. La compositorType se establece en
Static OpenGL ayudará a rendimiento.

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

4. El proceso de registro del nombre de destino es una forma rápida de asegurarse de


[ 158 ]
Chapter 5
que no se arrastren nada alrededor excepto para las piezas del rompecabezas.
Cuando una pieza es tocado usamos el relayerGroupedControls y capa
funciones que hacen que la pieza aparecen por encima de las otras piezas.

[ 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

9. Este es el checkdistance controlador y un distancia funcionar lo llama:


en checkdistance dt
snapdistance si está vacío, poner el 100 en snapdistance
poner distancia (artículo 1 de la locomotora de imagen dt -
Artículo 1 de la myloc dt de la imagen, el punto 2 de la
locomotora de imagen dt - punto 2 del
myloc de la imagen dt) en d
si d <snapdistance entonces
poner max (.1, min (.2, d/200)) en t
dt mover la imagen a la myloc de dt imagen en
segundos t Ajuste el relayerGroupedControls en true
establecer la capa de dt
imagen a 2 final si
final checkdistance

[ 160 ]
Chapter 5

función de la distancia dx,


dy sqrt retorno (dx * dx
+ dy * dy)
final distancia

[ 161 ]
Making a Jigsaw Puzzle Application

10. La distancia función utiliza la fórmula de Pitágoras, devolviendo el número de


píxeles entre la pieza del rompecabezas y su original myloc valor. snapdistance
es la variable global que se utiliza para determinar si la pieza es lo suficientemente
cerca de su lugar de partida para ser considerado en el blanco.
11. La mover línea utiliza LiveCode de mover función, que animará la pieza
en su lugar.
12. Una última cosa, vamos a ver si el puzzle se completa. Añadir este
controlador para el guión de pila:
en checkfinished
repetir con a = 1 para el número de imágenes en el grupo de
"piezas" si el myloc de la imagen de un grupo de
"piezas" <> de la Línea de Control
la imagen de un grupo de "piezas" y salga checkfinished
Fin de
repetición
responde "Lo has hecho!"
terminar checkfinished

¿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.

Tener un héroe go - una para los niños


Funciones que se relacionan con el mismo rompecabezas están en la secuencia de comandos
de tarjeta. Trate de hacer una nueva tarjeta que tiene grandes piezas del rompecabezas y un
valor más alto para snapdistance (Cuanto mayor sea el valor, más fácil
que es conseguir una pieza en su lugar). Se podría hacer una tarjeta de apertura para la pila
que tiene un conjunto de botones de nivel de dificultad, uno de los cuales podría saltar al
puzzle más fácil. Eso sería lo ideal para los jugadores más jóvenes.

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:

 Comprender el formato de imageData del, alphaData, y maskData


 Copia de las áreas de imageData del de una imagen a otra
 Lectura de los píxeles individuales de una imagen, y encontrar nuevos usos para los que el
valor
 También vimos cómo utilizar interactividad multi-táctil para que esos trozos de
imageData del a la vida, en forma de un rompecabezas

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:

 Hable de lo que se entiende por un "recordatorio"


 Crear varias funciones de utilidad de medición de tiempo
 Definir una estructura de datos para almacenar información acerca de un evento
 Hacer uso de dispositivos móviles "notificaciones"
 Crear una aplicación de recordatorios flexibles

¿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:

Un mensaje de notificación o el sonido, que aparece automáticamente o muestra cuando se


mira por él, que se utiliza para hacerle saber que un cierto tiempo haya pasado, un
momento ha llegado, o que una tarea pendiente no se ha completado.

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í

 Lista de la compra: En este caso, usted va a buscar el recordatorio, aunque


podríamos configurarlo para que muestre automáticamente cuando su ubicación pasa
a ser cerca de la tienda! Aparte de eso caso, este es efectivamente una tarea que no
se ha completado.
 Regalo de Navidad lista: Casi lo mismo que una lista de compras, pero podría
utilizar un mensaje temporizado que le permiten saber hacer de unos días de
compras están a la izquierda.
 To-do list: De nuevo, es simplemente una lista de las tareas que no hayan finalizado.
 Alarma: Esta es una notificación de que un momento en el tiempo ha sido alcanzado.
 Egg timer: Esta es una notificación de que una cierta cantidad de tiempo ha
pasado, lo que podría ser utilizado en una secuencia de tales eventos que
podrían ser utilizados en una aplicación de cocina-buddy.
 Cumpleaños recordatorio: Esta muestra si un determinado momento se ha
alcanzado. Realmente sin embargo, que desea establecer el aviso para que le
notifique antes del evento real.

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

"Greenwich Mean Time", a menudo referido como "GMT", se ha utilizado como el


estándar para especificar el tiempo. Ahora es algo superado por UTC (Tiempo Universal
Coordinado), pero en cualquier caso, representa la hora actual exacta, al menos para los
países que están dentro de la misma zona horaria de Greenwich. El resto de nosotros
sumar o restar una cierta cantidad de tiempo o a partir de ese valor.

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.

Nada de esto afecta el número de segundos transcurridos desde la medianoche


01/01/1970, pero sí quiere decir que la conversión del segundo LiveCode en la fecha y hora
utilizando su propia aritmética no le dará el tiempo correcto. Y sin embargo, todavía se
utiliza como base para las notificaciones. Este valor se conoce normalmente como el
tiempo Unix.

No debería importar mucho si al final enviar a alguien un mensaje de feliz cumpleaños 25


segundos antes! Pero no te preocupes, la forma en que vamos a calcular el tiempo de
notificación se hará cargo de la rareza.

Fecha y hora recolectores


Como se mencionó anteriormente, las notificaciones móviles utilizan el número de segundos
transcurridos desde la medianoche del
01/01/1970, y no agregan a los 25 o menos segundos intercalares que se han producido desde
entonces. ¿Cuándo
se presentan los selectores de fecha y hora para el usuario, las selecciones que realice el usuario
vendrá
atrás como el tiempo real actual o futuro. Vamos a ajustar para eso después.

Tiempo para la acción - la creación de selectores de fecha y hora


Realizar una nueva pila de prueba-rig, que usaremos para probar algunas selectores de fecha y
hora.

1. Crear un nuevo Mainstack, que sea ReminderFunctions, y guardar la pila.


2. Agregue dos campos y dos botones.

[ 161 ]
Making a Reminder Application

3. Nombre un campo dateinseconds y el otro tiempoEnSegundos.


4. Nombre de los botones Elija la fecha y Elige Time.
5. Establecer el guión de la Elija la fecha botón a lo siguiente:
en mouseUp
mobilePickDate "fecha"
poner el resultado en
tDate tDate convertir a
segundos
tDate poner en el campo de mouseUp
fin "dateinseconds"

6. Ajuste el Elige Tiempo botón de secuencia de comandos para esto:


en mouseUp
mobilePickDate "tiempo"
poner el resultado en
TTIME TTIME convertir a
segundos
TTIME poner en el campo
"tiempoEnSegundos" mouseUp final

7. Ajuste de la configuración de aplicación independiente, de modo que usted puede probar


en iOS o Android.
8. Elija su destino de prueba (en este caso, se puede ver que iPhone Simulator fue
elegido como el destino), y hacer una prueba.
9. Haga clic en el botón de fecha Selección.
10. Seleccione 25 de diciembre 2012, y haga clic en Hecho.
11. El número de segundos desde la medianoche hasta la medianoche del 01/01/1970
el día de Navidad de 2012 se muestra en el primer campo que ha creado.

[ 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

Pop-Quiz - AO (Siglas extraño!)


1.You puede haber notado que el acrónimo de "Tiempo Universal Coordinado" es hora
UTC y la CUT no. ¿Por qué es eso?
a.CUT es muy común una palabra
b. Para no molestar a los franceses
C. Los miembros del comité siglas eran disléxicos

¿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!

La técnica general al leer sensores de dispositivos móviles es para iniciar el seguimiento de


un sensor determinado, detectar cuándo los cambios ocurren, y para interrumpir el
seguimiento del sensor. Se puede tomar una lectura del sensor en cualquier momento entre
el comienzo y parada de seguimiento. También puede especificar el nivel de detalle de un
informe que desea, y si desea una lectura precisa. La precisión de localización GPS se dictan
si se utiliza o no. La ventaja de utilizar GPS es que se obtiene una mayor precisión
(asumiendo que hay una señal clara en ese momento), las desventajas son que
que consume más energía de la batería y los dispositivos que no tienen GPS no podría
utilizar esa característica. Cuando se utiliza la ubicación como parte de un recordatorio,
estamos principalmente interesados en saber si usted está en casa o la oficina, o tal vez el
supermercado. Así que vamos a utilizar la lectura menos precisos, como el GPS pueden ser
[ 164 ]
Chapter 6
excesivos.

[ 165 ]
Making a Reminder Application

Tiempo para la acción - probando el seguimiento


de localización nativa
Más adelante vamos a añadir una característica para permitir que el usuario de la
aplicación para agregar a un conjunto de ubicaciones favoritas. Por el momento, sólo
tendremos que probar las funciones básicas. La ubicación no está disponible en los
simuladores, usted tendrá que probar esto en un dispositivo real.

1. Utilice la pila de prueba-rig desde arriba, y añadir un botón Ubicación Get y un


ubicación campo. Asegúrese de que el ubicación campo es tan ancha como
la ventana de la tarjeta, sino que se muestra tres números largos.
2. Establecer la secuencia de comandos del botón a lo siguiente:
en mouseUp
mobileStartTrackingSensor "ubicación", true
poner mobileSensorReading ("localización", false) en el campo
"Ubicación"
mobileStopTrackingSensor
"ubicación" final mouseUp

3. La verdadero en la segunda línea es la que define a un "suelto" de valor, y


estamos diciendo que no necesitamos la precisión del GPS. La falso en la tercera
línea está diciendo que
no necesitamos información detallada a devolver.
4. Vaya a Ajustes aplicación independiente, elegir el dispositivo de destino: iOS o Android.
5. Para iOS, ajuste Display Name, ID App interna y Perfil. Elige tu dispositivo, la versión
del SDK, y si se trata de ser una aplicación universal (ARMv6 es para los dispositivos
más antiguos y ARMv7 es para los nuevos dispositivos. ¿Para qué vale la pena,
Apple se han reducido el apoyo a ARMv6).

[ 166 ]
Chapter 6

6. Para Android, sistema de etiquetas, identificador y Mínimo versión de Android.

7. Además, en la parte Permisos de Aplicación de la configuración de Android,


asegúrese de que usted ha pedido permiso para obtener la ubicación Grueso:

8. Seleccione Guardar aplicación autónoma e instalar la aplicación en su


dispositivo. Siga la descripción en el Capítulo 2, Primeros pasos con LiveCode
Mobile, si necesita un recordatorio de cómo hacer eso!
9. En la aplicación, pruebe la fecha de recogida y Pick tiempo botones para ver cómo
criar a los controles nativos, a continuación, pulse el botón Ubicación Get. Tres
números largos deben aparecer en el ubicación campo:

[ 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 ...

Cálculo de la distancia entre dos puntos sobre la Tierra


El plan consiste en ser capaz de ordenar la lista de recordatorios en orden de distancia
desde donde estás ahora mismo. Digamos que usted realmente utilizar esta aplicación
mucho y tener docenas de recordatorios. El recordatorio que ha creado en comprar un poco
de pan puede estar en la parte inferior de la lista, pero si ha asignado la ubicación del
supermercado para ese recordatorio, a continuación, ordenar la lista mientras usted está
fuera del supermercado deben traer los elementos de la lista de compras para el parte
superior.

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

Pruebe esto en el cuadro de


mensaje:
poner distancia (40, -74,51,0)

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

Pop Quiz - ¿Qué piso es mi apartamento?


1.Examine la captura de pantalla anterior (el programado a las 6:53 PM), y teniendo en
cuenta la idea de que el edificio en el que vivimos no es tanto sobre el nivel del
mar, lo que planta puedo vivir?
piso a.40th
b. 73 pisos por debajo de la
planta baja c.11th
d. Yo no tengo hogar

¿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.

Otra cosa a considerar es donde vamos a almacenar la información de la lista de


recordatorios? Al hacer la aplicación WebScraper, se optó por duplicar la pila principal de la
aplicación en el documentos carpeta, y para saltar entonces en esa copia de la pila. Esto
permitió la posibilidad de guardar los cambios a la pila. La aplicación de recordatorios es un caso
sencillo; sólo estamos tratando de almacenar unas cuantas cadenas de texto para definir cada
recordatorio, y que sería más sencillo que escribir un archivo de texto.

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

Para recordar, es el siguiente:

 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")

Haciendo la aplicación recordatorios


Ok, base suficiente! Vamos a empezar a hacer que la aplicación recordatorios. En lugar de
agregar una característica a la vez junto con las secuencias de comandos, vamos a hacer las
diferentes tarjetas que serán necesarios para crear
Interfaz de la aplicación de usuario gráfica (GUI) primero, y después volver atrás y añadir los
scripts.

Colocación de las tarjetas


Vamos a hacer la primera carta de la pila de ser un lugar donde se pueden ver los avisos actuales,
ordenarlos por hora o el lugar, y añadir nuevos recordatorios y lugares. Entonces, vamos a hacer una
segunda tarjeta para entrar en los detalles de la ubicación, y una tercera tarjeta para entrar en los
detalles de un nuevo recordatorio.

Tiempo de acción - la creación de las pantallas de aplicaciones de


recordatorio
Los pasos que se muestran aquí se van a utilizar los campos LiveCode estándar y los
botones, pero no dude en hacer su versión más atractivo!

1. Crear un nuevo Mainstack, darle un nombre de EasyReminder, y seleccione


Guardar. Otras opciones, como Recordatorios sencillos puede ser más
[ 174 ]
Chapter 6
descriptivo, pero sería un nombre demasiado largo si usted está usando un
iPhone.

[ 175 ]
Chapter 6

2. Ajuste el tamaño de la tarjeta con el tamaño de su dispositivo. Las pantallas que


se muestran a continuación se basan en una pila de tamaño iPhone.
3. Ir a Ajustes aplicación independiente, y establecer los valores de la misma manera
que lo hicimos durante las pruebas de la función de localización.
4. Establezca el nombre de la primera carta que se casa.
5. Crea una Ordenar por Tiempo , una tecla Ordenar por Ubicación
botón, un campo denominado recordatorios, otro campo denominado
datos, y dos botones denominados Crear Recordatorio ... y Crear
ubicación ....

6. Agregar un botón más, de nombre Eliminar ubicación o Recordatorio.


7. Asegúrese de que ambos campos tienen su cuadro de texto Lock activada y No envuelva
marcada.
8. Usted debe tener algo similar a lo siguiente:

[ 171 ]
Making a Reminder Application

9. Hacer una nueva tarjeta y asígnele el nombre ubicación.


10. Agregar un campo y establezca sus contenidos para decir: Introduzca la
latitud y longitud de esta localidad.

11. Agregue dos campos de entrada con nombre latitud y longitud.


12. Cree un botón llamado Ajuste a la ubicación actual.

Evite errores tipográficos


Aunque hemos puesto un campo para que escriba en la ubicación a mano,
utilice el botón Set para ubicación actual, si es posible, o al menos el uso
que en su ubicación actual para ver el formato que se requiere.

13. Añadir otro campo de instrucciones que dice: Escriba un nombre para esta
ubicación:.

14. Agregar un campo de entrada en tercer lugar, el nombre localización nombre.

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

18. Haga una tercera carta y el nombre de recordatorio.


19. Agregue dos campos de instrucción que dicen: Escriba un título para este
recordatorio: y
Introduzca una breve descripción:.

20. Cree dos campos de entrada con nombre título y Descripción.


21. Cree tres botones denominados Establecer ubicación Conexas Configuración
de la fecha, y Establecer hora.

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.

23. Cree un botón llamado casilla de verificación Reproducir sonido de alerta.

24. Por último, cree dos botones más nombrados Agregar aviso y Cancelar.

25. Organizar todos estos elementos para aparecer como sigue:

[ 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!

Pila de secuencias de comandos de nivel


Hay un poco de código por delante. Describiendo lo tienen por característica implicaría
saltar por todo el lugar, añadiendo a los guiones existentes en algunos casos, por lo que
sería fácil perderse. Así que en lugar de hacerlo de esa manera vamos a ver el código de
cada tarjeta a la vez, y también a los controladores que entran en el guión de pila. Se
muestra aquí en "La hora de la acción" pedazos, sobre todo para darle un descanso de vez
en cuando! Así que sin más preámbulos, el guión Stack ...

Tiempo para la acción - la adición de funciones de nivel de pila


Para esta aplicación, vamos a poner un poco de la lógica de los botones en las propias tarjetas,
pero todavía deja una buena cantidad que entra en el guión de pila. Para que sea menos
abrumador, mostraremos una o dos funciones a la vez seguido de una explicación acerca de
cualquier
puntos interesantes.

1. Abra el script de pila.


2. Escriba los controladores siguientes:
en OpenStack
si la plataforma es "iphone" iPhoneSetKeyboardReturnKey entonces
"Done"
ReadData
showData
final OpenStack

en el enfoque
returnInField en
nada
final returnInField

Android OS teclados generalmente tienen un botón dedicado a poner el


control del teclado. Sin embargo, ese no es el caso en iOS; el botón que se
encuentra en la Volver clave debería ser posible que tenga lugar una palabra
especial, tales como
Enviar, o Hecho. Lamentablemente, en la introducción de texto en los campos que son
capaces
tener un carácter de retorno. Para resolver este problema, establezca la Volver
botón Hecho decir, lo que llevará al usuario a esperar el teclado para que
[ 174 ]
Chapter 6
desaparece cuando se presiona el botón. También atrapar el
returnInField mensaje, y usar eso como una manera de poner
realmente el control del teclado.

[ 175 ]
Making a Reminder Application

3. A continuación, escriba las funciones que va a leer y escribir la lista de recordatorios


como un archivo de texto en el documentos carpeta en su dispositivo:
en WriteData
mundial gReminderData
poner specialFolderPath ("documentos") & "/ reminders.txt"
en tRemindersPath
gReminderData si está vacía, entonces escriba "hay
entradas" en gReminderData
tRemindersPath archivo abierto
escribir gReminderData presentar
tRemindersPath tRemindersPath cerrar el
archivo
clearnotifiers
setupnotifiers
final WriteData

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

tarjeta ir "a casa"


puesto vacío en el terreno "recordatorios"
poner en gReminderData campo "datos"
si gReminderData = "hay entradas" y
luego salir showData
End If
establecer el itemdelimiter
a poner una ficha en
tLineNumber
repetir con a = 1 para el número de líneas en
gReminderData poner una línea de gReminderData en
Tentry
si el artículo 1 de Tentry =
"Recordatorio" y luego poner el
punto 2 del Tentry en TTITLE
poner el tema 3 de Tentry en tDescription
poner el tema 4 de Tentry en tNotificationTime
convertir tNotificationTime de segundos a tiempo
abreviado y fecha larga
poner el tema 5 del Tentry en tLocationName
poner TTITLE & ":" && && tDescription && tNotificationTime
tLocationName en tLineNumber línea de campo
"recordatorios" para añadir un tLineNumber
End If
final de
la
repetición
final
showData

Si recuerdan el archivo de texto de ejemplo de antes, la showData


función está teniendo cada línea y la división de los elementos TAB
delimitado en trozos de información para presentar al usuario. Un truco
lindo es que el tiempo de notificación, que es un número largo de
segundos, se convierte en un formato legible por humanos, que muestra
tanto la fecha y hora de la notificación. La datos campo se utiliza para
mostrar los datos en bruto que se ha grabado. En la aplicación final que
no se repite el mensaje, pero es útil para comprobar si la información es
correcta recordatorio.

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

si el artículo 1 de tEntryDetails = "Recordatorio", entonces


poner punto 2 del && tEntryDetails "-" elemento
&& 3 de tEntryDetails en alertBody
poner en "Aceptar" en
alertButtonMessage
poner en tEntryDetails alertPayload
poner el tema 4 de tEntryDetails en
alertTime poner el tema 6 de tEntryDetails
en mobileCreateLocalNotification
reproducirSonido alertBody,
alertButtonMessage, alertPayload, alertTime, reproducirSonido
End If
final de
la
repetición
setupnotifiers finales

en pMsg localNotificationReceived
responder "Notificación Local:" el
fin && pMsg localNotificationReceived

Muchas aplicaciones móviles que utilizan notificaciones no siempre


borrarlos. En general, a lo mejor no tiene que ser limpiado, una vez que
pasan se han ido para siempre! Bueno, no siempre. A veces, usted irá a
una aplicación justo por delante de
cuando una notificación de que va a pasar, y hacer la tarea, para luego ser
molestado con notificaciones acerca de algo que ya hizo! En nuestra
aplicación,
que borrar todas las notificaciones que fueron vencidos y volver a crear la
lista completa de nuevo. De este modo, cualquier notificación que haya
eliminado no volverá en tu contra después. Para ayudar en la depuración,
alertPayload se completa con la entrada recordatorio entero, y se
mostrará a usted cuando entra en juego la notificación

¿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.

Scripts de inicio de tarjetas


No vamos a poner las secuencias de comandos en el nivel de la tarjeta, sino que sólo puede
estar dentro de los distintos botones, empezando por los de la primera tarjeta.

[ 180 ]
Chapter 6

Tiempo para la acción - lo que los botones de la tarjeta de trabajo a


domicilio
El guión Ordenar por botón de ubicación no es poco. Usted debe mirar hacia adelante a
eso! Pero primero, vamos a empezar con el botón Ordenar por Hora.

1. Edite el script del botón Ordenar por Time, en la primera carta.


2. Escriba en este controlador de resumen:
en mouseUp
mundial gReminderData
establecer el itemdelimiter a la pestaña
tipo numérico gReminderData por el tema 4 de
cada showData
WriteData
final mouseUp

LiveCode comando de clase es de gran alcance, y en el caso anterior,


se ordenar la lista de recordatorios basado en el valor de
notificación segundos. Una vez que las líneas están ordenados, la
lista para que el usuario ve es recreado,
y el archivo de texto se reescribe.

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 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

La primera parte de la mouseUp controlador es sólo conseguir la ubicación actual.


La distancia y toRad las funciones son las mismas que vimos antes.
La magia sucede en la forma en que la línea de clasificación utiliza una función para
determinar
el orden de clasificación. Con la aprobación de la ubicación que se asocia con cada
recordatorio
[ 183 ]
Making a Reminder Application
en la GetDistance función, es posible ejecutar a través de la lista de
lugares para encontrar una coincidencia, y luego usar esa ubicación latitud y
longitud
para medir la distancia desde su ubicación actual. Esa distancia es entonces
utilizado por el comando de clase para decidir el orden de las líneas.

5. Para relajarse un momento de editar el recordatorio ... Crear script de botón, y la


puso a lo siguiente:
en mouseUp
Ir a la ficha mouseUp
"recordatorio" end

[ 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

La borrar controlador utiliza mobilePick con un conjunto


particular de parámetros. Un parámetro interesante es marca de
verificación. El pedir ese tipo de selector se mostrará una lista
con casillas de verificación que cuando está en el iPad o Android. Esto
permitirá elegir varias entradas a borrar
de una sola vez. Por lo tanto repetir el bucle que recorre tantos
artículos como usted eligió.

¿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
...

Creación de una ubicación de la tarjeta


El siguiente paso es la tarjeta que vamos a mostrar cuando el usuario toca la Creación ...
Localización botón en la primera carta.

[ 185 ]
Making a Reminder Application

Tiempo de acción - haciendo el trabajo de la tarjeta ubicación


La tarjeta tiene tres campos Vivo en el mismo, para la latitud, longitud, y un título para la
ubicación. El usuario también puede escribir en los detalles de forma manual, pero si llegan
a estar en el lugar en cuestión hay un botón hay que agarrar la ubicación y rellenar los
números de forma automática.

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

2. Nada demasiado complicado allí, la ubicación se agarró y la latitud y longitud


entradas se almacenan en los dos campos.
3. Edite el script del botón Cancel, y el cambio a este script sencillo:
en mouseUp
Ir a la ficha
mouseUp "hogar" end

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

poner retorno y tLocationDetails después del


final gReminderData si
Ir a la ficha
"casa" showData
WriteData
mouseUp
final

5. La mayor parte de ese controlador es simplemente verificar que el


usuario haya introducido la información requerida.

¿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 ...

Recordatorio formulario de inscripción


Esta última carta es esencialmente un formulario de inscripción, sólo queremos preguntarle al
usuario cuál es el recordatorio
es para. Hay algunos aspectos difíciles a él sin embargo, y una o dos funciones extensas para
hacer frente
con eso.

Tiempo de acción - teniendo en información sobre el recordatorio


La tarjeta de recordatorio hace un buen uso de los recolectores. Hay poca escribiendo para que el
usuario lo hace,
y porque van a recoger una entrada de una lista que se presenta, hay una buena probabilidad de
la
información no tendrá ninguna errata en él!

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

4. El guión del botón Cancelar es el mismo ya que está en la tarjeta de Ubicación:


en mouseUp
Ir a la ficha
mouseUp "hogar" end

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

La mayor parte de la secuencia de comandos es simplemente la


combinación de los diferentes bits de información junto a la entrada un
recordatorio, la delimitación de las zonas con un carácter de tabulación.
Pero hay un poco de aritmética lindo pasando ahí también. Al comienzo de este
capítulo, nos fijamos en cómo se diferencia de tiempo Unix tiempo real a una
velocidad de 0,6 segundos por año. Si desea programar una notificación a las 8
am en cinco años a partir de ahora, entonces usted no puede tomar el valor
que el botón Set Time le dio, ya que se refiere a la actual 8 am. No se puede
tomar el valor que le dio Establecer fecha, porque eso sería medianoche. Por lo
tanto, al convertir el valor de tiempo en formato de fecha corta, y luego de
vuelta a formato segundo, averiguar lo que el tiempo Unix fue en la
medianoche del día actual. Restando que a partir del valor que le dio Set Time
le permite conocer el número de segundos transcurridos desde la medianoche,
sin importar cuántos segundos detrás del tiempo Unix es. Adición de ese valor a
la de Set Date nos dará una exacta segundo Unix para notificar que se
produzca. En iOS, hay un tipo de selector que le permite ajustar la fecha y la
hora juntos, pero como que no está en Android, hemos utilizado una forma que
funcione para ambos.

[ 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.

Tener un héroe go - transiciones agradables


En realidad, si se las arregló para pasar por entrar todo ese código hasta el punto en que la
aplicación está funcionando, ya eres un héroe! Sin embargo, lea la sección en el iOS y Android
notas de la versión para LiveCode acerca de la compatibilidad de efectos visuales. A ver si puedes
conseguir algunas transiciones típicas sistema operativo móvil que ocurren a medida que avanza
hacia y desde las diferentes tarjetas. Si decide utilizar MobGUI como una manera de hacer que la
aplicación vea más bonita, entonces eche un vistazo en sus scripts por defecto del botón, hay
comentada líneas que pueden ayudarle a empezar con la realización de transiciones agradables.

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:

 Examine todos los ajustes independientes de aplicaciones opciones


relacionadas con la creación de aplicaciones móviles
 Crear compilaciones de una aplicación de modo que pueda ser enviado a los probadores
beta
 Construir una versión final de distribución de una aplicación
 Revise cómo cargar aplicaciones para iOS App Store, AppStore Amazon
y Google Play

Hay algunas etapas en la creación de aplicaciones para iOS para la App


Store que tiene que llevarse a cabo en un Mac, y así todos los pasos
descritos aquí para iOS se deben seguir usando un Mac. Los pasos de
Android pueden aplicar para Mac o Windows. Tenga en cuenta también
que este capítulo es más de una referencia, y no un tutorial práctico.
Cuando usted tiene una aplicación que se está preparando para completar
y enviar a las tiendas de aplicaciones, y te encuentras con un punto de
fricción, esperemos que recuerdo haber leído sobre el tema en algún lugar
de este capítulo!
Deploying to Your Device

Configuración de aplicaciones independientes


Ya ha estado en la configuración de un par de veces ya, pero sólo hemos hecho el número mínimo de cambios
necesarios con el fin de probar la aplicación. Hay un montón de opciones en allí que usted tendrá que llenar
antes de su aplicación está lista para ser vendida en una tienda de aplicaciones. Realizaremos una breve repasar
las secciones de aplicación independientes de, y luego entrar en más profundidad con el Android y iOS
secciones.

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.

La última selección es el procesador utilizado en el dispositivo. Sus opciones son v6


Universal, brazo, y el brazo v7. Estos se refieren a conjuntos de instrucciones utilizado en los
procesadores móviles. En iOS, las cosas son más sencillas que en Android, ya que los
procesadores se denominan ARMv6 o ARMv7. Con Android, hay muchos más tipos de
procesadores, y puede tomar un poco de investigación para averiguar qué conjunto de
instrucciones se utiliza para un procesador determinado.

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:

Configuración básica de aplicación


Hemos utilizado algunos de estos valores un par de veces ya. Éste es el conjunto completo de opciones:
 Mostrar el nombre: el nombre que aparecerá bajo el icono en el dispositivo real
 Versión: el número de versión que aparece en la descripción de iTunes para la aplicación
 Interior App ID: el ID de aplicación que utilizó en el Portal iOS Developer hora de
hacer el desarrollo o el perfil de distribución de aprovisionamiento
 Perfil: el perfil de datos que coincide con esta aplicación
 Externos: un conjunto de archivos de comandos opcionales externos que
pueden haber utilizado en su aplicación

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.

Es importante asegurarse de que la actualización de una aplicación que envía deberán


tener un número de versión es posterior a la aplicación existente. A partir de las marcas
1.0.0 sentido, recuerda a aumentar el número cuando usted hace sus actualizaciones. No
te preocupes, si te olvidas de que se encuentra el proceso de subida a la App Store fallará!
Las tiendas de aplicaciones en general requieren que la actualización sea una versión
posterior a la que está siendo reemplazado.

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

En la imagen siguiente ejemplo, un archivo de aprovisionamiento de desarrollo que se elija,


y también hay comandos externos utilizados fueron:

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!

Observe la casilla de verificación Icono prerendered. Usted tiene la opción de crear un


icono exactamente como debe aparecer en los dispositivos. O bien, puede producir un
icono cuadrado sin sombra, y deje el sistema para que se vea como un botón con un
efecto de relieve. Echa un vistazo a los diferentes
aplicaciones en sus dispositivos, usted encontrará que algunas personas estaban felices de
usar biselado de Apple aspecto resaltado, y otros prefirieron hacer sus propias cosas. La
función del icono prerendered le permite hacer su propia cosa. En esta captura de pantalla
se puede ver que los iconos de todas
tipos han sido seleccionados, incluso Retina iPad, y que no están pre-prestados:

[ 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:

Esquema de URL personalizada


A veces, cuando se utiliza un dispositivo iOS te va a tocar una URL en una página web, y de
pronto te encontrarás en el correo, o mirando una página en la App Store. Esto se logra
mediante el uso de un esquema de URL personalizado. En el caso de la App Store, los
enlaces comienzan con ITMS-apps :/ /, y desde ese iOS sabe que el enlace debe abrirse en la
App Store app. Usted puede hacer lo mismo con su aplicación. Al establecer una cadena
personalizada similar a continuación, puede obtener iOS para abrir la aplicación cuando el
usuario toca un enlace que comienza con la misma cadena en la URL. El valor de la cadena se
introduce con un campo de entrada de texto simple como se muestra en la siguiente captura
de pantalla:

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.

Configuración básica de aplicación


Varias de las opciones para iOS se les da un nombre diferente para el sistema operativo
Android. En lugar de nombre para mostrar que hay Label, Internal ID App se llama
identificador, y no hay un archivo de aprovisionamiento, pero no hay una clave de firma.
Esencialmente, sin embargo, son las mismas opciones que para iOS.

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.

Así es como los ajustes básicos de aplicación se presentan opciones:

[ 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.

Éstos son los permisos que se pueden elegir:

[ 201 ]
Deploying to Your Device

Opciones de la interfaz de usuario


Las opciones de la interfaz de usuario realiza la misma función que la orientación y las
opciones de la barra de estado en iOS. Si usted está presentando una aplicación para iPad
que es el paisaje, hay que apoyar tanto a las variaciones del paisaje. Este no es el mismo
requisito con los almacenes de Android aplicación, y
por lo que las opciones son mucho más simples, es suficiente para decir si la orientación inicial ha
de ser
Retrato u horizontal, y si la barra de estado ha de ser visible o oculto:

Creación de aplicaciones para Beta Testers


Es posible que haya estado dando prueba se acumula a los amigos y colegas de todo el camino a través del
desarrollo de su aplicación, pero incluso si no lo ha hecho, se hace más importante que hacer a fin de que se
acerque al cargar la aplicación a las tiendas de aplicaciones. Los beta testers pueden informarle sobre
cuestiones técnicas y no técnicas. ¿Hay errores ortográficos en los créditos? ¿El icono se ven bien? Hubo algún
aspecto extraño a la experiencia de instalación? Y, por supuesto, es que la aplicación haga lo que se supone
que debe hacer, en los numerosos dispositivos y sistemas operativos?

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.

Envío de una aplicación Android para los probadores


Al hacer un Guardar como aplicación autónoma ... para Android, se crea un archivo APK.
Podrías correo electrónico el archivo a sus probadores, y que podían hacer lo que se
llama una "carga lateral" de la
archivo en su dispositivo. En el Capítulo 2, Primeros pasos con LiveCode Mobile, vimos lo
difícil que puede ser conseguir un dispositivo Android conectado para las pruebas, y bien
podría estar más allá de las capacidades técnicas de algunos de sus probadores para
hacerlo.

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

Preparación de una aplicación iOS para que pueda trabajar


en algún otro dispositivo
Las cosas no son tan sencillas para iOS! Lo primero que tienes que hacer es añadir el ID de
dispositivo único (UDID) para cada uno de los dispositivos de probadores beta "en su cuenta
de desarrollador de iOS. Los probadores pueden conseguir ese número al conectar el
dispositivo a su ordenador y ver su información en iTunes. Cuando usted está buscando en la
pestaña Información, podrás ver el número de serie del dispositivo. Al hacer clic sobre el
número que hará que cambie a un número más largo, que es el UDID que será necesaria.
Una vez que ese número está mostrando que puede hacer un atajo de teclado para copiar el
número al portapapeles (Ctrl + C en Mac, Ctrl + C en Windows). Haga que sus probadores de
hacer esto, y luego los he pegar el número en un mensaje de correo. Usted quiere
asegurarse de que usted obtenga el número correcto, porque va a utilizar una de sus 100
asignación de dispositivos en su cuenta de desarrollador de iOS.

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

A continuación, vaya a la fespués de enlace: https://developer.apple.com/ios/manage/


provisioningprofiles / index.action y, o bien crear un nuevo perfil o seleccione
una existente y seleccione Editar / Modificar. A continuación, aparecerá una lista de los
dispositivos asociados
a su cuenta, y puede permitir a cualquier combinación de dispositivos que desea trabajar con ese
aprovisionamiento perfil. En la siguiente imagen puedes ver que el grupo de dispositivos de
prueba es
muy breve:

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.

La creación de "Over The Air" instaladores para iOS


Desde iOS 4.0, ha sido posible instalar una aplicación desde un vínculo en una página web.
Creación de la estructura de archivos para que eso funcione es un poco complicado, aunque,
pero, afortunadamente, hay por lo menos un par de herramientas que se pueden comprar
para hacer las cosas más fáciles para usted.

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.

Creación de una tienda de aplicaciones de archivo de envío


El mayor obstáculo a superar para hacer una versión de su aplicación que puede ser
sometido a las tiendas de aplicaciones es la adquisición de un certificado de distribución. El
proceso es más rápido para Android, pero implica algo de tecleo en la línea de comandos, y
hay una ligera diferencia si estás en Windows en lugar de Mac. El proceso de iOS tiene
muchos pasos a la misma, pero al menos los que no tienen que ver con escribir comandos
crípticos. Pronto nos ocuparemos de Android en primer lugar.

Encontrar y utilizar la aplicación para Android Keytool


Una de las cosas que se instaló cuando se agregó el Java Development Kit es una
herramienta para hacer un archivo de almacén de claves, que es un certificado auto-
asignado. Es la herramienta que se utiliza para crear el certificado que necesita con el fin de
distribuir una aplicación para Android.
En Mac no es necesario para encontrar esa aplicación, sólo tiene que escribir el comando en
la Terminal, y la herramienta se encuentra para ti. En Windows necesita para navegar hasta la
carpeta
donde vive la herramienta de claves. Antes de llegar tan lejos tienes que abrir primero la línea de
comandos
Administrador.

En Windows, la aplicación CMD se encuentra en C: \ Windows \ System32 \. Vaya a


ese directorio en el Explorador de Windows, haga clic derecho en el archivo y seleccione
Ejecutar como administrador. La aplicación Keytool estará en la carpeta bin del directorio
Java JDK. Una vez en el directorio C: \ del sistema, cambie los directorios para llegar a ese
[ 208 ]
Chapter 7
lugar, que será algo así como: C: \ Archivos de programa \ Java \
jdkx.x.x_xx \ bin \, donde la jdkx.x.x_xx parte sería en realidad la versión del
JDK que ha instalado. Usted debe ser capaz de obtener todo el camino con una línea como
esta:
C: \> cd \ Archivos de programa \ Java \ jdk1.7.0_01 \ bin \

[ 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.

Cuando la herramienta esté terminado tendrá el archivo de almacén de claves que


LiveCode requiere. Será fácilmente disponible en la carpeta de inicio en Mac, y algo
enterrado en la carpeta bin del JDK en Windows.

Vaya a las Opciones de la aplicación de los ajustes básicos de la aplicación independiente


de su Mainstack y navegue hasta el archivo de la entrada Key. Una vez elegido, esa
sección se verá como la siguiente captura de pantalla:

Si usted ha elegido sus iconos, pantalla de presentación, requisitos y permisos, usted


debería ser capaz de construir una versión del archivo APK que se pueden cargar en las
tiendas de aplicaciones.

[ 210 ]
Chapter 7

Creación de un certificado de distribución para iOS


Como se mencionó anteriormente, no existe una tipificación de línea de comandos
implicados en conseguir un certificado de distribución para iOS, pero hay un montón
de pasos a seguir. El primer lugar a visitar es el iOS
Developer Portal, para asegurarse de que ha creado un ID de aplicación específico y
aprovisionamiento de archivo para esta aplicación particular.

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.

La carga en las tiendas de aplicaciones


Cada tienda de aplicaciones lo guía a través del proceso de carga de una nueva aplicación, y
hay un buen montón de pasos a seguir! Podría tomar otro libro para mostrar todas las
pantallas que tienen que vadear. Mostrando las pantallas aquí no sería tan valioso,
principalmente a causa de la gran cantidad de pantallas, pero también porque los cambios en
[ 213 ]
Deploying to Your Device
el proceso de vez en cuando. Por ejemplo, Google incluso cambió el nombre de su servicio
desde el capítulo 2 se ha escrito!

[ 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:

 iTunes Connect -https://itunesconnect.apple.com


 Google Play - https://play.google.com/apps/publish/
 Amazon AppStore - https://developer.amazon.com/home.html

¿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:

 Al examinar todas las opciones en la configuración de aplicación independiente


 Lucha de camino a través de líneas de comando y los trámites burocráticos para obtener
un certificado de aplicación
 Intentó conseguir mentalmente preparado para presentar en las tiendas de aplicaciones

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

La historia hasta ahora ...


El largo y tortuoso camino fue el último single que se lanzará por los Beatles, y que sería un
buen título para un libro que describe lo que se tardó en llegar LiveCode trabajando en
dispositivos móviles! Tan pronto como hubo aplicaciones en el iPhone, RunRev estaba
desarrollando una manera de publicar para iPhone de LiveCode. Luego, en abril de 2010,
Steve Jobs escribió este artículo infame en Flash:
http://www.apple.com/hotnews/thoughts-on-flash/

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

Rápidamente me envió un mensaje a la Revolución lista de correo electrónico, titulado


cómo hacer totalmente día de Kevin, "Kevin" ser Kevin Miller, CEO de RunRev. Tuvo el
efecto deseado, y aún se pueden leer los mensajes de la carta:
http://runtime-revolution.278305.n4.nabble.com/how-to-totally-make-
Kevin-s-día-td2532866.html

Esto me RunRev de nuevo en el desarrollo de una "Publicar en iOS" característica, iPhone


OS haber sido renombrado como iOS en ese momento. La conferencia terminó retraso que
tendrá lugar en San José, a finales de abril de 2011. En ese momento, RunRev no sólo
había hecho la función de iOS funcionan bien, pero también ha publicado la primera
versión de la "Publicar en Android" característica.

Es muy divertido de una manera de pensar que, si va a publicar en Android desde


LiveCode, puede agradecer a Apple por ser tan terco!

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/

 mergAccessory: Este es un iOS externo para conectar y comunicar con hardware


accesorio utilizando el marco de accesorio externo.
 mergAnswerColor: Se trata de un externo iOS que presenta un selector de color
modal.
 mergAV: Se trata de un externo iOS que agrega funciones y comandos
relacionados con el marco AVFoundation. Actualmente, esto incluye la selección,
grabar, guardar y editar videos.
 mergBanner: Esta es una externa iOS que añade una bandera iAd para su
aplicación en la parte inferior de la pantalla.
 mergDoc: Se trata de un externo iOS que agrega funciones y comandos
relacionados con la interacción con los documentos. Esto incluye actualmente
presenta un avance modal, abierto en el menú de aplicación, documento menú de
opciones, y solicitando los iconos del documento en formato PNG. La impresión es
también disponible a través de la vista previa.
 mergMK: Este es un LiveCode MapKit externo que añade un control del mapa, que
admite que muestra la ubicación del usuario con la rúbrica, añadiendo pins
anotación, y polilíneas.
 mergMessage: Esta es una externa iOS que añade un comando para enviar un mensaje
SMS.
 mergPop: Se trata de un externo iOS que añade funciones a presentar una hoja de
acción
(Pop-over en el iPad) y el menú contextual para la interacción del usuario.
 mergReader: Se trata de un externo iOS que presenta un lector de PDF modal
utilizando el código abierto vfrReader proyecto.
 mergSettings: Se trata de un externo iOS que integra una aplicación LiveCode
con la aplicación Ajustes y también incluye InAppSettingsKit presentar un
cuadro de diálogo de adaptación dentro de su aplicación.
 mergTweet: Esta es una externa iOS que añade un comando para enviar un mensaje
tweet.
 mergXattr: Se trata de un externo iOS que agrega comandos para configurar el
cartel de no respaldar y atributos de protección de un archivo.
 mergZXing: Este es un LiveCode externa que utiliza la ZXing biblioteca para
[ 216 ]
Appendix
leer una amplia gama de tipos de códigos de barras a través de la cámara trasera
de un dispositivo móvil.
 animationEngine: Esto le permite crear animaciones de alta calidad, y
detectar colisiones entre objetos. Es muy adecuado tanto para crear juegos y
aplicaciones para hacer la presentación. Aquí está su informaciónción de página
en el mercado LiveCode:
http://runrev.com/store/product/animation-engine-5/

[ 217 ]
Extending LiveCode

Aunque no es específicamente para uso móvil, animationEngine se ha ajustado


para cumplir con los requisitos iOS App Store, y así todavía debe ser de uso en la
fabricación de aplicaciones de iOS. También funciona para aplicaciones de Android.
Como se muestra en la Creación a través de los instaladores de aire para iOS en el
último capítulo, AirLaunch es un add-on que facilita la creación de más de-the-air
archivos de instalación para iOS. Una decola descripción se puede encontrar aquí:
http://www.hyperactivesw.com/airlaunch/ index.html

La creación de su propio add-ons


Los dos principales tipos de complementos que podrían estar interesadas en hacer son
controles personalizados y comandos externos y funciones (generalmente conocido como
externos).

Los controles personalizados


Los controles personalizados están hechos típicamente de un grupo que contiene muchos
controles estándar, y con una secuencia de comandos grupo que gestiona la apariencia y la
interacción de estos controles. Hay un tutorial en hacer un control personalizado a esta
página:
http://www.runrev.com/developers/lessons-and-tutorials/tutorials/
avanzado-custom-controls /

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

Capítulo 1, Fundamentos LiveCode


Pop Quiz - mejor nombre?
Respuesta: Henry. En los primeros días de multimedia que parecía que todo el mundo tenía
uno de sólo unos pocos nombres. Había Bill Atkinson, quien creó HyperCard, y Bill Appleton,
quien creó SuperCard. Kevin Calhoun fue el principal programador HyperCard por un
tiempo, y Kevin Miller es el jefe de RunRev. Bob Stein fue uno de los fundadores de The
Voyager Company, y junto con Bob Abel fue uno de los pioneros en multimedia. Dan era
otra buena opción, con la existencia de Dan Winkler, autor del lenguaje HyperTalk, y Danny
Goodman, autor de muchos libros de programación famosos. Henry sería un buen nombre
si quería hacer automóviles, o casarse con un montón de reinas.

Pop Quiz - Trato de recordar ...


Respuesta: En la sección Formato de texto de la paleta Inspector. Para llegar a esa sección
involucrada la selección de la herramienta de edición, haga clic en el campo de título, y eligiendo el
formato de texto de la paleta Inspector menú desplegable. Sin embargo, de hecho existe un menú de
texto. Realmente eso es lo que debería haber utilizado!
Pop Quiz Answers

Capítulo 2, Primeros pasos con Mobile LiveCode


Pop Quiz - cuando algo es demasiado?
Respuesta: El tamaño del archivo se va a ir a más de 50 MB. Las otras respuestas son
válidas también, aunque se puede reproducir la música como un sonido externo, para
reducir el tiempo de carga, pero al ir a más de 50 MB, a continuación, eliminaría el potencial
de ventas de personas que se conectan a través de redes celulares e inalámbricas no. En el
momento de escribir esto, todas las tiendas requieren que se puede conectar de forma
inalámbrica si desea descargar aplicaciones que son más de 50 MB.

Pop quiz - nombres sabrosos código


Respuesta: Pastel de queso del limón. El patrón, si no es obvio, es que el nombre de
código toma en la siguiente letra del alfabeto, es un tipo de comida, pero más
específicamente es un alimento postre. "Munchies" casi funciona, pero "Marshmallow" o
"Pie merengue" serían mejores opciones!

Pop quiz - nombres de código para iOS


Respuesta: Hunter Mountain. Aunque no es publicidad, Apple hace uso de nombres en clave para
cada versión de iOS. Ejemplos anteriores han incluido Big Bear, Apex, Kirkwood, y Telluride. Estos y
todos los demás aparentemente, son estaciones de esquí. Hunter Mountain es una montaña
relativamente pequeño (3.200 pies), por lo que si se acostumbra tal vez sería una actualización menor!

Capítulo 3, la creación de interfaces de usuario


Pop Quiz - conseguir el cuadro grande
Respuesta: 45 El Mac original tenía una pantalla que estaba 512x342 píxeles. Que se ajuste a
más de 45 veces en el área de una foto de 8 megapíxeles.

Pop quiz - el costo de las cosas en estos días


Respuesta: 6.000 veces mejor. Sí, por supuesto. Hace 25 años Apple estaba vendiendo un MB 4
add-on kit para el Macintosh II, por alrededor de $ 1500. Ahora vende un 8 GB add-on para el Mac Pro
por $ 500.

[ 220 ]
Pop Concurso Answers

Capítulo 4, Utilización remota de datos y medios de


comunicación
Pop quiz - nombre que la estructura
Respuesta: La ruta del mensaje. Para mayor información, RunRev tiene una lección en línea
que describe la ruta del mensaje:
http://lessons.runrev.com/s/lessons/m/4603/l/44036-the-livecode-
mensaje-path

Pop quiz - otros lugares especiales


Respuesta: Usuarios. Casa y Escritorio no son utilizadas por Android, y
Escritorio no es utilizada por iOS. 0x000e sonaba sospechosa, pero en realidad es el
specialFolderPath entrada para Mis videos, bajo Unix! Ninguno de los sistemas
tiene un Usuarios entrada.

Capítulo 5, Cómo hacer una aplicación Jigsaw Puzzle


Pop-Quiz - ¿cuántos bits en un byte?
Respuesta: 8. Aunque sólo sea por el interés de los matemáticos, es bueno saber que un
byte son 8 bits. Un "bit" es un "dígito binario", y cuando empiezas a pensar de bits en los
términos que usted verá que un byte puede almacenar 2 a la potencia de 8 valores en él
("binary" estar Base 2). Esto entra en juego cuando se mira en la longitud de una cadena
Pascal (2 a la potencia de 8 es 256, por lo tanto, el rango de caracteres en una cadena Pascal
es 0-255), y le ayuda a darse cuenta de que si una imagen está formada por de un byte para
cada píxel de color rojo, verde y azul, es una imagen de 24-bit. Una vez que se agrega en
otro byte de datos del canal alfa, que tiene una imagen de 32 bits.

Pop-Quiz - conseguir el cuadro grande


Respuesta: Depende de la naturaleza de la imagen. SVG es una descripción de cómo dibujar
la imagen, mientras que PNG es una descripción de los píxeles en la imagen. En PNG que la
información es también de datos comprimidos, en una forma sin pérdida. Para el mapa de
ejemplo, en su tamaño original, un PNG de 24-bit es la mitad del tamaño del archivo SVG.
Hay una gran cantidad de datos necesarios para describir los contornos de los estados de
EE.UU.! Si la imagen tiene que ser ampliada, el archivo PNG se hacen más grandes, mientras
que el SVG seguiría siendo el mismo tamaño de archivo. Por otro lado, si una imagen era un
rectángulo de un gradiente diagonal SVG sería pequeña, y el PNG sería enorme, porque no

[ 221 ]
hay tramos largos de mismos píxeles de colores para la compresión de datos para funcionar
bien.

[ 222 ]
Pop Quiz Answers

Pop-Quiz - calcular esto!


Respuesta: 16.777.216 botones. Al igual que con la discusión sobre "bits y bytes", los valores de
rojo, verde y azul se combinan para dar 2 a la potencia de 24 valores posibles. Si sólo se utilizan dos de los
colores, la respuesta habría sido 65.536.

Capítulo 6, Cómo hacer una aplicación Recordatorios


Pop-Quiz - AO (Siglas extraño!)
Respuesta: Para no molestar a los franceses, más o menos. Los franceses no hayan
objetado de manera proactiva, pero en realidad, la sigla de UTC se seleccionará de forma
que no coincida específicamente la versión en Inglés de la frase. También cayó muy bien
con las otras siglas de UT0, UT1, y así sucesivamente.

Pop-Quiz - ¿Qué piso es mi apartamento en?


Respuesta: piso 11. Los números de volver de la vuelta del sensor ubicación como latitud,
longitud y altitud. Eso haría que la elevación para el que el dispositivo estaba en ese
tiempo de aproximadamente 37,5 metros, demasiado bajos para ser el piso 40. No hay
suficiente información en la captura de pantalla para que usted sepa exactamente cuándo fue
tomada, y donde en la tierra!

[ 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

página web, banco de pruebas de


aplicaciones móviles
aplicación del navegador nativo, llamando
a 75

[ 229 ]
[ 230 ]
Guía para principiantes

Acerca de Packt Publishing


Packt, que se pronuncia 'lleno', publicó su primer libro "Mastering phpMyAdmin para una eficaz
gestión de privilegios" en abril de 2004 y, posteriormente, continuó especializan en la publicación de
libros muy centrados en tecnologías y soluciones específicas.
Nuestros libros y publicaciones de compartir las experiencias de sus compañeros de los profesionales
de TI en la adaptación y personalización de los sistemas de hoy en día, las aplicaciones y los marcos.
Nuestras soluciones basadas en libros que dan el conocimiento y el poder para personalizar el
software y las tecnologías que está utilizando para hacer el trabajo. Packt libros son más específicos y
menos generales que las TI libros que hemos visto en el pasado. Nuestro modelo de negocio único que
nos permite ofrecerte la información más específica, dándole más de lo que usted necesita saber, y
menos de lo que no.
Packt es una empresa moderna, la edición y único, que se centra en la producción de calidad y de
vanguardia libros para las comunidades de desarrolladores, administradores y novatos por igual. Para
obtener más información, por favor visite nuestro sitio web: www.PacktPub.com.

Escribir para Packt


Damos la bienvenida a todas las preguntas de la gente que está interesada en la edición. Propuestas de libros
deben ser enviados a author@packtpub.com. Si su idea del libro se encuentra todavía en una etapa
temprana y que le gustaría discutir
en primer lugar, antes de escribir una propuesta de libro formal, póngase en contacto con nosotros y
uno de nuestros editores puesta en servicio se pondrá en contacto con usted.
No estamos sólo en busca de autores publicados, si usted tiene fuertes habilidades técnicas, pero no
experiencia de escritura, nuestros editores experimentados pueden ayudarle a desarrollar una carrera
como escritor, o simplemente obtener alguna recompensa adicional por su experiencia.
Thank you for buying
LiveCode Mobile Development

Sencha Touch Recetario


ISBN: 978-1-849515-44-3Paperback: 350 páginas

Más de 100 recetas para crear HTML-5


basados en plataformas de aplicaciones
para dispositivos táctiles

1.Master multiplataforma de desarrollo de aplicaciones


2.Incorporate ubicación geográfica en sus
aplicaciones
3.Desarrollar nativos que buscan aplicaciones web

PhoneGap de aplicaciones móviles


Desarrollo libro de cocina
ISBN: 978-1-849518-58-1Paperback: 316 páginas

Más de 50 recetas para crear aplicaciones móviles que utilizan la


PhoneGap API con ejemplos e instrucciones claras

1.Use la PhoneGap API para crear aplicaciones nativas


móviles que funcionan en una amplia gama de
dispositivos móviles

2.Discover las características nativas de los dispositivos y


funciones que puede acceder e incluir dentro de
sus aplicaciones

3.Packed con ejemplos claros y concisos que le


muestre cómo construir fácilmente aplicaciones
móviles nativas

Por favor, compruebe www.PacktPub.com para obtener información sobre


nuestros títulos
Cocos2d para iPhone 1 Juego
Desarrollo libro de cocina
ISBN: 978-1-849514-00-2Paperback: 446 páginas

Más de 90 recetas para el desarrollo de iOS juego


2D utilizando cocos2d

1.Discover avanzado Cocos2d, OpenGL, y las


técnicas para iOS que abarcan todas las áreas
del proceso de desarrollo de juegos
2.Learn cómo crear desde arriba juegos isométricos,
juegos de plataformas de desplazamiento
lateral, y los juegos con la iluminación realista

3.Full de la diversión y las recetas atractivas con


las bibliotecas modulares que pueden ser
conectados a su proyecto

Corona SDK Juegos para móvil


Desarrollo: Guía para principiantes
ISBN: 978-1-849691-88-8Paperback: 408 páginas

Crea juegos monetizados para iOS y Android con


el mínimo coste y el código
1.Build una vez y desplegar sus juegos tanto para iOS y
Android
e

2.Crear juegos de éxito comercial mediante la


aplicación de diversas técnicas y herramientas de
monetización

3.Cree tres juegos de diversión e integración con


redes sociales como Twitter y Facebook

Por favor, compruebe www.PacktPub.com para obtener información sobre


nuestros títulos

También podría gustarte