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

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 just happened? Organizador en el menú Ventana y seleccione Dispositivos,
 7. En Xcode, seleccione
         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. 15
     b.
     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
Live code manual Español

Live code manual Español

  • 2.
    LiveCode Mobile Development Guíapara principiantes Crea divertidas, aplicaciones ricas para Android y iOS con LiveCode Colin Holgate BIRMINGHAM - MUMBAI
  • 3.
    Guía LiveCode MobileDevelopment 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)
  • 4.
    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
  • 5.
    Acerca del Autor ColinHolgate 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.
  • 6.
    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.
  • 7.
    www.PacktPub.com Los archivos desoporte, 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.
  • 8.
    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?
  • 10.
    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]
  • 11.
    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]
  • 12.
    Table of Contents Tíoter5: 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]
  • 13.
    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]
  • 14.
    Table of Contents PopConcurso 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]
  • 15.
    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.
  • 16.
    Preface Con su fácilde 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]
  • 17.
    Preface aplicaciones móviles seven mejor, o que se extiendan las capacidades móviles de LiveCode. [3]
  • 18.
    Preface Lo que necesitaspara 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]
  • 19.
    Preface Tener unhé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]
  • 20.
    Preface Lector de retroalimentación Loscomentarios 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]
  • 21.
    Preface Piratería La piratería dematerial 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]
  • 22.
    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 ...
  • 24.
    LiveCode Fundamentals Antecedentes historiay 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]
  • 25.
    Chapter 1 a continuaciónañ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]
  • 26.
    LiveCode Fundamentals Usted tieneLiveCode, ¿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 ]
  • 27.
    Chapter 1 La capturade 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 ]
  • 28.
    LiveCode Fundamentals La partesuperior 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 ]
  • 29.
    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 ]
  • 30.
    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 ]
  • 31.
    Chapter 1 Pila estructura Comose 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 ]
  • 32.
    LiveCode Fundamentals interfaz enun 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 ]
  • 33.
    Chapter 1 No hayninguna 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 ]
  • 34.
    LiveCode Fundamentals texto alinear el centro, que es el medio de los tres botones Alinear. [ 18 ]
  • 35.
    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 ]
  • 36.
    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 ]
  • 37.
    Chapter 1 Tal vezusted podría hacer una carpeta para guardar las pilas que usted hará durante la lectura de este libro. [ 21 ]
  • 38.
    LiveCode Fundamentals ¿Qué hapasado? 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 ]
  • 39.
    Chapter 1 Para lasteclas 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 ]
  • 40.
    LiveCode Fundamentals Tiempo parala 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 ]
  • 41.
    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 ]
  • 42.
    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 ]
  • 43.
    Chapter 1 o unpoco menos detallado sintaxis: el texto del miembro 1 = "hola mundo" [ 27 ]
  • 44.
    LiveCode Fundamentals o unpunto 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 mí 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 ]
  • 45.
    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 ]
  • 46.
    LiveCode Fundamentals Usted puedeoptar 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 ]
  • 47.
    Chapter 1 en mouseUpse 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 ]
  • 48.
    LiveCode Fundamentals Tipos devariables 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 ]
  • 49.
    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 ]
  • 50.
    LiveCode Fundamentals Todos losbotones 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 ]
  • 51.
    Chapter 1 Hay manerasmá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 ]
  • 52.
    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 ]
  • 53.
    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 ]
  • 54.
    LiveCode Fundamentals Otros controlesde 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 ]
  • 55.
    Chapter 1 Las imágenesque 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 ]
  • 56.
    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 ]
  • 57.
    Chapter 1 Entonces, cuandousted 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 ]
  • 58.
    LiveCode Fundamentals La mayoríade 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 ]
  • 59.
    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 ]
  • 60.
    LiveCode Fundamentals También hablamossobre 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 ]
  • 62.
    Introducción a LiveCodeMobile 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 ...
  • 64.
    Getting Started withLiveCode 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 ]
  • 65.
    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 ]
  • 66.
    Getting Started withLiveCode 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 ]
  • 67.
    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 ]
  • 68.
    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 ]
  • 69.
    Getting Started withLiveCode 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 ]
  • 70.
    Chapter 2 2.You seles 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 ]
  • 71.
    Getting Started withLiveCode 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 ]
  • 72.
    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 ]
  • 73.
    Getting Started withLiveCode 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 ]
  • 74.
    Chapter 2 Instalación delSDK 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 ]
  • 75.
    Getting Started withLiveCode Mobile restantes de la instalación de SDK, como lo haría con cualquier instalador de Windows. [ 47 ]
  • 76.
    Chapter 2 Una cosaimportante 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 ]
  • 77.
    Getting Started withLiveCode 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 ]
  • 78.
    Chapter 2 Box. Munchies d.Cheesecake de limón [ 50 ]
  • 79.
    Getting Started withLiveCode 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 ]
  • 80.
    Chapter 2 Cuando seregistra 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 ]
  • 81.
    Getting Started withLiveCode Mobile Usted puede optar por inscribirse como individuo o como empresa. Vamos a elegir Individual. [ 53 ]
  • 82.
    Chapter 2 Al igualque con cualquier tal proceso de registro, tendrá que introducir sus datos personales, establecer una pregunta de seguridad, y escriba su dirección postal. [ 54 ]
  • 83.
    Getting Started withLiveCode 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 ]
  • 84.
    Chapter 2 Podría serque 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 ]
  • 85.
    Getting Started withLiveCode 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 ]
  • 86.
    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 ]
  • 87.
    Getting Started withLiveCode 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 ]
  • 88.
    Chapter 2 Esta páginase 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 ]
  • 89.
    Getting Started withLiveCode 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 ]
  • 90.
    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 ]
  • 91.
    Getting Started withLiveCode 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 ]
  • 92.
    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 ]
  • 93.
    Getting Started withLiveCode 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 ]
  • 94.
    Chapter 2 Tiempo parala 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 ]
  • 95.
    Getting Started withLiveCode 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 ]
  • 96.
    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 ]
  • 97.
    Getting Started withLiveCode Mobile 9. Una vez más, usted debe ver el Kindle Fire en la lista. [ 69 ]
  • 98.
    Chapter 2 Sospecho quevas 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 ]
  • 99.
    Getting Started withLiveCode 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 ]
  • 100.
    Chapter 2 Tiempo parala 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 ]
  • 101.
    Getting Started withLiveCode Mobile 18. Usted debe ahora ver a su pila de prueba que se ejecuta en el emulador de Android! What just happened? [ 73 ]
  • 102.
    Chapter 2 Si todova 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 ]
  • 103.
    Getting Started withLiveCode Mobile What just happened? Organizador en el menú Ventana y seleccione Dispositivos, 7. En Xcode, seleccione 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 ]
  • 104.
    Chapter 2 Resumen La inscripciónpara 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 ]
  • 105.
    Getting Started withLiveCode 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
  • 106.
    Building User Interfaces Lacreació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 ]
  • 107.
    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 ]
  • 108.
    Building User Interfaces Invocandoel 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 ]
  • 109.
    Chapter 3 No esninguna 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 ]
  • 110.
    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 ]
  • 111.
    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 ]
  • 112.
    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 ]
  • 113.
    Chapter 3 Tratar laaplicació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 ]
  • 114.
    Building User Interfaces fecha Elsiguiente par de ejemplos vamos a tratar son los que sólo funcionan en los dispositivos móviles, no en las computadoras de escritorio. [ 78 ]
  • 115.
    Chapter 3 Tiempo deacció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 ]
  • 116.
    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 ]
  • 117.
    Chapter 3 7. Repita los pasos habituales para las pruebas en su dispositivo Android, o instalar en su dispositivo iOS. [ 81 ]
  • 118.
    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. 15 b. 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 ]
  • 119.
    Chapter 3 El usode 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 ]
  • 120.
    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 ]
  • 121.
    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 ]
  • 122.
    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 ]
  • 123.
    Chapter 3 ¿Qué hapasado? 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 ]
  • 124.
    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 ]
  • 125.
    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 ]
  • 126.
    Building User Interfaces 12. Haga clic en el control Button y seleccione 4 de la lista. [ 90 ]
  • 127.
    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 ]
  • 128.
    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 ]
  • 129.
    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 ]
  • 130.
    Building User Interfaces alrededorhasta que te gusta el diseño se ahorrará un montón de tiempo. [ 94 ]
  • 131.
    Chapter 3 Tiempo deacció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 ]
  • 132.
    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 ]
  • 133.
    Chapter 3 13. Pruebecon otra prueba, e ir a las tarjetas de correo electrónico y el explorador para verlos en acción. [ 97 ]
  • 134.
    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 ]
  • 135.
    Chapter 3 anchura yaltura. [ 99 ]
  • 136.
    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 ]
  • 137.
    Chapter 3 Layout usandoel 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 ]
  • 138.
    Building User Interfaces Elprimer 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 ]
  • 139.
    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 ]
  • 140.
    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 ]
  • 141.
    Chapter 3 ¿Qué hapasado? 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 ]
  • 142.
    Building User Interfaces Resumen Eltruco 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 ]
  • 144.
    Uso de datosremotos 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.
  • 146.
    Using Remote Dataand 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 ]
  • 147.
    Chapter 4 En elprimer 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 ]
  • 148.
    Using Remote Dataand 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 ]
  • 149.
    Chapter 4 Acard saveNavState go tarjeta final navTo [ 103 ]
  • 150.
    Using Remote Dataand 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 ]
  • 151.
    Chapter 4 En elmomento 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 ]
  • 152.
    Using Remote Dataand 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 ]
  • 153.
    Chapter 4 Los archivosdetextoqueseincluyenenunaaplicació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 ]
  • 154.
    Using Remote Dataand 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 ]
  • 155.
    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 ]
  • 156.
    Using Remote Dataand 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 ]
  • 157.
    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 ]
  • 158.
    Using Remote Dataand 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 ]
  • 159.
    Chapter 4 final Touchstart 9. Establezca el nombre de la barra de navegación a NavBar. [ 113 ]
  • 160.
    Using Remote Dataand 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 ]
  • 161.
    Chapter 4 La tarjetaBrowser 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 ]
  • 162.
    Using Remote Dataand 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 ]
  • 163.
    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 ]
  • 164.
    Using Remote Dataand 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 ]
  • 165.
    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 ]
  • 166.
    Using Remote Dataand 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 ]
  • 167.
    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 ]
  • 168.
    Using Remote Dataand Media cada línea. Pero nótese que la mayor parte de los enlaces de comenzar con /, y no http. [ 122 ]
  • 169.
    Chapter 4 12. Realizaruna 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 ]
  • 170.
    Using Remote Dataand 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 ]
  • 171.
    Chapter 4 prueba, yque los has copiado en el guión pila WebScraper. 1. Ir a la tarjeta de la pila Links WebScraper. [ 125 ]
  • 172.
    Using Remote Dataand 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 ]
  • 173.
    mediante el usode la línea: mobilePick gLinks, 0 Chapter 4 [ 127 ]
  • 174.
    Using Remote Dataand 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 ]
  • 175.
    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 ]
  • 176.
    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 ]
  • 177.
    Using Remote Dataand 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 ]
  • 178.
    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 ]
  • 179.
    Using Remote Dataand 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 ]
  • 180.
    Chapter 4 Ahora quetenemos 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 ]
  • 181.
    Using Remote Dataand Media seleccionado algo que llamamos un showMedia función del guión pila. 4. Edite el script de pila. [ 135 ]
  • 182.
    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 ]
  • 183.
    Using Remote Dataand 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 ]
  • 184.
    Chapter 4 Time forAction - 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 ]
  • 185.
    Using Remote Dataand 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 ]
  • 186.
    Chapter 4 11. Cambiela línea global de declaración de variables para incluir la gLastMedia variable. [ 140 ]
  • 187.
    Using Remote Dataand 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 ]
  • 188.
    Chapter 4 lista delas 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 ]
  • 189.
    Using Remote Dataand 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 ]
  • 190.
  • 191.
    Realización de unaaplicació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
  • 192.
    Making a JigsawPuzzle 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 ]
  • 193.
    Chapter 5 Además dela 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 ]
  • 194.
    Making a JigsawPuzzle 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 ]
  • 195.
    Chapter 5 Usaremos lamisma pila para ilustrar varias cosas, y al final podemos atrevernos a probar en un dispositivo móvil! [ 135 ]
  • 196.
    Making a JigsawPuzzle 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 ]
  • 197.
    Chapter 5 ¿Qué hapasado? 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 ]
  • 198.
    Making a JigsawPuzzle 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 ]
  • 199.
    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 ]
  • 200.
    Making a JigsawPuzzle 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 ]
  • 201.
    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 ]
  • 202.
    Making a JigsawPuzzle 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 ]
  • 203.
    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 ]
  • 205.
    Chapter 5 ¿Qué hapasado? 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 ]
  • 206.
    Making a JigsawPuzzle 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 ]
  • 207.
    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 ]
  • 208.
    Making a JigsawPuzzle 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 ]
  • 209.
    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 ]
  • 210.
    Making a JigsawPuzzle 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 ]
  • 211.
    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 ]
  • 212.
    Making a JigsawPuzzle 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 ]
  • 213.
    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 ]
  • 214.
    Making a JigsawPuzzle 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 ]
  • 215.
    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 ]
  • 216.
    Making a JigsawPuzzle 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 ]
  • 217.
    Chapter 5 11. Coloqueun 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 ]
  • 218.
    Making a JigsawPuzzle Application "biblioteca" fin mouseUp [ 154 ]
  • 219.
    Chapter 5 16. Editeel 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 ]
  • 220.
    Making a JigsawPuzzle 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 ]
  • 221.
    Chapter 5 ¿Qué hapasado? 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 ]
  • 222.
    Making a JigsawPuzzle 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 ]
  • 223.
    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 ]
  • 224.
    Making a JigsawPuzzle 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 ]
  • 225.
    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 ]
  • 226.
    Making a JigsawPuzzle 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 ]
  • 227.
    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 ]
  • 228.
    Making a JigsawPuzzle 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 ]
  • 229.
    Chapter 5 que nose 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 ]
  • 230.
    Making a JigsawPuzzle 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 ]
  • 231.
    Chapter 5 función dela distancia dx, dy sqrt retorno (dx * dx + dy * dy) final distancia [ 161 ]
  • 232.
    Making a JigsawPuzzle 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 ]
  • 233.
    Chapter 5 Resumen Existen muchasotras 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 ]
  • 234.
    Realización de unaaplicació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
  • 236.
    Making a ReminderApplication  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 ]
  • 237.
    Chapter 6 "Greenwich MeanTime", 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 ]
  • 238.
    Making a ReminderApplication 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 ]
  • 239.
    Chapter 6 12. Hagaclic 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 ]
  • 240.
    Making a ReminderApplication ¿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 ]
  • 241.
  • 242.
    Making a ReminderApplication 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 ]
  • 243.
    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 ]
  • 244.
    Making a ReminderApplication ¿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 ]
  • 245.
  • 246.
    Making a ReminderApplication 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 ]
  • 247.
    Chapter 6 cerca deNueva 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 ]
  • 248.
    Making a ReminderApplication 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 ]
  • 249.
    Chapter 6 Ubicación Oficina 40.745194 -73,985199 Recordator Packt Pida más tiempo! 1334548800 Casa falso io ReminderBossBuy lunch1334592000Office verdadero [ 173 ]
  • 250.
    Making a ReminderApplication 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 ]
  • 251.
    Chapter 6 descriptivo, perosería un nombre demasiado largo si usted está usando un iPhone. [ 175 ]
  • 253.
    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 ]
  • 254.
    Making a ReminderApplication 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 ]
  • 255.
    Chapter 6 18. Hagauna 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 ]
  • 256.
    Making a ReminderApplication ¿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 ]
  • 257.
    Chapter 6 desaparece cuandose presiona el botón. También atrapar el returnInField mensaje, y usar eso como una manera de poner realmente el control del teclado. [ 175 ]
  • 258.
    Making a ReminderApplication 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 ]
  • 259.
    Chapter 6 guión, perotenerlo en el Apilar nivel se mantiene cerca de otras funciones que se relacionan. Escriba en este momento. en showData mundial gReminderData [ 177 ]
  • 260.
    Making a ReminderApplication 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 ]
  • 261.
    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 ]
  • 262.
    Making a ReminderApplication 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 ]
  • 263.
    Chapter 6 Tiempo parala 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 ]
  • 264.
    Making a ReminderApplication función GetDistance Plat, submarinismo natación, pLocName si pLocName está vacía luego regresar 1000000 gReminderData mundial puesto vacío en TLAT [ 182 ]
  • 265.
    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 ]
  • 266.
    Making a ReminderApplication 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 ]
  • 267.
    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 ]
  • 268.
    Making a ReminderApplication 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 ]
  • 269.
    Chapter 6 "Latitud" yficha y campo "longitud" en tLocationDetails si gReminderData = "hay entradas" y luego poner en tLocationDetails gReminderData más [ 187 ]
  • 270.
    Making a ReminderApplication 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 ]
  • 271.
    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 ]
  • 272.
    Making a ReminderApplication 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 ]
  • 273.
    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 ]
  • 274.
    Making a ReminderApplication 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 ]
  • 275.
    Chapter 6 ¿Qué hapasado? ¡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 ]
  • 276.
    Making a ReminderApplication [ 194 ]
  • 277.
    Implementar en sudispositivo 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!
  • 278.
    Deploying to YourDevice 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 ]
  • 279.
    Chapter 7 Stacks La secciónde 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 ]
  • 280.
    Deploying to YourDevice 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 ]
  • 281.
    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 ]
  • 282.
    Deploying to YourDevice com.yourname.yourappname. [ 192 ]
  • 283.
    Chapter 7 En laimagen 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 ]
  • 284.
    Deploying to YourDevice 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 ]
  • 285.
    Chapter 7 Opciones deorientació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 ]
  • 286.
    Deploying to YourDevice de que el tipo de función de distancia podría funcionar. Aquí está la lista completa: [ 196 ]
  • 287.
    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 ]
  • 288.
    Deploying to YourDevice 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 ]
  • 289.
    Chapter 7 In-app notificacionescompras 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 ]
  • 290.
    Deploying to YourDevice 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 ]
  • 291.
    Chapter 7 Requisitos yrestricciones 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 ]
  • 292.
    Deploying to YourDevice 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 ]
  • 293.
    Chapter 7 instalación dela 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 ]
  • 294.
    Deploying to YourDevice 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 ]
  • 295.
    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 ]
  • 296.
    Deploying to YourDevice 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 ]
  • 297.
    Chapter 7 Después deseleccionar 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 ]
  • 298.
    Deploying to YourDevice 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 ]
  • 299.
    Chapter 7 lugar, queserá 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 ]
  • 300.
    Deploying to YourDevice 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 ]
  • 301.
    Chapter 7 Creación deun 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 ]
  • 302.
    Deploying to YourDevice 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 ]
  • 303.
    Chapter 7 Una vezque 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 ]
  • 304.
    Deploying to YourDevice 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 ]
  • 305.
    Chapter 7 Existe ciertasimilitud 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 ]
  • 306.
    Deploying to YourDevice entender todas las preguntas, y no te pierdas algo importante que te perseguirá más tarde. [ 216 ]
  • 307.
    Chapter 7 Resumen Yo nosé 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 ]
  • 308.
    Extender LiveCode La historiahasta 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.
  • 310.
    Extending LiveCode Durante elverano 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 ]
  • 311.
  • 312.
    Extending LiveCode La formaen 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 ]
  • 313.
    Appendix No es demasiadosorprendente 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 ]
  • 314.
    Extending LiveCode mergExt mergExt esun 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 ]
  • 315.
    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 ]
  • 316.
    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 ]
  • 317.
    Appendix En el momentode 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 ]
  • 318.
  • 319.
    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!
  • 320.
    Pop Quiz Answers Capítulo2, 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 ]
  • 321.
    Pop Concurso Answers Capítulo4, 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 ]
  • 322.
    hay tramos largosde mismos píxeles de colores para la compresión de datos para funcionar bien. [ 222 ]
  • 324.
    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 ]
  • 325.
    Í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 ]
  • 326.
    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 ]
  • 327.
    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
  • 328.
    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 ]
  • 329.
    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 ]
  • 330.
    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 ]
  • 331.
    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 ]
  • 332.
    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 ]
  • 333.
    utilizado, para lapreparació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 ]
  • 334.
    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 ]
  • 335.
    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 ]
  • 336.
  • 337.
    Guía para principiantes Acercade 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.
  • 338.
    Thank you forbuying 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
  • 339.
    Cocos2d para iPhone1 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