Colin Holgate
BIRMINGHAM - MUMBAI
Todos los derechos reservados. Ninguna parte de este libro puede ser reproducida, almacenada en un sistema de recuperacin, 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 artculos crticos o revisiones. Cada esfuerzo se ha hecho en la preparacin de este libro para asegurar la exactitud de la informacin presentada. Sin embargo, la informacin contenida en este libro se vende sin garanta, ya sea expresa o implcita. Ni el autor, ni Packt Publishing y sus concesionarios y distribuidores sern responsables por cualquier dao causado o presuntamente causado directa o indirectamente por este libro. Packt Publishing ha tratado de proporcionar informacin sobre todas las marcas de las compaas y productos mencionados en este libro por el uso adecuado de los capitales. Sin embargo, Packt Publishing no puede garantizar la exactitud de esta informacin.
Publicado por Packt Publishing Ltd. Place Livery 35 Livery Street Birmingham B3 2PB, Reino Unido. ISBN 978-1-84969-248-9
www.packtpub.com
Crdito s
Autor Colin Holgate Revisores Bjrnke von Gierke Andreas Rozek Los indizadores Adquisicin Editor Mara Jazmn Nadar Lead Editor Tcnico Susmita Panda Editores Tcnicos Rati Pillai Lubna Shaikh Hemanjini Bari Tejal Daruwale Coordinador de Produccin Arvindkumar Gupta Cubrir las obras Arvindkumar Gupta Coordinador del Proyecto Leena Purkait Corrector de pruebas Stephen Seda
investigacin de la UE en materia de telecomunicaciones y multimedia mvil). Pero, como su esperanza (es decir, que "Las computadoras debe ser divertido y apoyar a las personas en lugar de molestar o incluso impedir") todava tiene que convertirse en la realidad comn, esencialmente de bsqueda - da tras da - 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 programacin que puede ser fcilmente utilizado por los programadores "casuales", y un entorno de desarrollo que ayuda en la construccin de interfaces de usuario visualmente atractivas para una amplia variedad de dispositivos de destino. Por esa razn, Andreas se alegra de haber tenido la oportunidad de revisar este maravilloso libro que le ayudar a convertir sus ideas en aplicaciones mviles reales.
www.PacktPub.com
Los archivos de soporte, libros electrnicos, ofertas de descuento y mucho ms
Es posible que desee visitar www.PacktPub.com para los archivos de soporte tcnico y descargas relacionadas con tu libro. Saba usted que Packt ofrece versiones de libros electrnicos de todos los libros publicados, con archivos PDF y ePub disponibles? Puede actualizar a la versin de libro electrnico en www.PacktPub.com y como cliente Libro, usted tiene derecho a un descuento en la copia de libros electrnicos. Pngase en contacto con nosotros en service@packtpub.com para ms detalles. En www.PacktPub.com, Tambin se puede leer una coleccin de artculos libres de tcnicos, regstrate para abrir una serie de boletines gratuitos y recibe descuentos y ofertas exclusivas en los libros Packt y libros electrnicos.
http://PacktLib.PacktPub.com
Necesita soluciones inmediatas a todas sus preguntas? PacktLib est en lnea 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 bsquedas a travs de cada libro publicado por Packt Copiar y pegar, imprimir y marcar contenido A peticin y accesible a travs del navegador web
Tabla de contenidos
PreFas Toter 1: LivEcode fundatals
Antecedentes historia y metaphors8 Usted tiene LiveCode, no? 9 Aprender la disposicin de la land9
1 7
Principal windows10 Tiempo de accin - es un lastre, pero te va a gustar 11! Creacin de un hierarchy13 Pila structure14 Dnde cdigo goes14 Tiempo para la accin - de decisiones y la navegacin entre cards15 Realizacin de una aplicacin sencilla calculadora Inspector de pistas, oh ... 18 Tiempo de accin - hacer de la calculadora buttons19 Verbosidad, sinnimos, y "yo" 20 Adicin de la tarjeta handlers22 Tipos de variables en LiveCode24 Ampliacin de la calculator27 Otra interfaz controls28 Reproductor de vdeo control28 Imagen fija control28 Rollover buttons28 Controles muchos ms ... 30 Debugging30 Tutorials32 lnea de RunRev Summary32
18
35
Table of Contents
Convertirse en un Android developer36 Android Market36 Amazon Appstore40 Descarga del SDK44 Android
LiveCode Sealando el SDK47 Android Convertirse en un developer49 iOS Instalacin Xcode57 LiveCode Sealando el SDKs59 iOS Antes de que podamos hacer nuestro primer mvil app60 Cmo prepararse para la prueba de Android60 Tiempo de accin - a partir de un Android virtuales device60 Conexin de un fsico device61 Android Tiempo para la accin - la adicin de un fuego Kindle a ADB62 Cmo prepararse para la prueba de iOS64 Tiempo de accin - con el iOS simulator64 Appiness por fin! 64 Tiempo para la accin - probando una simple pila en la simulators65 Tiempo para la accin - probando una simple pila de devices66 Adems reading67 Summary68
El uso de un Fire61 Kindle
Instalacin del SDK de Android en Mac OS X (Intel) 45 Instalacin del SDK de Android en Windows46
La creacin de un banco de pruebas mvil app70 Tiempo para la accin - lo que el banco de pruebas stack70 Invocando el escritorio aplicacin de correo electrnico Tiempo de accin - pidiendo que el nativo de aplicacin de correo electrnico Instalacin del correo electrnico de prueba a devices72 Tiempo de accin - stack tratando de banco de pruebas en devices73 Abrir una web page75 Tiempo de accin - pidiendo la aplicacin del navegador nativo Mobile-solamente, fecha picker76 Tiempo de accin - que muestra una fecha picker77 Mvil de slo carga pictures77 Tiempo de accin - Carga pictures78 Haciendo OS estilo buttons79 Usando bitmaps80 Tiempo para la accin - el uso de Photoshop para preparar botn states80 MobGUI al rescate! 83 Tiempo de accin - Conceptos bsicos del MobGUI84
[ 2]
69
72 72
75
Table of Contents
Test app cama, el way86 MobGUI Tiempo de accin - con MobGUI para hacer un banco de pruebas app86 MobGUI nativo controls88 Tiempo de accin - con controles nativos de MobGUI89 Ajuste de las cosas por pantalla diferente sizes91 Diseo con un cambio de tamao handler91 Tiempo para la accin - diseo simple cdigo example92 Layout usando la Geometra LiveCode Manager93 Tiempo para la accin - con el Administrador de Geometra para posicionar buttons94 Layout usando MobGUI95 Tiempo de accin - con MobGUI recordar diseos para US95 Adems reading96 Summary97
Pila structure100 Cdigo impulsado y creado manualmente layouts100 Lugares para code101 Cargar y guardar data103 externos Consultar un URL103 Leer y escribir en un archivo de texto Usando otra pila para almacenar data107 Tiempo de accin - la creacin de una base de datos guardar stack107 Creacin de una web "scraper" app110 Tiempo de accin - la creacin de navegacin por pestaas El navegador card112 Tiempo de accin - la adicin del navegador controls113 El card114 Links Tiempo para la accin - hacer una funcin de extraccin de enlaces
Las personas desaparecidas links118 Una cosa ms ... 118
99
105
110
115
Tiempo de accin - la adicin de la tarjeta de Enlaces "init" handler118 El texto card120 Tiempo de accin - la creacin de la card120 Texto El card121 Medios Tiempo para la accin - la extraccin de una lista de medios links121 Tiempo de accin - la creacin de la tarjeta de los medios de comunicacin scripts123 Los encargados card125 Time for Action - la creacin de los Guardianes card126 Y ahora qu? 129 Summary129
[ 3]
Table of Contents
Datos Formato de la imagen Misterio byte ... El mal uso imageData del! Tiempo para la accin - probando una funcin getPixel Simulacin de un montn y un montn de botones Tiempo de accin - hacer un mapa de los Estados Unidos Uso de maskData para la deteccin de colisiones Tiempo de accin - haciendo un hipdromo Tiempo para la accin - lo que un coche de carreras Cmo hacer un rompecabezas Ir a pedazos ... 146 Tiempo de accin - la creacin de las piezas y la eleccin de un image146 Tiempo de accin - la transferencia de imageData151
Adicin de interactividad
131
132 133 134 134 136 136 139 139 141 146
154
159
Fecha y hora pickers161 Tiempo de accin - la creacin de fecha y hora pickers161 Dnde? 164 Tiempo para la accin - probando ubicacin nativo tracking165 Clculo de la distancia entre dos puntos en Earth167 Qu? 169 Hacer que los recordatorios app170 Disear el cards170 Tiempo de accin - crear el recordatorio aplicacin screens170 Pila nivel scripts174 Tiempo para la accin - la adicin de funciones de nivel de pila Home tarjeta scripts177 Tiempo para la accin - lo que los botones de la tarjeta Inicio work178 Crear una ubicacin card180 Tiempo de accin - hacer de la ubicacin de la tarjeta work181 Recordatorio entrada form182 Tiempo de accin - teniendo en informacin sobre el reminder182 Summary185
174
187
188
Table of Contents
iOS189
Configuracin bsica de aplicacin Opciones de orientacin Requisitos y restricciones
Android196
Estado Bar195
Aplicacin Permissions198
Creacin de aplicaciones para Beta Testers199 Envo de una aplicacin Android para testers199 Preparacin de una aplicacin iOS para que pueda trabajar en algn otro device200 La creacin de "Over The Air" instaladores para iOS202
AirLaunch202 BetaBuilder203 TestFlightApp.com204
Creacin de una tienda de aplicaciones de archivo de envo Encontrar y utilizar la aplicacin para Android Keytool Creacin de un certificado de distribucin para iOS206 Subida a la aplicacin stores208 Qu es similar209 Qu es different209 Line209 Bottom Summary210
204 204
211
tmControl213 DropTools Palette214 mergExt215 La creacin de su propio complemento ons216 Custom controls216 Externals216
[5]
Table of Contents
Captulo 1, LiveCode Fundamentals219 Captulo 2, Primeros pasos con LiveCode Mobile220 Captulo 3, Edificio del usuario Interfaces220 Captulo 4, Uso de datos remotos y Media221 Captulo 5, Cmo hacer una aplicacin Jigsaw Puzzle Captulo 6, Cmo hacer una aplicacin Recordatorios
219
221 222
Index
223
[6]
Table of Contents
Prefacio
Todo el mundo te conoce tiene un dispositivo mvil inteligente de algn tipo. Usted probablemente posee varios! La idea general de tener aplicaciones de utilidad en un telfono no es nueva, e incluso telfonos celulares y juegos de PDA han existido durante aos, pero la forma en que el iPhone utiliza tctil en lugar de un lpiz o el teclado y gestos para reducir el nmero 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 tena 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 ms exitosa de estas herramientas son Adobe Director, Adobe Flash, Unity, y LiveCode. La publicacin en iOS se est trabajando para el director, lo que significa que las cuatro herramientas tambin son adecuados para el desarrollo para mviles. 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 sera la mejor opcin, con el director y luego Flash como otras opciones. Si usted necesita una gran cantidad de animaciones de los personajes, Flash sera la mejor opcin, con el director ser una buena alternativa. Si lo importante es la forma en que la herramienta es accesible, entonces LiveCode gana fcilmente. Es tambin tan vlida una opcin para hacer la mayora de las aplicaciones que usted podra desear. De hecho, para aplicaciones que son un conjunto de pantallas individuales, como sera el caso para la mayora de aplicaciones de utilidad, as como para el tablero y los juegos de puzzle, LiveCode se adapta mejor que las otras herramientas. Tambin tiene un mejor acceso a elementos de la interfaz nativa, con el resto de herramientas que normalmente tienes que crear grficos 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 fcil de usar Ingls-como lenguaje de programacin, y la "pila de tarjetas de" la metfora, LiveCode le permite concentrarse ms en la creacin de la aplicacin que desea hacer, y menos en los aspectos tcnicos del entorno de desarrollo.
Captulo 1, Fundamentos LiveCode, le dar a conocer el entorno LiveCode, y su lenguaje de programacin similar al Ingls. Los usuarios experimentados LiveCode puede saltarse este captulo, pero para alguien nuevo en LiveCode este captulo le llevar a travs de la creacin de una aplicacin de calculadora simple como una manera de hacer que usted familiarizado con las distintas herramientas y la jerarqua de LiveCode. Captulo 2, Introduccin a LiveCode Mobile, describe en detalle cmo configurar tu ordenador Mac o Windows para que est listo para desarrollar y publicar aplicaciones mviles. Este captulo le llevar hasta el final de registrarse como un desarrollador de iOS y Android, para crear y probar su aplicacin mvil LiveCode primero. Captulo 3, La construccin de interfaces de usuario, se muestra cmo utilizar algunas de las caractersticas estndar de telefona mvil, tales como selectores de fecha, lbum de fotos y cmara. En este captulo tambin mostrar cmo hacer sus propios botones con iOS mirar a ellos, y cmo utilizar el LiveCode add-on, MobGUI, para hacer su vida ms fcil! Captulo 4, Uso de datos remotos y medios de comunicacin, se analiza la estructura de las aplicaciones, dnde colocar el cdigo, y cmo leer y escribir en archivos de texto externos. Tambin crear una aplicacin mvil que es un "web-scraper", capaz de extraer enlaces y los medios de comunicacin desde una pgina web, y mostrar o reproducir el contenido de esa pgina. Captulo 5, Realizacin de una aplicacin Puzzle Jigsaw, le mostrar cmo procesar datos de imagen, y utilizar la informacin para crear un selector de color, detectar las regiones, y para hacer un mapa de la colisin. A continuacin, crear una aplicacin de rompecabezas completo que lleva su imagen desde el lbum de fotos o cmara del dispositivo. Captulo 6, Realizacin de una aplicacin Recordatorios, examina qu tipo de informacin se necesita para representar un "recordatorio", y cmo configurar los eventos de notificacin para que sean alertadas en una fecha y hora especificadas. Va a hacer una aplicacin de recordatorios que puede crear una lista de este tipo de eventos, e incluso una lista de los eventos en funcin de su ubicacin actual. Captulo 7, Implementacin en tu equipo, es un captulo de referencia que describe todos los ajustes de publicacin mviles. El captulo tambin muestra cmo enviar aplicaciones a los probadores beta, y cmo empezar con la presentacin de su aplicacin final a las tiendas de aplicaciones diversas. Apndice A, Extender LiveCode, describe los complementos para LiveCode que har que sus
[2]
aplicaciones mviles se ven mejor, o que se extiendan las capacidades mviles de LiveCode.
Preface
[3]
Preface
Adems del propio LiveCode, se necesitara un Mac o un PC, iOS y / o dispositivos Android, y una cantidad de dinero si se siguen las partes sobre cmo registrarse como desarrollador mvil! Para el desarrollo de iOS tendr acceso a un Mac basado en Intel para algunos de los pasos. El cdigo de ejemplo requiere LiveCode versin 5.5 o posterior.
El lector ideal para este libro sera alguien que ya sabe LiveCode, est interesado en la creacin de aplicaciones mviles, y quiere salvar a las muchas horas que tomara para localizar toda la informacin sobre la manera de empezar! Captulo 1, Fundamentos LiveCode, ayudar a los lectores que saben de programacin, pero no estn familiarizados con LiveCode suficiente para que puedan beneficiarse del resto del libro.
Convenios
En este libro, usted encontrar varios epgrafes que aparecen con frecuencia. Dar instrucciones claras de cmo llevar a cabo un procedimiento o tarea, usamos:
Instrucciones a menudo necesitan una explicacin adicional para que tengan sentido, por lo que se siguen con:
Qu ha pasado?
En este epgrafe se explica el funcionamiento de las tareas o instrucciones que acaban de terminar. Usted tambin encontrar algunas otras ayudas de aprendizaje en el libro, incluyendo:
Preface
en clearPressed poner en verdadero newNumber poner 0 en el campo "display" poner 0 en currentTotal poner 0 en CurrentValue puesto vaco en el extremo currentCommand clearPressed
Los nuevos trminos y las palabras importantes se muestran en negrita. Las palabras que usted ve en la pantalla, los mens y cuadros de dilogo, por ejemplo, aparecen en el texto de esta manera: "Toma nota de los elementos en el lado derecho, las Muestras de usuario, tutoriales, recursos, y un diccionario.".
[5]
Preface
Lector de retroalimentacin
Los comentarios de nuestros lectores siempre es bienvenida. Hganos saber lo que piensas acerca de este libro, lo que le gust o no le gustaba puede haber. Lector de retroalimentacin es importante para nosotros desarrollar ttulos que realmente sacar el mximo provecho de. Para enviarnos sus consultas generales, slo tiene que enviar un e-mail a feedback@packtpub.com, y mencionar el ttulo del libro a travs 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 gua de autor en www.packtpub.com /
autores.
Atencin al cliente
Ahora que usted es el orgulloso propietario de un libro de Packt, tenemos una serie de cosas que le ayudarn a sacar el mximo partido a su compra.
Fe de erratas
Aunque hemos tomado todas las precauciones para asegurar la exactitud de nuestro contenido, los errores ocurren. Si usted encuentra un error en uno de nuestros libros, tal vez un error en el texto o el cdigo estaramos agradecidos si usted desea informar de esto a nosotros. De esta manera, usted puede ahorrar otros lectores de la frustracin 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 seleccin de su libro, al hacer clic en el enlace de envo de formularios fe de erratas, y entrar en los detalles de sus erratas. Una vez que sus erratas se verifican, su presentacin ser aceptada y la fe de erratas se subirn a nuestro sitio web, o aadir a una lista de erratas existentes, en la seccin de erratas de ese ttulo.
[6]
Preface
Piratera
La piratera de material con copyright en Internet es un problema constante en todos los medios. En Packt, tomamos la proteccin 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 indquenos la direccin de ubicacin o el nombre del sitio web inmediatamente para que podamos presentar un recurso. Por favor, pngase en contacto con nosotros en copyright@packtpub.com con un enlace al material sospechoso pirata. Le agradecemos su ayuda en la proteccin 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 algn aspecto del libro, y haremos nuestro mejor esfuerzo para resolver el problema.
[7]
Fundamentos LiveCode
Es este captulo para usted? LiveCode tiene un lenguaje de programacin similar al Ingls, un entorno de desarrollo grfico, y una metfora fcil de entender estructural. Cuando se crea una aplicacin, pasar ms tiempo pensando en cmo poner en prctica las diferentes caractersticas, y menos acerca de las complejidades de la herramienta que est utilizando. Pero si usted nunca ha usado antes LiveCode, todava va a ser desconocido al principio. Este captulo le llevar hasta la velocidad, listo para los ltimos captulos que requerirn que usted est ms familiarizado con la terminologa y las caractersticas de la herramienta.
LiveCode es fcil, pero hay miles de cosas fciles de aprender! A lo largo del libro vamos a ver la ltima de las cosas fciles, sobre todo los relacionados con las aplicaciones mviles, pero primero debemos repasar algunos de los conceptos bsicos. En este captulo, deber:
Familiarizarse con el entorno LiveCode Investigar la jerarqua de un LiveCode "pila" Crear una aplicacin de calculadora simple Ms informacin sobre los controles de la interfaz diversos
LiveCode Fundamentals
Chapter 1
Adems, puede escribir lo externo, que son comandos y funciones escritas en C idioma, lo que puede ampliar las capacidades de LiveCode an ms.
[9]
LiveCode Fundamentals
basada en el precio en el momento de la escritura, para crear aplicaciones mviles que son libres, que sera de $ 99, o si desea hacer que las aplicaciones que podra cobrar, que sera de $ 499. Cada plataforma adicional que usted desea publicar seran otros $ 99. Una vez que haya descargado la versin de prueba, o comprar una de las licencias, por qu no seguir adelante y lanzar l!
[ 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
Adems de la ventana del documento en s, estas son las ventanas principales que tendremos que estar familiarizado con por ahora:
LiveCode Fundamentals
La parte superior de la paleta de herramientas muestra todos los controles de la interfaz que usted tendr que crear una aplicacin interactiva. Debajo de ellos son un conjunto de herramientas para la edicin de grficos vectoriales, y un conjunto de herramientas para la edicin de grficos 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 informacin acerca de la propia pila. El cuadro de mensaje es una ventana que le permite probar ya sea una o varias lneas de cdigo. 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 captulos posteriores. Como se sugiri anteriormente, usted debe leer la Gua del Usuario para obtener una comprensin ms profunda de estas ventanas, pero vamos a tratar de armar algo simple, por ahora, para conseguir que ms familiarizados con el uso de la paleta de herramientas.
1. 2.
En el men Archivo, seleccione Nuevo Mainstack. En la paleta de herramientas, haga clic en la herramienta de edicin (la parte superior
3. 4.
Arrastre los iconos de la parte superior de la paleta de herramientas a la ventana de pila. Pruebe las opciones de capas en la parte inferior del men Objeto.
[ 12 ]
Chapter 1
5.
Seleccionar ms de un elemento, y experimentar con las opciones de alineacin de los objetos en la paleta Inspector. La alinear opciones se muestran de forma automtica cuando se selecciona varios objetos, pero tambin puede seleccionar Alinear objetos en el men desplegable de la paleta Inspector. Usted no ver esta opcin si slo hay un objeto seleccionado. Aqu vemos las opciones, porque tres botones estn seleccionados:
6.
Seleccione un solo botn, y en la paleta Inspector introduzca un nombre y una etiqueta. Si no ve el nombre y los campos de la etiqueta, asegrese de que ha seleccionado las propiedades bsicas de men desplegable la paleta Inspector.
[ 13 ]
LiveCode Fundamentals
7.
Agregar varios controles ms a la ventana de la tarjeta, y practicar la alineacin y el nombramiento de los controles. Tambin puede cambiar el tamao arrastrando las asas que se ve en las esquinas y los laterales, mientras que el control est seleccionado. As es como se podra mirar si haba aadido algunos botones, un campo, un panel de pestaas, y un control de reproductor de video:
Qu ha pasado?
Esperamos que pueda haber hecho un montn de controles de interfaz aleatorio, tal vez algunos que estn muy bien alineados tambin! Ahora eliminar a todos ellos, y preprate para hacer que la interfaz simple calculadora. Pero primero debemos repasar algo de la estructura y la jerarqua de una pila LiveCode, y tambin crear algo de navegacin bsica.
[ 14 ]
Chapter 1
Pila estructura
Como se describe en la seccin Antecedentes y metforas de este captulo, LiveCode utiliza una pila de tarjetas de metfora. Cuando usted hace una pila nueva que, en efecto, tiene una tarjeta de un solo pila de tarjetas. Sin embargo, incluso la aplicacin ms sencilla es probable que tenga ms de una tarjeta. Por ejemplo, podra haber una pantalla de bienvenida, una tarjeta de ttulo, las tarjetas de la tarea real en la mano, y una pgina de crditos. En la pantalla de la calculadora vamos a utilizar dos tarjetas. El men Herramientas incluye una opcin para ver la estructura de la pila, al mostrar el navegador de aplicacin:
Dnde va el cdigo
En lenguajes de programacin como la de LiveCode, el cdigo se refiere como est, mientras que los mtodos o funciones se conocen como controladores (aunque en LiveCode un controlador que devuelve un valor tambin se llama una funcin). Proyectos hechos con ms difciles de utilizar herramientas de programacin a menudo consisten en decenas de archivos de texto, uno para cada modelo, vista o controlador. En este LiveCode es ms simple que los guiones se adjuntan al objeto que necesita ese cdigo. Para hacer frente a la interaccin del usuario en otras herramientas que usted tendr que escribir el cdigo que recibe el evento (tal vez slo un clic del ratn sobre un botn) y, a continuacin, realizar la accin correspondiente. En LiveCode hay una ruta del mensaje que se ocupa de estos eventos y los pasa a la jerarqua. Si hace clic en un control de interfaz LiveCode que no tiene un controlador de eventos del ratn, haga clic en el sube por la jerarqua hasta el nivel de la tarjeta. Si la tarjeta no tiene un controlador para ese evento, que contina hasta el nivel de la pila. Usted puede tener otros niveles de jerarqua, al poner otras pilas en uso, pero para nuestros propsitos slo tenemos el botn, tarjeta, y las jerarquas de la pila. Esta jerarqua mensaje nos permite colocar el cdigo necesario por varios controles de
[ 15 ]
LiveCode Fundamentals
interfaz en un nivel superior, a disposicin de todos los controles. Uno de estos casos ser con los botones numricos de la calculadora, y cada uno tiene que hacer exactamente lo mismo, y al poner ese cdigo 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 tamao del archivo, pero como se est desarrollando el cdigo de la calculadora, puede realizar cambios en el guin sola tarjeta, en lugar de 11 calculadora individuo guiones botn. Ahora vamos a empezar a construir la calculadora, y agregar secuencias de comandos para los 14 botones, un campo, y la tarjeta.
Descargar el cdigo de ejemplo Puede descargar los archivos de cdigo 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 electrnico directamente a usted.
1. 2. 3.
Seleccionar tarjeta nueva en el men Objeto. Utilice el men Ver para ir ya sea a la tarjeta anterior (Ir Anterior), o primera tarjeta (Vaya primero). Asegrese de que dispone de la herramienta de edicin seleccionado en la paleta de herramientas y arrastre un campo Etiqueta para el centro de la ventana de la tarjeta. En este caso es fcil ver cul 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. En la seccin Propiedades de base de la paleta Inspector, desactive la casilla No envuelva casilla de verificacin. Tipo ttulo en el campo de entrada Nombre. Elegir contenido del Inspector men desplegable, y reemplace el texto inicial que dice Label: escribiendo Simple Calculator en el campo de entrada de contenido. Elija el formato de texto en el men desplegable, y haga clic en el botn de
[ 17 ]
4. 5. 6. 7.
LiveCode Fundamentals
[ 18 ]
Chapter 1
8.
Cambiar la fuente, el tamao y las opciones de estilo, para hacer un ttulo bonito, cambiar el tamao del propio campo hasta que te gusta como se ve:
9.
Arrastre un botn de insercin (el segundo icono de la parte superior izquierda de la paleta de Herramientas) desde la paleta de herramientas y colquelo debajo del campo de ttulo.
men que dice Formato de texto en la captura de pantalla anterior), el tipo de Comenzar en el campo de entrada Nombre. LiveCode mostrar automticamente el mismo texto como etiqueta del botn, aunque no lo escriba en la casilla de Etiqueta.
11. Usted puede entrar en las opciones de formato de texto para los botones tambin, si lo desea! 12. Prepararse mentalmente - estamos a punto de escribir nuestro primer script! 13. Con el botn seleccionado, elija Objeto de secuencias de comandos en el men
Objeto. Tambin puede hacer clic en el mismo botn y seleccione Editar guin.
[ 19 ]
LiveCode Fundamentals
ahora en la lnea en
herramienta, que se parece a una flecha de cursor regular), y haga clic en el botn Comenzar que usted acaba de hacer. Todo est bien ahora ests mirando una tarjeta en blanco. No se preocupe, usted no acaba de borrar el campo de ttulo y un botn! 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 botn.
Calculadora Simple, en algn lugar se puede encontrar fcilmente ms tarde.
[ 20 ]
18. Ahorre! En el men Archivo, seleccione Guardar y guarde la pila, con el nombre
Tal vez usted podra hacer una carpeta para guardar las pilas que usted har durante la lectura de este libro.
Chapter 1
[ 21 ]
LiveCode Fundamentals
Qu ha pasado?
Eso puede parecer como un montn de pasos, pero s crear las dos cartas que necesitamos, presentado un bonito campo en busca del ttulo, y ha creado un botn Comenzar con su propio guin. En realidad, esos pasos tomar menos de dos minutos, y mucho menos a medida que adquiera experiencia en LiveCode.
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 confusin. Hablando de las teclas de la calculadora ...
[ 23 ]
LiveCode Fundamentals
1. 2. 3.
Si no est ya ah, dirjase a la segunda tarjeta (la actualmente vaca). Asegrese de que el botn Editar est seleccionada en la paleta de herramientas y arrastre un botn de comando a la tarjeta, en la posicin del botn con la etiqueta 7.
En las propiedades bsicas de la paleta Inspector, para cambiar el estilo del men desplegable a Rectngulo redondeado (en la vida real que se tomara el tiempo para tener buen grfico botones, aqu se acaba mi juego feo "arte programador!").
4. 5. 6. 7. 8. 9.
Establezca el nombre del botn para number7, y la etiqueta 7. Seleccione Guin objeto en el men de objetos para ver la secuencia de comandos de arranque como lo hizo con el botn Begin. En la lnea en blanco entre en mouseUp y mouseUp final, tipo
numberPressed la etiqueta de m.
Cierre y guarde el script. Seleccione el botn y hacer una copia de la misma, por la eleccin de objetos duplicados en el men Editar, y la posicin que el botn con la etiqueta 8 ser. Copiar / Pegar alt y arrastrar otras dos formas para duplicar un objeto. Establezca el nombre de Number8, y la etiqueta 8. usando el nmero 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 botn
dividir, y el tipo /por su etiqueta.
para como
13. Duplicar el botn divisin tres veces ms, y establecer los nombres de se
multiplican,
[ 24 ]
Chapter 1
igual a para el botn y establezca la etiqueta =, y el cambio de la lnea media de la secuencia de comandos para decir equalsPressed
[ 25 ]
LiveCode Fundamentals
igual a botn y establecer el nombre del nuevo botn para toggleSign y la etiqueta al + -, a continuacin, cambie la lnea media de la secuencia de comandos para toggleSign. igual a botn, defina el nombre del nuevo botn para claro y la etiqueta al C, a continuacin, cambie la lnea media de la secuencia de comandos para ser clearPressed.
elegir el formato de texto en el men desplegable. En la configuracin de formato de texto elija una fuente bonita, texto justificado a la derecha, y un tamao de fuente grande. Nombre del campo mostrar.
18.
Edite el guin 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 lneas mouseUp ti mismo. Escriba las siguientes tres lneas:
en mouseUp
establecer el clipboardData ["texto"] a m mouseUp final
19. Mueva todos los botones en sus lugares correctos y seleccionar conjuntos de 20. Ahorre!
botones de usar que las herramientas Alinear para hacer su presentacin coincide con la calculadora de pantalla.
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 estn "llamando" a un manejador de nivel de tarjeta que se va a establecer el prximo. Antes de hacer eso, vale la pena tratar de entender algunas de las lneas que acabamos de ingresar.
Chapter 1
[ 27 ]
LiveCode Fundamentals
o un punto sintaxis:
miembro mundo" (1). text = "hola
En LiveCode no hay esa eleccin - lo que escribe tiene que ser en forma de:
poner valor contenedor en un
Usted tiene la posibilidad de elegir si utiliza una versin larga de una palabra, una versin corta, o una forma abreviada. Tambin hay sinnimos, que le permiten utilizar una palabra que tiene ms sentido para usted. Aqu hay dos maneras de decir la misma cosa, con la segunda variacin 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 mecanografa, y LiveCode tambin tratar de averiguar lo que usted tiene en mente, si es posible. Tome las lneas que hemos introducido como ejemplos:
numberPressed la etiqueta de m numberPressed se propagar hasta un controlador de tarjeta vamos a aadir (pronto). la etiqueta de m
se ver en la etiqueta que se define para el objeto de que el guin est dentro de.
establecer el ["texto"] a m clipboardData
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 guin, y no el propio campo. Sin embargo, debido a que es el potencial de confusin al leer su propio cdigo ms tarde, habra que agregar un par de palabras para que el significado ms claro:
establecer el texto de m clipboardData ["texto"]
[ 28 ]
en
el
Chapter 1
Por cierto, que el guin de presentacin 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 ms detallado de lo que se necesita, slo por razones de legibilidad, y en estos captulos que va a ser el caso. Uso:
poner el texto de m en textvariable
hace que sea ms fcil saber lo que va a suceder que si se utiliza el igualmente vlida:
me puso en textVariable
En cualquier caso, ya que es un campo, LiveCode sabe lo que significa. Ahora mira el guin en el que hemos escrito nombre corto de m - Qu es todo eso? Los objetos en LiveCode tienen una larga descripcin del lugar en que se encuentran, por ejemplo, "Botn" buttonname "de tarjeta de identificacin 1234 de pila" ruta / a / stack.livecode "". En la aplicacin de la calculadora slo tenemos la palabra de lo que establece como el nombre del botn. Si nos preguntamos por nombre de m, an dira botn "buttonname". Para tomar slo 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". Adems de una descripcin de las diferentes maneras de utilizar "nombre", hay una serie de precauciones se muestra.
Maysculas y minsculas Si algn usuario LiveCode avanzadas estn leyendo este captulo, 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 comn entre los lenguajes de programacin de Ingls-como para no exigir que el usuario obtiene exactamente el caso justo antes del comando funcionar.
Chapter 1
en mouseUp se activa al presionar y soltar el botn izquierdo del ratn mientras en el botn, numberPressed llamar a un controlador de tarjeta de llamada
"numberPressed", pasando con ella el sello que haba establecido para el botn que tiene este script. La C(Borrar) botn tiene este script:
en mouseUp clearPressed final mouseUp
Los otros botones todos funcionan de la misma manera - que ellos llaman un controlador del nombre utilizado, que estamos a punto de aadir a la secuencia de comandos de la tarjeta. La siguiente es la secuencia de comandos para los smbolos +, -, *, / y botones, pasando el nombre del botn en cuestin al nivel de tarjeta:
en mouseUp operatorPressed el nombre corto del mouseUp final me
En el caso del campo, es slo el procesamiento de una sola lnea de cdigo, as que no hay necesidad de poner eso en el nivel de tarjeta, a menos que tuviramos una gran cantidad de campos que hacen lo mismo. As que, por qu no aadir todos los scripts de nivel de tarjeta? Aqu estn, uno a la vez, con una explicacin de cmo cada uno funciona: Pero espera ... an no hemos hablado de variables. Espere un momento, mientras vemos cmo LiveCode gestiona las variables.
[ 31 ]
LiveCode Fundamentals
Como hemos comentado, se trata de variables que permitirn a todos los controladores para pasar valores entre s. En este caso las variables podra haber sido local, pero a menudo se puede decidir utilizar global en cambio, pensando que un caso puede surgir despus 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 cdigos 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 vaco en el extremo currentcommand clearpressed
Tener las lneas de reposicin en el clearPressed manejador nos permitir llamar en otro momento y no slo cuando la tarjeta se abre. Nos puede llamar directamente al hacer clic en el C(CLEAR)
[ 32 ]
que pondr a cero el campo de visualizacin, el total acumulado para su clculo, y el ltimo nmero que ha introducido en la calculadora. Tambin borra la variable que se utiliza para recordar que el operador presiona el botn por ltima vez, y un booleano (true / false) variable se utiliza para reconocer si un botn se presiona nmero debe borrar la pantalla o agregar en el display.
Chapter 1
[ 33 ]
LiveCode Fundamentals
Todos los botones numricos y el botn 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 ms n despus de poner el campo "display" end if final numberPressed
La ndespus de que el nombre del controlador es una variable que almacena el parmetro 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 carcter a la final del campo de visualizacin, a excepcin de cuando se est escribiendo un nuevo nmero. Ah es donde el newNumber variable booleana dentro - si que se establece en verdadero, el carcter entrante reemplaza el contenido del campo de visualizacin. Sin embargo, si es falsa, el carcter se aade al final del campo. Este es el controlador para al pulsar las teclas +, -, *, / o botones:
el operador operatorPressed currentCommand si est vaco, poner campo "display" en operador currentTotal poner en currentCommand poner en verdadero newNumber ms poner operador en currentCommand equalsPressed End If final operatorPressed
Cuando se utiliza una calculadora, escriba un nmero, un operador y luego otro nmero, seguido de otro operador o el =botn. A la vez que se pulsa el botn de operacin no hay manera de saber el resultado, ya que an no ha entrado en el prximo nmero en el clculo. As, recordamos que el operador hasta que haya introducido el nmero siguiente. Si el currentcommand variable no tiene ya un valor, se guarda el texto en el campo de visualizacin currenttotal variable, el carcter explotador que usted presiona en el currentcommand variable, y asegrese de que newnumber se establece cierto. De esta forma se asegura de que el botn se pulsa siguiente nmero se borrar el campo de visualizacin. Si currentcommand ya tiene un valor, lo reemplazamos con el nuevo valor y, a continuacin, llamar al controlador que se usa cuando se pulsa el =botn.
[ 34 ]
Chapter 1
Hay maneras ms probable ms cortas para hacer frente a la =pulsar una tecla, pero aqu vamos a utilizar varios si declaraciones, y ejecutar el cdigo de clculo apropiada:
en equalsPressed poner campo "display" en CurrentValue si currentCommand est vaca salga equalsPressed si currentCommand es "dividir" a continuacin, 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 continuacin, poner currentTotal CurrentValue en el campo "display" si currentCommand es "plus" a continuacin, poner currentTotal + CurrentValue en el campo "display" poner campo "display" en currentTotal poner en verdadero newNumber puesto vaco en el extremo currentCommand equalsPressed
El contenido del campo de visualizacin se almacenan en la CurrentValue variable, y el botn operador ha pulsado ltimo (que se almacena en currentCommand) se mira para ver qu sucede despus. Si no haba un operador anterior (como sera el caso si se ha pulsado =dos veces en una fila) no hacemos caso al pulsar el botn y salir de la rutina. Para los cuatro operadores, nosotros hacemos el clculo correspondiente. Despus, guarde el nuevo total corriendo a la currentTotal variable, asegrese de que el newNumber variable booleana se establece verdadero (De modo que el botn siguiente nmero pulsado borrar el campo de la pantalla), y nos olvidamos de la ltima tecla de mando que se pulsa, poniendo vaco 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 nmero de punto flotante. Para el ltimo controlador, togglesign, inserte el siguiente cdigo:
en togglesign si el personaje de un campo de "display" es "-" y luego borrar el carcter de un campo "display" ms poner "-" delante campo "display" end if final togglesign
Esta es una rutina muy simple, que no tiene que entender que es un nmero de punto flotante se representa. Simplemente mira para ver si el primer carcter es un punto negativo
[ 35 ]
LiveCode Fundamentals
o no, y si lo es, borra el carcter. Si no es as, se inserta el guin que ms tarde LiveCode interpretar como un valor negativo.
[ 36 ]
Chapter 1
Ampliacin de la calculadora
Es posible aadir ms caractersticas a la calculadora simple. Si tenemos en cuenta cmo 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 botn se presiona =, hay un conjunto de si declaraciones en el equalspressed controlador que determinar qu sucede despus.
Eso te dar el smbolo de la derecha como la etiqueta del botn. LiveCode tiene una funcin de raz cuadrada, escribiendo esto en el cuadro de mensaje que producira la raz cuadrada de 10:
poner sqrt (10)
Ahora, armado con la informacin anterior, trate de agregar una funcin raz cuadrada en la calculadora.
[ 37 ]
LiveCode Fundamentals
Un jugador de vaco puede ser creado seleccionando Nuevo Control / Jugador de la Objeto men
Despus de haber aadido el jugador a la tarjeta, puede configurar qu archivos de vdeo se va a jugar por entrar en la ruta del archivo o URL del archivo con la configuracin bsica de la paleta Inspector. Tambin puede establecer la ruta de acceso al video con la siguiente secuencia de comandos:
establecer el nombre del archivo "nombre del jugador" jugador "ruta de archivo o URL"
Botones Rollover
[ 38 ]
Las imgenes que se importan se pueden utilizar como iconos en un botn. Para configurar un botn para que tenga una imagen agradable estado de reposo, y una imagen ms destacado asociado, deber seguir los siguientes pasos: 1.Seleccione Archivo | Importar como Control | Imagen de archivo ...
Chapter 1
2.Seleccione las imgenes que representan los estados de inactividad y ms destacado, y haga clic en Abrir.
[ 39 ]
LiveCode Fundamentals
3.Seleccione el botn que desea ver como estas imgenes, y bajo los iconos y las fronteras de la paleta Inspector, haga clic en el botn varita mgica para el lado derecho de la entrada superior (Icono). 4.In el cuadro de dilogo que aparece, seleccione Esta pila en el men desplegable. 5.Seleccione la imagen que es el estado de inactividad para el botn. 6.Haga clic en el botn varita mgica junto a la entrada Hover, y elegir la imagen del estado resaltado. 7.Under Propiedades bsicas, seleccione el botn transparente en el estilo en el men desplegable. 8.Uncheck las casillas de nombre Show, hilite Auto, y hilite compartida. 9.Resize el botn para ser lo suficientemente grande como para mostrar la imagen. 10. Seleccione cada una de las imgenes originales, y en Propiedades Bsicas, desactive la Visible caja. Aqu podemos ver dos imgenes que se han importado con el fin de darle al botn Begin una apariencia ms iOS. El botn est seleccionado y la paleta Inspector muestra el icono Las opciones de seleccin.
[ 40 ]
Chapter 1
Entonces, cuando usted elige una imagen para usar el mismo botn se actualizar. En este caso, el icono de la libracin se ha ajustado a la versin ms oscura de la grfica, pero como se muestra aqu, el botn queda por cambiar de tamao.
Depuracin
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 depuracin de scripts en accin. 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 habra parecido:
[ 41 ]
LiveCode Fundamentals
La mayora de lo que se ve es el mismo que cuando se edita scripts, pero si usted ve la variacin de depuracin est en un estado de pausa, una imagen congelada del programa mientras se ejecuta. En este ejemplo, el programa se detuvo porque la lnea 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 rpidamente detectar el error. Aunque a veces puede ser necesario inspeccionar las variables, para asegurarse de que contienen los valores que creemos que deberan. 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 interrupcin, haga clic en la columna justo a la izquierda del nmero de lnea que desea detener el programa en. Si el guin se detuvo por un punto de interrupcin, puede utilizar la fila de botones en la parte superior para pasar a travs del cdigo. Los botones son:
Detngase se detendr la secuencia de comandos en ejecucin, de modo que usted puede hacer cambios
Mostrar siguiente instruccin mostrar un indicador a la izquierda de la lnea actual Entra en la declaracin siguiente Se utiliza para entrar en un controlador diferente
[ 42 ]
Chapter 1
Paso a paso por la declaracin siguiente ir en el prximo estado de cuenta en el controlador de corriente, sin entrar en un controlador mencionado en la lnea actual Al salir del manejador actual se utiliza para saltar las lneas restantes en un controlador que haba 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 debera empezar!
Escriba las palabras de bsqueda en la caja que describen su rea de inters, y podrs ver una lista de artculos sobre ese tema.
Resumen
Despus de haber creado una calculadora sencilla a partir de cero, ahora debera estar ms familiarizado con el LiveCode ambiente. En este captulo cubrimos:
Botones, campos, secuencias de comandos y la estructura de la pila, para obtener una comprensin de cmo funcionan juntos. Varios guiones cortos, para ilustrar la sintaxis de Ingls-como utilizado por LiveCode. La ventana de script, y cmo le depurar un script. Otros controles de la interfaz, como preparacin para su uso en los captulos posteriores.
[ 43 ]
LiveCode Fundamentals
Tambin hablamos sobre los tipos de variables utilizadas por LiveCode, y cmo se pueden utilizar los comandos abreviados y sinnimos. 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 publicacin de una pila para un dispositivo mvil, y luego comenzar a probar caractersticas mviles especficas, las cuales se tratan en el siguiente captulo.
[ 44 ]
LiveCode hace que las aplicaciones mviles mediante la adopcin de la pila que ha presentado, junto con todos los archivos de soporte que ha aadido, y compila el archivo de la aplicacin utilizando el kit de desarrollo que se descarga desde el mvil proveedor OS - Google para Android y Apple para iOS. En este captulo vamos a:
Regstrate para Android Market Regstrate para Amazon Appstore Descargar e instalar el SDK de Android Configurar LiveCode para que sepa dnde buscar para el SDK de Android Convirtete en un desarrollador de iOS de Apple Descargar e instalar Xcode Configurar LiveCode para que sepa dnde buscar los SDK de iOS Configure simuladores y dispositivos fsicos Pruebe una pila en un simulador y dispositivo fsico vamos
Aqu ...
Android Market
Una buena ubicacin inicial wa 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 Ms informacin en el rea de publicacin. Habr una pantalla de inicio de sesin, inicie sesin con sus habituales detalles de Google.
Qu direccin de correo electrnico para usar? Algunos servicios de Google son ms fciles 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 direccin de Gmail (o eso me pareca 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 ms 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 electrnico, URL del sitio web (si tiene uno), y nmero de telfono.
[ 37 ]
El uso de Google Checkout le evita tener que introducir sus datos de facturacin, cada vez. Esperemos que no va a adivinar los otros 12 dgitos de mi nmero de tarjeta de crdito!
[ 38 ]
Chapter 2
Por ltimo, es necesario aceptar el Acuerdo de distribucin para desarrolladores de Android Market.
[ 39 ]
Chapter 2
Algn tiempo despus, 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 ms Apple-como, tanto en la cantidad que cobran que te registres y en el proceso de revisin para aceptar propuestas de aplicaciones. La spgina tarting es http://developer. amazon.com / home.html.
[ 40 ]
1.Cuando hace clic en Comenzar, se le pedir que inicie sesin en su cuenta de Amazon.
Qu direccin de correo electrnico para usar? Esto se siente como dj vu! No hay ninguna ventaja real en Google utilizando su direccin de correo electrnico al registrarse en el Programa de Desarrolladores de Amazon Appstore, pero si le sucede que tiene una cuenta en Amazon, inicia sesin 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 trminos del convenio AppStore DISTRIBUCIN antes de aprender acerca de los costos.
Costos 3.Those son de $ 99 por ao, pero el primer ao es gratis. As que eso es bueno!
[ 42 ]
4.Unlike el Google Android Market, Amazon le pide a su banco por adelantado detalles, listo para enviar un montn 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 enva!
[ 43 ]
Chapter 2
En este libro, slo vamos a cubrir Windows y Mac OS X (Intel), y slo lo que se necesita para hacer el trabajo LiveCode con el SDK de Android y iOS. Si tiene la intencin de hacer nativas aplicaciones basadas en Java, entonces usted puede estar interesado en la lectura a travs de todos los pasos que are describe en la web pgina: http://developer.android.com/sdk/installing.html.
Haga clic en el siguiente enlace para su plataforma. Los pasos que tendr que ir a travs son diferentes para Mac y Windows. Vamos a empezar con Mac.
[ 44 ]
Por supuesto, la primera parte de la lnea y el usuario carpeta coincide con la suya, no ma! El resto ser el mismo aspecto. As es como se vera 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 despus de escribir esa lnea. Los cambios en las lneas de ubicacin a un aspecto similar al siguiente:
nuevo-host-3: android-sdk-macosx colin $
Pulse Intro o Enter nuevamente. Cunto tiempo toma la descarga depender de su conexin a Internet. Incluso con una conexin a Internet muy rpida, todava tardar ms de una hora.
[ 45 ]
Chapter 2
Si usted ve esto, entonces usted puede dejar el cuadro de dilogo de abrir y haga clic en el botn java.oracle.com visita. En la pgina de Oracle, lo que tienes que hacer clic en una casilla de verificacin para aceptar sus trminos, y luego en el siguiente enlace correspondiente a su plataforma. Elija la opcin 64-bit si est ejecutando una versin de 64 bits de Windows, o la opcin 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 tambin! Cuando finalice la instalacin, aparecer una pgina de registro JDK, sino que depende de usted si se registra o no. De vuelta en el cuadro de dilogo de instalacin de Android SDK, puede hacer clic en el botn Atrs y, a continuacin, en el botn Siguiente para volver a esa etapa JDK de cheques, slo que ahora se ve que usted tiene el JDK instalado. Complete los pasos
[ 46 ]
[ 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 tentacin de desactivar esa caja! Haga clic en Finalizar, y le dar la bienvenida con una ventana de lnea de comandos por unos momentos, y luego el Administrador de Android SDK aparecer y haga su cosa.
Al igual que con la versin para Mac, se necesita mucho tiempo para todos estos add-ons para descargar.
[ 48 ]
Vamos a establecer las dos entradas para iOS iOS va despus de conseguir (en Mac es decir, estas opciones se atenuarn en Windows). Por ahora, haga clic en el botn ... situado junto al campo de Android SDK desarrollo de las races, 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 ubicacin personalizada). Uf! Ahora, vamos a hacer iOS ...
Chapter 2
[ 50 ]
[ 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 ... opcin. Con el fin de ilustrar todos los pasos en la firma, vamos a elegir para empezar como un nuevo usuario.
[ 52 ]
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 direccin postal.
[ 54 ]
La mayora 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 direccin de correo electrnico que ha utilizado, una verificacin de email se enva a usted, con un enlace en el e-mail para hacer clic, o puede introducir el cdigo manualmente. Una vez que haya completado el paso de verificacin, puede introducir los datos de facturacin.
[ 55 ]
Chapter 2
Podra ser que usted vaya a hacer aplicaciones LiveCode para la Mac App Store, en cuyo caso tambin habra que aadir el Mac Developer Program producto. Para nuestros propsitos, slo hay que registrarse para iOS Developer Program.
Cada producto que se suscribe a tiene su propio acuerdo. Un montn de letra pequea para leer!
[ 56 ]
La compra real de la cuenta de desarrollador de iOS se maneja a travs de la Apple Store para su regin.
[ 57 ]
Chapter 2
Como vern, va a costar $ 99 por ao, o $ 198 por ao si tambin se ha registrado para la cuenta de desarrollador Mac. La mayora de los usuarios LiveCode no tendr que inscribirse en la cuenta de desarrollador de Mac, a menos que el plan es presentar tambin 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 ]
Por desgracia, no es una aprobacin inmediata, como fue el caso con el Android Market o Appstore Amazon. Usted tiene hasta cinco das para esperar la aprobacin. En los das tempranos de desarrolladores de iPhone, podra tomar un mes o ms, por lo que 24 horas es una mejora!
Instalar Xcode
Una vez que reciba la confirmacin de ser un desarrollador de iOS, you podr iniciar sesin en el iOS Dev Center, en
https://developer.apple.com/devcenter/ios/index.action.
[ 59 ]
Chapter 2
Esta pgina 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 ms de eso, pero es necesario descargar Xcode.
[ 60 ]
En el rea de descargas de la pgina iOS Dev Center, podrs 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. Tambin puede obtener el cdigo de la Mac App Store, ya partir de la versin 4.3 de Xcode, que toma la forma de una aplicacin en lugar de una carpeta de desarrollador. Instalar Xcode desde la Mac App Store es muy sencillo, es como comprar cualquier otra aplicacin en la tienda, slo 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 ms antiguas de la pgina del desarrollador. El mayor proceso de instalacin de Xcode es muy similar a cualquier otra aplicacin de Mac:
Las instalaciones Xcode tomar un tiempo muy largo, pero al final, usted debe tener la Revelador carpeta o aplicacin Xcode nuevo, listo para LiveCode de encontrar.
[ 61 ]
Chapter 2
Hacer frente a los dispositivos ms nuevos y mayores A principios de 2012, Apple lanz al mercado un nuevo iPad. El principal punto de venta de ste en comparacin con el iPad 2 es que tiene una "Retina" display. Los iPads regulares tienen una resolucin de 1024x768, y la versin retina tiene un resolucin de 2048x1536. Si desea crear aplicaciones para tomar ventaja de eso, usted debe obtener la versin de Xcode desde la Mac App Store, y no es una de las versiones ms antiguas de la pgina 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 ms de lo que esperbamos! Pero espere, hay ms. Al tomar una versin posterior de Xcode, se A continuacin 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 pestaa de descargas, donde se puede disfrutar de los SDKs mayores descargados en la nueva versin de Xcode.
[ 62 ]
Haga clic en el ...situado junto a la ubicacin de la raz desarrollador de iOS 5.0 y superior: campo, y usted ver un cuadro de dilogo 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 raz de su disco duro. Para 4.3, seleccione la aplicacin 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 ubicacin de la raz desarrollador de iOS 4.0 y superior: campo, y de nuevo, seleccione la carpeta con el nombre Revelador en la raz de su disco duro. LiveCode ahora sabe dnde encontrar los SDK para iOS.
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 aplicacin se abrir a travs de una ventana de lnea de comandos).
3.
4. 5. 6. 7. 8.
Chapter 2
Seleccione Tablet de la lista de dispositivos (slo hay dos cuando se ha instalado por primera vez el SDK de Android - usted puede aadir sus propios personalizados aqu tambin). Haga clic en el botn Inicio. Sintate pacientemente mientras el dispositivo virtual se pone en marcha! Abra LiveCode, y crear un nuevo Mainstack y Guardar la pila en su disco duro. Seleccione Archivo | Configuracin de aplicaciones independientes ....
[ 64 ]
9.
10. Cierre el cuadro de dilogo Configuracin, y echar un vistazo en el men Desarrollo. 11. Si la mquina virtual est en funcionamiento, debera ver que aparece en el
Target Test submen.
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.
[ 65 ]
Chapter 2
1. 2. 3. 4. 5. 6. 7. 8. 9.
En el Explorador de Windows, navegue hasta la ubicacin del archivo adb_usb.ini se encuentra, en C: \ Users \ nombredeusuario \
android \..
Abrir el archivo de texto adb_usb.ini en un editor de texto. El archivo no tiene saltos de lnea visibles, por lo que Wordpad sera una opcin mejor que el Bloc de notas. En la lnea despus de las tres lneas de instruccin, tipo de 0x1949. Asegrese de que no hay lneas en blanco, y el ltimo carcter del archivo de texto debe ser el 9al final de 0x1949. Guardar.
Vaya a donde android_winusb.inf se encuentra, en C: \ Archivos de programa (X86) \ Android \ android-sdk \ extras \ google \ USB_Driver \. 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. Abierto android_winusb.inf en el Bloc de notas. Agregue estas tres lneas 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.
[ 66 ]
12. Haga clic en la entrada Kindle y seleccione Actualizar software de controlador ....
13. Elija la opcin 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 (prctico truco:
Shift + clic derecho en el escritorio y seleccione Abrir ventana de comandos aqu).
16. Escriba estas tres lneas, presionando ENTRAR despus de cada lnea:
adb kill-server adb start-server adb dispositivos
17. Usted debe ver el Kindle Fire en la lista (comoun nmero desconocido buscando), as como el
dispositivo virtual, si usted todava tiene que correr. Para Mac (mucho ms simple!):
1. 2. 3. 4. 5. 6. 7.
el 9
Vaya a la ubicacin 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
/.
Abrir el archivo adb_usb.ini en un editor de texto. En la lnea despus de las tres lneas de instruccin, tipo de 0x1949. Asegrese de que no hay lneas en blanco, y el ltimo carcter en el archivo de texto sera al final de 0x1949. Guardar. Open Utilities | Terminal. Usted puede dejar OSX saber cmo encontrar ADB desde cualquier lugar, al escribir esta lnea (reemplace yourusername con su nombre de usuario, y tambin cambiar la ruta si ha instalado el SDK de Android en una ubicacin diferente):
export PATH = $ PATH :/ Users/yourusername/Documents/android-sdk- macosx / platformtools
8.
Ahora, introduzca las mismas tres lneas que hicimos con Windows:
adb kill-server adb start-server adb dispositivos [ 68 ]
9.
[ 69 ]
Chapter 2
Sospecho que vas a tener pesadillas sobre todos los pasos! Me tom un montn de bsqueda 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 tambin) para el dispositivo sea considerado como un dispositivo compatible ADB.
1. 2. 3. 4. 5.
Abra LiveCode, cree un nuevo Mainstack y guarde la pila en su disco duro. Seleccione Archivo | Configuracin de aplicaciones independientes .... Haga clic en el icono de iOS y seleccione la casilla de verificacin Generar para iOS. Cierre el cuadro de dilogo de configuracin, y echar un vistazo en el men Desarrollo. 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 fsica requiere que crear una primera aplicacin, as que vamos a hacer eso.
En este punto, usted debera ser capaz de crear un nuevo Mainstack, guardarlo, seleccione iOS o Android en el cuadro de dilogo Configuracin independiente, y ser capaz de ver los simuladores o dispositivos virtuales en el men Desarrollo / Test. En el caso de una aplicacin para Android, tambin podr ver el dispositivo en la lista, si est conectado a travs de USB a la vez.
[ 71 ]
Chapter 2
1. 2. 3. 4. 5. 6. 7. 8. 9.
Abra LiveCode, cree un nuevo Mainstack, y gurdelo en un lugar donde es fcil encontrar en un momento de ahora.
Establecer la ventana de la tarjeta a un tamao de 1024x768, y desactive la casilla de verificacin Redimensionable. 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 podra hacer muy bien! Si est desarrollando en Windows, vaya al paso 11. Abra la aplicacin autnoma de dilogo Configuracin, haga clic en el icono de iOS y seleccione la casilla de verificacin Generar para iOS. En Opciones de orientacin, establecer la orientacin inicial iPhone en horizontal. Cierre el cuadro de dilogo. Desde el Desarrollo / Target Test sub-men, seleccione el simulador de iPad. 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 seal anteriormente, el lanzamiento del dispositivo virtual Android. 12. Abra la aplicacin autnoma cuadro de dilogo Configuracin, haga clic en el icono
de Android, y seleccione la casilla de verificacin Build para Android.
13. En Opciones de la interfaz de usuario, establezca la orientacin inicial a Horizontal. 14. Cierre el cuadro de dilogo. 15. Si el dispositivo virtual est en ejecucin 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 ]
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 aplicacin mvil, tanto en Android y iOS! Para un encore, debemos probarlo en dispositivos fsicos, aunque slo sea para dar Android oportunidad de demostrar lo fcil que puede ser para hacer eso. Hay toda una lata de gusanos que an 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 captulo 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 Cmo en cada una de las diferentes secciones.
1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 6.
Obtenga su dispositivo a su pantalla de inicio, ms all de la pantalla de bloqueo inicial, si es que existe. Elige Desarrollo / Target Test y seleccione su dispositivo Android. Bien puede decir Androide y un nmero muy largo. Elige Desarrollo / Test. La pila debe ahora estar ejecutndose en su dispositivo
Android. Ahora iOS ... Si usted no ha ledo el captulo posterior sobre la implementacin en el dispositivo, o las pginas de Apple, o que no han instalado los certificados y los archivos de aprovisionamiento, entonces usted tendr que pasar esta prueba, por ahora. Cambiar la configuracin de aplicacin independiente de nuevo a iOS. En Configuracin de la aplicacin bsica de la configuracin 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. Cierre el cuadro de dilogo y selecciona Guardar como aplicacin autnoma ... en el Expediente men. 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.
Abra Xcode, que est en la carpeta del desarrollador que cre anteriormente, en el Aplicaciones sub-carpeta.
[ 74 ]
7. just En Xcode, seleccione Organizador en el men Ventana y seleccione Dispositivos, What happened?
si no est ya seleccionado.
8. 9.
Debe aparecer en la lista. Seleccinelo, y si ves un botn etiquetado para uso Desarrollo, haga clic en ese botn.
10. El pequeo crculo de color naranja a su vez, por un momento, y luego de vuelta a verde. 11. Ahora puede abrir la aplicacin en tu dispositivo iOS!
Qu ha pasado?
Adems de obtener una pila de prueba trabajando en dispositivos reales, tambin vimos lo fcil que es, una vez que todo est configurado, para poner a prueba una pila directamente a un dispositivo Android. Si est desarrollando una aplicacin que se va a desplegar en tanto Android y iOS, es posible que la manera ms rpida al trabajo es poner a prueba con el simulador de iOS para las pruebas de iOS, pero para probar directamente en un dispositivo Android en lugar de utilizar el Android SDK virtuales dispositivos.
Otras lecturas
Los proveedores de SDK, Google y Apple, tienen pginas extensas de informacin sobre la configuracin de sus entornos de desarrollo, la creacin de certificados y aprovisionamiento de los archivos, y as sucesivamente. La informacin tiene que cubrir una gran cantidad de temas que no se aplican a LiveCode, as que no trate de perderse! Estos seran good pginas que empiezan por:
http://developer.android.com/ http://developer.apple.com/ios/
[ 75 ]
Chapter 2
Resumen
La inscripcin 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 podra tomar la mejor parte de un da a trabajar a travs de lo que hemos cubierto en este captulo ! Afortunadamente, usted slo tiene que ir a travs de l una vez. Hicimos el trabajo a travs de las tareas que tiene que hacer antes de poder crear una aplicacin mvil en LiveCode:
Descargar e instalar el SDK de Android Regstrate como desarrollador de iOS Descargar e instalar Xcode y el iOS SDK Configurar dispositivos y simuladores
Tambin cubre algunos temas que sern tiles una vez que est listo para cargar una aplicacin de acabado:
Habr cosas ms 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 mviles.
[ 76 ]
Cuando se realizan aplicaciones de servicios pblicos o juego para computadoras de escritorio que puedas a menudo llegar a tener una ventana de tamao especial, por lo que usted puede hacer grficos personalizados que se ajustan exactamente. Con los dispositivos mviles que tiene que hacer frente a una amplia gama de tamaos de pantalla, y relaciones de aspecto, y tambin 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 solucin 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 indgena, Mac OS Classic, Windows 95, y Motif. Lo mismo no puede decirse de los sistemas operativos mviles, todos controles parecen Motif. Usted todava tiene dos opciones: puede crear grficos 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 captulo vamos a:
Establecer un "banco de pruebas" de aplicaciones mviles Abra el correo electrnico y las ventanas del navegador Muestra un control de selector de fecha Carga de imgenes de la biblioteca y la cmara Hacer un botn de iOS buscando Manual de disear una interfaz Utilice el cdigo para disear una interfaz Mira a controles de la interfaz mvil de gran alcance add-on
[ 77 ]
1. 2. 3. 4.
LiveCode Abrir, crear un nuevo Mainstack y Guardar como LCTestBed. Establezca el tamao en 320x480. Slo para asegurarse de que las cosas van a aparecer en la ms pequea de las pantallas. Las cosas que hacen que estar en la zona lateral superior izquierdo de pantallas ms grandes. Vamos a hacer un botn por cada carta en la pila. Comience por hacer una llamada
Men.
[ 70 ]
Chapter 3
5.
Agrega botones para correo electrnico, navegador, DatePicker e Imagen. Asegrese de que los botones son lo suficientemente grandes para tocar en sus dispositivos. Usted debe tener algo como la siguiente captura de pantalla:
5. 6.
Cree cuatro nuevas cartas. Nombre cada uno de tal manera que coincida con uno de los nombres de los botones. Volviendo a la primera tarjeta, ajuste el guin de cada botn de manera que va a la tarjeta, con este script:
en mouseUp ir tarjeta el nombre corto del mouseUp final me
7. 8.
En cada tarjeta, crear un botn para volver a la tarjeta de men. Nombre del botn Establezca su guin a los mismos que los otros botones. Seleccione la opcin 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.
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 dems. Ahora vamos a agregar secuencias de comandos para cada tarjeta para ayudar a ilustrar las diversas caractersticas. El enfoque ms eficaz consistira en agregar todos los guiones y botones relacionados y campos, y luego probar la aplicacin de prueba lecho final de una sola vez. Pero, dnde est la diversin en eso? Por lo tanto, vamos a crear una funcin a la vez.
[ 71 ]
1. 2. 3.
Ir a la tarjeta e-mail y crear cuatro campos. Nmbrelos Desde, CC, Asunto, y Cuerpo. Hacer un botn denominado Test. En el botn de prueba, escriba el siguiente guin:
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. 5.
Seleccione la herramienta de ejecucin y la informacin de ejemplo tipo en cada uno de los campos. Haga clic en el botn Probar.
Qu ha pasado?
Una cosa aseada sobre sintaxis LiveCode es que el cdigo de las aplicaciones mviles tambin funciona para las aplicaciones de escritorio, y viceversa. Si todo va bien, cuando se hace clic en el botn Probar te encontraras en tu correo electrnico predeterminado aplicacin, lista para enviar el mensaje de que haba entrado en el campo LiveCode pila.
No es ninguna sorpresa que la prueba funcion escritorio, la posibilidad de abrir otras aplicaciones es una caracterstica bsica de LiveCode. An as, es estupendo para poder establecer un texto inicial para el nuevo mensaje de su uso. A continuacin se debe ver si esto puede funcionar en dispositivos tambin.
Chapter 3
[ 73 ]
1. 2. 3. 4. 5. 6.
Asegrese de que Android est activada en la configuracin de aplicacin independiente Cuadro de dilogo. En el campo de identificador, el tipo de un identificador que ser nico. com.yourname. lctestbed iba a hacer.
Obtenga su dispositivo a su pantalla de inicio, ms all de la pantalla de bloqueo inicial, si es que existe. En LiveCode, elija Desarrollo / Target Test y seleccione su dispositivo Android. Se llamar Androide seguido de un nmero largo. Elige Desarrollo / Test. Despus de haber sido compilados, la pila debe ejecutarse en su dispositivo Android, y usted debera ser capaz de tocar el botn Correo electrnico y crear un mensaje de prueba que utilizar el Android aplicacin de correo electrnico.
[ 74 ]
Chapter 3
7.
Pasando a iOS, si no lo ha hecho, lea el Captulo 7, Implementacin en el dispositivo, o leer por lo menos aquellas partes que muestran cmo instalar los certificados para desarrolladores iOS y archivos de aprovisionamiento. Al igual que con Android, slo vamos a cambiar un par de elementos en el cuadro de dilogo Configuracin de la aplicacin independiente. Esta es el rea que vamos a estar cambiando:
8. 9.
Cambiar la configuracin de aplicacin independiente para iOS. Bajo la aplicacin bsica seccin Configuracin 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. Android, com.yourname. lctestbed iba a hacer. sunombre Por supuesto, sera su nombre, o el nombre de su empresa. Dispositivos compatibles en el men desplegable. Expediente men.
10. En el campo de aplicacin interna en un ID nico de identificacin. Al igual que con 11. Si est probando el iPad, seleccione la opcin iPod, iPhone y iPad de la 12. Cierre el cuadro de dilogo y selecciona Guardar como aplicacin autnoma ... en el 13. Cuando el proceso de almacenamiento se haya completado puede ver un 14. En Finder, busque la carpeta que acaba de crear, y lo abre para revelar la
App propio archivo. mensaje de advertencia, informndole sobre pantallas de inicio y los iconos que faltan. No haga caso de estos por ahora.
16. Debe aparecer en la lista. Seleccinelo, y si ves un botn etiquetado para uso
Desarrollo, haga clic en ese botn.
17. Arrastre el archivo de aplicacin directamente desde la ventana del Finder para su
dispositivo en el Organizador ventana.
18. El pequeo crculo de color junto al dispositivo se volver naranja por un momento,
y luego de vuelta a verde.
19. Ahora puede abrir la aplicacin y probar el botn Enviar para crear un mensaje de prueba, que utilizar
la aplicacin estndar de iOS correo.
Qu ha pasado?
Hemos pasado a travs de los pasos necesarios para instalar la aplicacin banco de pruebas tanto en los dispositivos Android y iOS. Tambin tuvimos que cambiar un par de cosas en el cuadro de dilogo Configuracin de la aplicacin independiente. Como has visto, hay un buen montn de ajustes all. Usted puede esperar a conocer a todos en el Captulo 7, Implementacin en tu equipo
1. 2.
Copie el botn de prueba en la tarjeta de E-mail, y pegarlo en la tarjeta del navegador, slo para ahorrar algo de tiempo para hacer el botn de un aspecto agradable. Edite el script de botn 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 botn Test. Debera ver la pgina de inicio RunRev en su navegador predeterminado.
[ 76 ]
Chapter 3
Tratar la aplicacin en dispositivos es exactamente lo mismo que con las pruebas de la funcin de correo electrnico. Para Android:
1. 2. 3. 4. 5.
Para iOS:
Seleccione Android en el cuadro de dilogo Configuracin de la aplicacin independiente. Selecciona tu dispositivo Android como el blanco de prueba en el men de Desarrollo (muy probablemente ya se habr seleccionado de la prueba anterior). Seleccione Prueba en el men Desarrollo. La prueba anterior de la aplicacin se pueden sobrescribir, y la nueva versin se iniciar automticamente. Pruebe el botn del navegador, y luego el botn de prueba que acaba de crear en el Navegador tarjeta. La pgina runrev.com debe ser abierta.
1. 2.
Rehacer el Guardar como aplicacin independiente, arrastre el archivo de aplicacin 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 debera ver la pgina de inicio RunRev abierto dentro de Safari.
Qu ha pasado?
Al igual que con el correo electrnico de prueba, aadiendo el cdigo estndar para la apertura de una pgina 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 dars cuenta de que el comportamiento es diferente cuando regrese de mirar una pgina web. Con Android, puede pulsar el botn de flecha hacia atrs y todava estar en la tarjeta del navegador de su pila. Con iOS la pila se reinicia cuando regrese. Una solucin a esto que vamos a examinar ms tarde es para escribir datos en un archivo externo, de modo que cuando la aplicacin se vuelve a abrir podemos regresar al usuario a donde estaban antes de salir de la aplicacin.
Mobile-only, selector de
[ 77 ]
fecha
El siguiente par de ejemplos vamos a tratar son los que slo funcionan en los dispositivos mviles, no en las computadoras de escritorio.
[ 78 ]
Chapter 3
1. 2.
Copie el botn de prueba de la tarjeta de explorador y pegarlo en la tarjeta DatePicker. Cambiar el guin a lo siguiente:
en mouseUp iphonePickDate "fecha" mouseUp final
3. 4. 5. 6. 7.
Seleccione la herramienta Ejecutar y probar el botn de prueba. Vers un error, porque esta es una caracterstica de slo mvil. Para variar, seleccione Simulador de iPhone o iPad a partir de la Meta de Desarrollo / Test men y, a continuacin, elija Prueba en el men Desarrollo. Ver su stack abrir en el simulador de iOS, y puedes probar el DatePicker y Prueba botones, para ver el selector de fechas iOS se est visualizando. 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. Pulse el botn DatePicker en la tarjeta del men y el botn de prueba de la tarjeta datepicker. Un selector de fecha iOS nativo debe aparecer.
Qu ha pasado?
Espero que ests cada vez ms rpido en la construccin e instalacin de aplicaciones mviles por ahora! Adems de probar de nuevo en un dispositivo, tambin probamos el simulador. Generalmente hablando es el ms rpido para poner a prueba lo que puede con el simulador de iOS, y slo en un dispositivo de prueba cuando se est examinando cosas como multi-tctil, acelermetro y soporte de la cmara.
[ 79 ]
1. 2.
Copie el botn de prueba de la tarjeta DatePicker y pegarlo dos veces en las imgenes tarjeta. Cambie el nombre de los botones para Prueba de la cmara y Prueba de
Biblioteca.
3.
4.
Al probar la carga de imgenes, 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 continuacin, elimine el objetivo final mouseup
5. 6.
Ir a Ajustes aplicacin independiente, y seleccionar Android. Tenemos que preguntarnos Android OS permiso para utilizar la cmara, y para almacenar la imagen, a fin de comprobar los requisitos para la cmara y escritura de almacenamiento externo como se muestra en la siguiente captura de pantalla:
[ 80 ]
7.
Chapter 3
Repita los pasos habituales para las pruebas en su dispositivo Android, o instalar en su dispositivo iOS.
[ 81 ]
8. 9.
Una vez que la aplicacin se est ejecutando en las fotografas toque el equipo, en la primera pantalla y, a continuacin, Biblioteca Test. Usted debe ver a las tpicas OS opciones especficas para la eleccin de una imagen de tu biblioteca o una galera. 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 guin tarjeta entramos significa que usted puede tocar la imagen para borrarla, y luego intente otra prueba. especfico, y cuando hayas tomado una foto y toc el uso o el botn OK en la aplicacin de la cmara, la imagen se coloca en la tarjeta Pictures.
10. Pruebe el botn de la cmara de prueba. Ver la aplicacin de la cmara con sistema operativo
Qu ha pasado?
Estas secuencias de comandos simples ilustrar cmo LiveCode es capaz de llamar a las aplicaciones de OS-especficas para hacer lo que de otra manera sera tomar un montn de codificacin. Incluso mejor, ya que las versiones posteriores de iOS y sistemas operativos Android son liberados, las secuencias de comandos simples mismos activar las funciones ms avanzadas que Apple y Google han puesto en prctica.
Chapter 3
Tiempo para la accin - el uso de Photoshop para preparar los estados botn
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.
2.
El artculo apunta a algunas otras fuentes de informacin, pero por ahora just descargar este archivo:
http://spin.atomicobject.com/assets/2011/3/7/iOS_Buttons.psd
3. 4. 5. 6.
En la paleta Capas ocultar las capas nombradas Antecedentes y Barra de Herramientas Retina. Expanda la capa denominada Button Bar - Retina, y ocultar la capa de la etiqueta del botn. Utilice la herramienta Marco para seleccionar un rea alrededor del botn lateral superior derecho. Ahora debera tener el siguiente aspecto:
[ 83 ]
7. 8. 9.
Seleccione Nuevo en el men Archivo, asegrese de que el contenido de fondo se establece en Transparente, y aceptar el tamao que le den. Seleccione Pegar, ser un ajuste exacto, y usted ver el estado de reposo para ese botn.
10. Seleccione Guardar para Web y dispositivos ... en el men Archivo. 11. En el cuadro de dilogo Guardar, seleccione 24 bits PNG, y asegrese 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 imgenes en cualquier lugar. Desactive la opcin Visible en Propiedades
[ 84 ]
Chapter 3
[ 85 ]
botn, y en las propiedades bsicas 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 botn varita mgica 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 imgenes azules. 26. Haga clic en el botn varita mgica junto a la entrada icono Hilite, a
continuacin, haga clic en la ms oscura de las dos imgenes. mostrar la imagen azul sin que se recorta.
27. Cambiar el tamao del botn para ser lo suficientemente grande como para 28. Coloque un campo Etiqueta en la parte superior de la tecla. 29. En Propiedades Bsicas, marque la casilla para discapacitados. Esto es para 30. En Contenido, introduzca Ubicacin. 31. En Formato de texto, establezca el campo para utilizar Helvetica
Bold, y centro alineados. Neue, 18 punto,
asegurarse de que el campo no atrapar el clic que usted va a hacer. Queremos que el botn para obtener ese clic.
32. En colores & las gamas, ajuste el color del texto a ser blanco. 33. Alinear el campo y el botn de modo que los dos se centra en la otra. 34. Si ahora prueba con el simulador de iOS y haga clic en el Ubicacin
botn, usted acaba de ver un cero, pero las pruebas en un dispositivo debe mostrar su latitud al tocar el botn (se le tiene que dar permiso a la aplicacin para saber su ubicacin la primera vez que pulse el botn).
[ 86 ]
Chapter 3
Qu ha pasado?
Aunque el botn que hizo no puede ser el tamao perfecto, ni siquiera tiene el aspecto correcto para un botn independiente iOS, s que fuimos a travs de todos los pasos que usted necesita para hacer imgenes de los botones de estado. La colocacin de un campo LiveCode sobre los botones de imagen no es necesariamente la mejor apariencia. En realidad, le tomara ms tiempo en Photoshop para hacer que el botn derecha para el ancho de la etiqueta que est usando, y tambin puede aadir el texto a la imagen en s. Se vera mejor, y usted no tendr que utilizar un campo para mostrar el nombre del botn en LiveCode. LiveCode es capaz de utilizar cdigo para crear las imgenes que necesitamos, mediante el establecimiento de los puntos de un grfico, as como su fillGradient. Pero una vez que usted tiene los componentes necesarios para simular un botn u otro tipo de control, an se requerir mucho ms secuencias de comandos para administrar dichos elementos. No hay una salida fcil, aunque, pero que le costar $ 50!
MobGUI al rescate!
RunRev tiene su sede en Edimburgo, Escocia, y ellos son un grupo talentoso! Pero ellos no son el pueblo escocs slo talento, tambin hay John Craig. Ha desarrollado un poderoso complemento para LiveCode que incluye una lista cada vez ms larga de iOS y Android OS buscando controles. Si usted fuera a comprar su producto que usted pagara $ 50, para lo cual se obtiene la versin actual, adems 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 versin de prueba del producto.
[ 87 ]
1. 2. 3. 4. 5.
El archivo comprimido se ampliar para convertirse en una pila LiveCode, llamado Arrastre la pila en la plugins carpeta y volver a abrir LiveCode. Hacer una nueva Maintstack. En el men Desarrollo, elige Plugins / revMobGUI. Esta ventana aparecer:
revMobGUI.livecode.
[ 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 botn de reproduccin. Ver este acuerdo:
7. 8. 9.
La ventana MobGUI se parece mucho a una combinacin de la herramienta y LiveCode Inspector paletas. Intenta arrastrar elementos diferentes en la tarjeta, y mirar las opciones para cada artculo. 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 ]
[ 90 ]
Chapter 3
13. Vers 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 estn a slo pilas, y hemos comenzado a hacer uso de una pila especializada que nos va a ahorrar un montn de tiempo, y nos dar una OS agradable interfaz especfica buscando.
Tiempo de accin - con MobGUI para hacer una aplicacin de banco de pruebas
A medida que trabaja en LiveCode y empezar pilas nuevas, guardar y cerrar otras pilas abiertas previamente, ya que todava puede ser la memoria de ocupacin. A veces se puede entrar en un estado de confusin en el que estamos haciendo una nueva pila sin ttulo, slo para encontrar que ya hay una pila sin ttulo 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. 2. 3.
Crear un nuevo Mainstack. Establezca el nombre de MGTestBed, y gurdelo en algn lugar se puede encontrar fcilmente. Tal vez en la carpeta con el LCTestBed pila, que se senta sola! Abra la ventana MobGUI, seleccionando el Desarrollo / Plugins / revMobGUI. En la pgina de la ventana de controles MobGUI usted ver que usted puede elegir un tamao de la pila. Seleccione el tamao de iPhone, y la pila se convertir en 320x480.
[ 91 ]
4.
Haga clic en el botn denominado cdigo preOpenCard Aadir a la escritura de la tarjeta. Se trata de introducir el cdigo necesario para inicializar MobGUI.
5. 6. 7. 8. 9.
Establezca el nombre de esta primera carta a Correo electrnico. 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. Arrastre el control de BG en la tarjeta. Se va a crear una capa de fondo. Arrastre una barra de pestaas en la ventana de la tarjeta. Se acoplar a la parte inferior de la ventana de la tarjeta, y tambin cambiar el tamao de la anchura de la tarjeta. Haga clic en el botn de control en la ventana MobGUI y seleccione 4. barra de pestaas. Cuatro botones sern aadidos.
10. Arrastre los botones en la ventana de la tarjeta, en la parte superior de la 11. Lo ms probable los botones se fuera a la parte derecha de donde deben estar.
Alt + doble clic en uno de los botones, para cambiar el tamao y la propagacin a travs 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 pestaas.
electrnico, Navegador, DatePicker, y Imagen.
12. Seleccione cada botn y establecer los nombres y etiquetas a Correo 13. Seleccione la Email
botn y elegir objetos de secuencias de comandos en el men Objeto o haga clic en el botn y elija la opcin Editar guin. La secuencia de comandos se ver as:
[ 92 ]
Chapter 3
controlador
15. Puede copiar el guin completo del primer botn, 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. peridica, marque la casilla de comportarse como un fondo.
17. Asegrese de que el grupo es seleccionado y en la paleta Inspector LiveCode 18. Hacer ms 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, dispositivo que desea probar sucesivamente.
21. En Configuracin de la aplicacin autnoma, elegir iOS o Android, segn el 22. Establezca el ID de aplicacin interna, o Identificador, para com.yourname.MGTestBed. 23. Si utilizas iOS, asegrese de elegir un perfil en el perfil en el men desplegable. 24. Ahora puede hacer una prueba en el men Desarrollo, despus 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 navegacin entre las cuatro cartas que parecen una autntica interfaz de iOS. Ahora vamos a obtener algunas de las caractersticas de la prueba en marcha, pero de una manera ms natural, de manera integrada que antes.
[ 94 ]
Chapter 3
1. 2.
Ir a la tarjeta E-mail y arrastre tres controles de texto y un control de texto de lneas mltiples de los controles nativos de iOS establecidos en la ventana MobGUI.
Nombre de los controles de texto como Para, CC, y Asunto, y el control de texto de lneas mltiples como Cuerpo. El tamao de la Cuerpo debe hacerse lo suficientemente grande como para entrar en unas pocas lneas de texto.
3. 4.
A medida que crea cada campo, tenga en cuenta que puede establecer el tipo de teclado. Ajstelo a Email para la A y CC campos. 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 ]
5.
Al probar la aplicacin y toca uno de los campos, la lmina del teclado aparecer. Usaremos el Hecho botn como una manera para ocultar el teclado. Agregar una lnea de atencin al touchEnd manejador de la Hecho botn de secuencia de comandos:
en touchEnd PID mobGUIUntouch el id de largo que me centre en nada - End otras lneas touchEnd
6.
MobGUI puede recuperar propiedades de estos campos nativas, utilizando un mobFieldGet funcin. Cambie el botn Enviar touchEnd controlador a utilizar esa funcin para cada campo, y tambin para llamar la revMail funcin:
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. 8. 9.
Ir a la tarjeta Browser. 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. Arrastre un control de explorador (el que muestra Google como su imagen) en la ventana de la tarjeta, y el nombre Page. y el control del explorador llena la zona entre el campo de texto y la barra de pestaas en la parte inferior. para el URL. Esto har que el control de la carga navegador la URL como su primera pgina.
10. Ajustar los tamaos de modo que el campo de texto llena el ancho de la tarjeta, 11. Seleccione el control del navegador, y en la ventana MobGUI introduzca un valor 12. Edite el script del campo de texto URL, y aadir este controlador:
en inputReturnKey mobBrowserSet "Pgina", "url", mobFieldGet ("URL", "texto") final inputReturnKey [ 96 ]
13. Pruebe con otra prueba, e ir a las tarjetas de correo electrnico y el explorador para verlos en accin.
Chapter 3
[ 97 ]
Qu ha pasado?
Hemos recreado las dos primeras pruebas de nuestra aplicacin a principios de banco de pruebas, pero ahora se ve mucho mejor! Tambin 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.
anchura y altura.
Chapter 3
[ 99 ]
1. 2. 3.
Crear un nuevo Mainstack. Aadir cuatro botones travs de la anchura de la tarjeta. Pon este controlador en el guin de la tarjeta:
en resizeStack newWidth, newHeight poner la anchura del botn 1 en buttonWidth put (newWidth - 4 * buttonWidth) / 5 en brecha de poner la parte superior del botn 1 en repeticin buttonTop con a = 1 a 4 fijar la parte superior de un botn para buttonTop establecer la izquierda del botn una brecha a + (a-1) * (brecha + buttonWidth) Fin de repeticin pasar resizeStack resizeStack final
4. 5. 6. 7. 8. 9.
Cambiar el tamao de la ventana de la tarjeta. Los botones deben extenderse uniformemente a travs de la tarjeta. Vaya a Ajustes aplicacin independiente y seleccione la opcin iOS. Asegrese de que los dispositivos compatibles incluyen los iPad. Establezca las opciones de orientacin para incluir las cuatro orientaciones. En el men de Desarrollo estableci el objetivo de prueba para ser el simulador de iPad, y hacer una prueba. En el simulador, elija Rotar a la izquierda o Girar a la derecha, en el men Hardware. y paisaje.
10. Los botones deben propagarse por toda la pantalla, tanto en orientacin vertical
Qu ha pasado?
Adems de hacer un ejemplo sencillo de cmo la resizeStack controlador puede ser usado, tambin hemos visto que los cambios de orientacin enviar el resizeStack mensaje.
[ 100 ]
Chapter 3
Las barras horizontales y verticales tenues se utilizan para seleccionar si desea que el control que reducirse o colocado en una cantidad fija o un familiar. Es decir, si un botn es de 100 pxeles desde la parte derecha de la ventana de la tarjeta, y se selecciona la posicin de ser una distancia fija, como cambiar el tamao de la ventana de la tarjeta del botn permanecer 100 pxeles por el lado de la derecha borde de la ventana. Si, por el contrario, se utiliza el valor relativo, y el botn es de 80 por ciento a travs de la ventana de la tarjeta, todava ser del 80 por ciento a travs de la ventana despus de haberlo cambiado de tamao.
[ 101 ]
El primer clic en una de esas barras har que sea de color rojo slido 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 botn 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 tambin muestra los ajustes de escala para el control.
1. 2. 3. 4.
Tomar los primeros cuatro botones y duplicar ellos, por poner otro juego de cuatro por debajo de los primeros. Seleccione el primero de los nuevos botones y en la seccin Geometra 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. Haga lo mismo con los otros tres botones. Trate de cambiar el tamao de la ventana de la tarjeta.
Qu ha pasado?
Ese fue un gran test rpido, y si todo ha ido bien, ver que cambiar el tamao de la ventana de la tarjeta es el posicionamiento de los cuatro primeros botones usando el resizeStack manejador hemos aadido, y posicionar el segundo conjunto de cuatro botones con el Gestor de geometra. Con la configuracin que hemos utilizado, los resultados deberan 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 energa en el Administrador de Geometra, y usted debe echar un vistazo a las otras habilidades que tiene desde el enlace de referencia que aparece al final de este captulo. Pero no resulta ser la mejor manera de lidiar con tamaos de pantalla mviles. Una vez ms, MobGUI al rescate!
[ 102 ]
Chapter 3
Layout MobGUI
usando
El enfoque de diseo utilizado por el Administrador de Geometra est orientada a las aplicaciones de escritorio, donde el usuario es muy probable que cambiar el tamao de la ventana a una cantidad desconocida. Con mvil aplicaciones, la disposicin slo cambia una vez que se carga la aplicacin y luego cada vez que cambia la orientacin. Cuando lo hace cambiar lo va a cambiar entre solo dos tamaos diferentes. Es una situacin mucho ms sencillo que cambiar el tamao de ventana de una aplicacin de escritorio a un tamao arbitrario. MobGUI utiliza un enfoque diferente para resolver el problema general, que tiene ventajas cuando se trata de aplicaciones mviles.
1. 2. 3. 4. 5. 6. 7. 8. 9.
Uso de la ventana MobGUI, establezca la ventana de la tarjeta para iPhone de tamao y Paisaje. Arrastre un control NavBar en la tarjeta. Arrastre un TabBar en la tarjeta. Haga clic en el botn de control MobGUI y seleccione 4, a continuacin, arrastre los cuatro botones en la barra de pestaas que acaba de agregar. Alt + doble clic en uno de esos botones para extenderse, y tambin ellos se mueven verticalmente a ser muy bien posicionado en contra de la barra de pestaas. Haga clic en la imagen en la ventana de iPhone MobGUI, y cambiar la orientacin de ser Retrato. Seleccione la barra de pestaas y sus botones, y moverlos a la parte inferior de la ventana de la tarjeta vertical. Utilice las teclas Alt + doble clic truco para hacer que la barra de pestaas, la barra de navegacin, y los botones, se extendieron por todo el ancho de la ventana de la tarjeta vertical.
[ 103 ]
10. Trate de hacer clic en el Retrato y Paisaje botones. El diseo debe cambiar a lo que haba
creado cuidadosamente.
[ 104 ]
Chapter 3
Qu ha pasado?
Este enfoque de MobGUI, donde se acuerda el diseo de cada uno de los tamaos de pantalla y orientaciones posibles, slo parece tener ms sentido para el uso mvil. El Administrador de Geometra es ciertamente ms potente y flexible, pero en realidad quiere cuidadosamente disposicin los arreglos diferentes para estar lo mejor posible para una pantalla de tamao dado, en lugar de depender de la aritmtica para reposicionar todo para usted.
Otras lecturas
Como se mencion anteriormente, el Gerente de Geometra tiene un montn de caractersticas de gran alcance. Vamos a estar pegado con el enfoque MobGUI, pero si usted tambin est interesado en las aplicaciones de escritorio, eche un vistazo a la leccin en esta pgina:
http://lessons.runrev.com/s/lessons/m/4067/l/19026-Geometry-Manager
[ 105 ]
Resumen
El truco con herramientas fciles de usar, tales como LiveCode, es crear aplicaciones mviles que los usuarios piensan fueron creados con la ms difcil 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 captulo hemos cubierto varias maneras de lograr ese objetivo:
Llamar a funciones nativas del sistema operativo, con comandos simples LiveCode Preparacin de imgenes que se utilizarn para los estados botn Haciendo OS botones especficos que buscan mediante la adicin de esas imgenes Creacin de iOS controles nativos buscan con MobGUI Trazado de la interfaz con el cdigo, el Administrador de Geometra y MobGUI
Hasta ahora, estos han sido pequeas pilas de prueba, para que nos calienta! Lo siguiente que vamos a ver la estructura de aplicacin general, y hacer una aplicacin de utilidad de pleno derecho.
[ 106 ]
Al crear una aplicacin LiveCode tenemos que pensar acerca de la estructura de la pila, su cdigo, y los datos que utiliza. En este captulo vamos a:
Mira las diversas formas que puede esperarse una pila estructurados Piensa que el cdigo debe ir Escribir y leer archivos de texto externos
Crear una aplicacin de bloc de notas-como para recordar interesantes archivos de los medios de comunicacin basados en Internet
No te olvides de descargar los archivos de ejemplo! Hay una gran cantidad de lneas de cdigo de este captulo. El cdigo se muestra junto con explicaciones acerca de cada funcin, y se poda construir algo que haca juego con el archivo de muestra correspondiente. Pero sera muy fcil cometer un error al transcribir los guiones, tanto en trminos de lo que el guin dice, y donde el script debe ser colocado. Puede ser ms seguro para estudiar los archivos de ejemplo y para leer la descripcin general aqu. Puede descargar el cdigo desde el sitio Packt.
Pila estructura
Hay dos aspectos en la forma de una pila puede ser estructurada. Uno tiene que ver con cmo los elementos de interfaz de usuario se organizan, y el otro es en qu lugar de la jerarqua de una pila se debe colocar el cdigo.
A veces las aplicaciones son totalmente claves determinadas, donde cada pantalla se puede ver que se crea utilizando el cdigo en el momento que se necesite. O tal vez ya estara expuesto los elementos que se guardan como recursos, y entonces el cdigo de carga esos recursos. En cualquier caso, la aplicacin en su conjunto podra tener lugar en el equivalente de una tarjeta LiveCode. Otra posibilidad sera disear 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 aplicacin debera en ese momento.
[ 100 ]
Chapter 4
En el primer caso se necesitara para ejecutar la aplicacin y pasar por las acciones de los usuarios con el fin de ver si el diseo es correcto, despus volver atrs y cambiar el cdigo o los recursos, y vuelva a intentarlo. En el segundo caso, es posible que se enfrentan a una gran cantidad de combinaciones de diseo. 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 cdigo para mostrar y ocultar otros elementos. El objetivo es tratar de ser eficiente, y no crear cdigo complejo para la colocacin de los elementos que se pueden hacer rpidamente con la mano, o usar un montn de imgenes cuando una pequea cantidad de cdigo podra obtener los mismos resultados.
Tambin puede hacer que las pilas de subprocesos, que a menudo se utilizan para mostrar ventanas de dilogo, 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 ]
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 podra argumentar que toda la accin que se llevar a cabo debe estar en la escritura del botn que has seleccionado. Sera ms fcil de editar todos los controladores implicados, y si usted necesita las mismas caractersticas en otra pila que slo tienes que copiar el botn de ancho. Sin embargo, si usted tena un nmero de esos botones en la pantalla, y era necesario hacer cambios, habra que hacerlo para todos ellos. Otro argumento sera vlido decir que todos los controladores estara en el nivel de la pila. Usted tendra entonces un lugar central para hacer cambios, pero usted tendra que hacer un montn de "if" para comprobar que el control haba 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 slo un aspecto particular de la tarea en cuestin. En el mundo de la Programacin Orientada a Objetos (OOP) es muy comn para extender este enfoque a un grado loco, con cientos, o incluso miles, de pequeos archivos que manejan cada una nfima parte de la aplicacin en general. No vamos a ir a cualquiera de estos dos extremos. En su lugar vamos a tratar de poner el cdigo en el nivel ms bajo que tiene que ser sin tener que duplicar el cdigo, ya que hacer controles adicionales que Necesita mismo Cdigo. 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 botn de men principal, y su funcin es la de llevar al usuario a la tarjeta de llamada principal. Teniendo esto como guin del botn parece tener sentido:
en mouseUp ir tarjeta "principal" mouseUp final
Parece ser el nivel ms bajo que el cdigo puede ser, y no vamos a ser lo duplicar, hay slo un botn del men principal. Pero, supongamos que desea realizar un seguimiento del progreso del usuario, el botn de men principal no se sabe nada de eso. Por lo tanto, podramos hacer esto en su lugar:
en mouseUp navTo "principal" fin mouseUp
[ 103 ]
saveNavState sera una funcin en algn 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 botn Men principal tiene que tener esta navTo manejador en sus guiones. Por lo tanto, vamos a poner el controlador en el mainstack guin pila. Con ella a ese nivel que puede manejar las llamadas de cualquier botn en cualquier tarjeta. El guin del botn de ayuda podran ser:
en mouseUp navTo "ayuda" fin mouseUp
Ir a la tarjeta de ayuda tambin guardar el estado del usuario. Ms adelante se podra aadir un efecto visual como saltar de un lugar a otro, y puede hacer que el cambio en navTo, en lugar de tener que ir a todos los distintos botones que hacen uso de la navTo manejador.
Consultar un URL
Muy a menudo aplicaciones basadas en web que cargar y guardar datos de secuencias de comandos del servidor. Eso se puede hacer con las aplicaciones LiveCode tambin. He aqu un ejemplo, cuando queremos saber cul 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
Quin sabe lo que va a encontrar cuando lo intento! Al igual que con cualquier tipo de llamadas a un servicio en lnea que hay una posibilidad de que puede tomar algn 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 sera cargar la URL con el fin de almacenar en cach, y luego mostrar los resultados cuando se almacena en cach. LiveCode sera capaz de hacer otras acciones mientras los datos estn siendo devueltos. Un script de botn se vera as:
en mouseUp descargar url "http://quote.yahoo.com/d/quotes.csv?s=GOOG&f=p" Direccin 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 ms responder estado final si terminar gotit
La gotit controlador tambin comprueba para ver si la llamada trabajado, y si no se mostrar lo que el error era. La descargar lnea es asegurarse de que usted no est leyendo el valor previamente almacenado en cach. Si se trata de un valor que slo se cambian con poca frecuencia, como con el precio de cierre de una accin, que generalmente se desactive slo la versin en cach cuando es probable que hayan cambiado. Al da siguiente mercado financiero en este caso.
[ 105 ]
Publicacin de datos puede trabajar de la misma manera. Un juego que enva tu puntuacin al servidor podra hacerlo de esta manera:
el nombre de usuario sendscore, la puntuacin 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 ubicacin. Si lo hace, convertir los espacios y otros caracteres especiales en los cdigos que seguramente llegarn a la URL de destino. Esta sera una variante ms segura:
el nombre de usuario sendscore, la puntuacin 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
Chapter 4
Los archivos detextoqueseincluyenenunaaplicacinmvil estarenlamismaubicacinquelaaplicacinens,ylos archivos detextoquedeseaescribirdebeestareneldocumentos carpeta de su aplicacin. Debido a que los caminos pueden parecer muy diferentes en iOS y Android, debemos utilizar los LiveCode specialFolderPath funcin para localizar estas carpetas. As es como un OpenStack manejador echara un vistazo para ver si las preferencias se han fijado, y si no, llevar al usuario a una pantalla de idioma de eleccin inicial:
en OpenStack langstrings globales poner "file:" & specialFolderPath ("documentos") & "/ prefs.txt" en prefsfile poner prefsfile url en prefstext prefstext si est vaco, - Prefs nunca se han establecido, por lo que ir a la opcin de idioma tarjeta go "eleccin de la lengua" tarjeta ms - 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 ubicacin que el archivo de la aplicacin, as como los archivos de soporte que ha incluido en la seccin Copiar archivos de la aplicacin autnoma de dilogo Configuracin (segn se describe en el tema Copiar archivos en el captulo 7), al guardar el autnomo aplicacin. En el ejemplo anterior habra archivos denominados englishstrings.txt, frenchstrings.txt, spanishstrings.txt, y as sucesivamente. Esta lnea:
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 ]
1. 2. 3.
Iniciar un nuevo Mainstack, con un nombre de LaunchStack. Gurdelo en un lugar distinto carpeta de su ordenador documentos. Inicie otra Mainstack nuevo, con un nombre de AppStack. Gurdelo junto a la primera pila. Coloca algo en la tarjeta de cada pila, por lo que es fcil reconocer cuando ests en esa pila. Por ejemplo, arrastre un botn en la tarjeta de la LaunchStack y el nombre de pila de una manera que hace que sea muy fcil saber dnde se encuentra. Hacer lo mismo para la AppStack apilar. Ponga esta OpenStack controlador en el guin de pila LaunchStack:
en OpenStack establecer el defaultFolder a specialFolderPath ("Documentos") si no hay un archivo "AppStack.livecode" luego [ 108 ]
4.
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 direccin URL ("binfile:" & appfile) End If ir apilar specialFolderPath ("Documentos") & "/ AppStack.livecode" responder el nombre de esta pila final OpenStack
5.
Antes de tratar las pilas en un dispositivo o en el simulador, los vamos a tratar como pilas de escritorio.
1. 2. 3. 4.
Busque en su Documentos carpeta, y no debera ser una AppStack.livecode presentar en el momento. Inicie LiveCode haciendo doble clic en el LaunchStack.livecode archivo. Si usted encuentra que LiveCode no se inicia este camino, asegrese de que ha asociado . Livecode documentos para ser abierto por LiveCode. Busque en su Documentos carpeta, y ahora debera ser una AppStack.livecode archivo, con un tiempo de creacin que coincide con la hora actual. Tambin debe ver que el camino hacia la AppStack es precisamente en su Documentos carpeta.
1. 2. 3. 4. 5.
Cierre la pila AppStack y descomentar la lnea specialFolderPath poner ... a partir de la secuencia de comandos de pila LaunchStack que ha introducido en el paso 4. Ir a Ajustes aplicacin independiente, y elija la seccin Copiar archivos. Haga clic en Agregar archivo ... y localizar y aadir el original AppStack.livecode pila (no el que se cre con la prueba anterior). Elija la seccin Android o iOS de los ajustes de aplicacin independiente, y marque la casilla para crear la aplicacin para esa plataforma. En el men Desarrollo, seleccione su destino de la prueba. Eso sera 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 actuacin AppStack, y un dilogo de alerta que muestra la ruta de acceso a la pila. La captura de pantalla siguiente muestra el cuadro de dilogo resultante en la ventana Simulador de iOS y Android en una tableta 4:
Qu ha pasado?
Hemos creado nuestra aplicacin para copiar la pila principal de la aplicacin 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 habrn visto que buscan caminos muy diferentes para la pila. LiveCode se encarga de encontrar las carpetas especiales para nosotros.
[ 111 ]
1. 2. 3. 4. 5.
Crear un nuevo Mainstack, establezca su nombre por el de WebScraper, y guardarlo en algn lugar. Usaremos MobGUI de nuevo, para hacer la vida ms fcil. Seleccione revMobGUI de la Desarrollo / Plugins submen. En estas instrucciones usaremos iPhone, retrato, pero no dude en utilizar el iPad o Android para un tamao de la tarjeta. Seleccione iPhone y Retrato en la ventana MobGUI, o sus opciones preferidas. Desactive la casilla de la barra de estado. Al igual que hizo en el momento de actuar - utilizando MobGUI recordar diseos para nosotros desde el captulo 3, la creacin de interfaces de usuario Utilice las herramientas MobGUI agregar una barra de navegacin (que se ajusta a la parte superior de la ventana de la tarjeta), un BG para establecer el buen patrn de fondo y una TabBar, que se ajustar a la parte inferior de la ventana de la tarjeta. Haga clic en el botn de control de ficha en la ventana MobGUI y seleccione 5 en el men desplegable. Arrastre los cinco botones en la tarjeta. Opcin / Alt + doble clic en uno de los cinco botones para hacer que se extendi a travs de la ventana de la tarjeta, y empujar hacia arriba o hacia abajo para descansar centrado en la barra de pestaas. Dar los cinco botones de los nombres BrowserButton, Links, Texto, Medios de comunicacin, y Keepers. Edite el script de cada botn, y en el Touchstart controlador, agregue un pasar Touchstart lnea, para dejar el controlador con este aspecto:
en Touchstart PID mobGUITouch el identificador largo de pasarme Touchstart [ 112 ]
6. 7. 8. 8.
9.
[ 113 ]
10. En el men Edicin, 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 bsicos
darle un nombre al grupo de Comn, y comprobar el comporta como un botn de fondo.
13. Establezca el nombre de la tarjeta para el explorador. 14. En la ventana MobGUI, haga clic en el cdigo preOpenCard botn Aadir a tarjeta guin. 15. Hacer una nueva tarjeta, el nombre Links, y haga clic en el botn Aadir preOpenCard
nuevo.
16. Haga lo mismo con otras tres cartas, para ser nombrado Texto, Medios
comunicacin, y Keepers.
de
18. Haga clic o toque en los botones de ficha cinco, y usted debera ver el nombre del
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. Adems, se emplearon el MobGUI uTabText y utext propiedades para establecer el nombre de la barra de navegacin para que coincida con el nombre de la tarjeta que haba saltado al. La init lnea entrar en su propio momento de escribir los guiones de la tarjeta.
[ 114 ]
Chapter 4
La tarjeta Browser
Ahora vamos a aadir 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 caractersticas de Android acuerdo con las caractersticas de iOS. Desafortunadamente, MobGUI no ha sido actualizado en la misma forma. El control del navegador nativo slo 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 versin para iOS y Android de las Notas de la versin en el men Ayuda LiveCode. Para nuestra aplicacin, sin embargo, slo necesitaremos unos pocos de sus habilidades.
[ 115 ]
1. 2. 3.
Arrastre el control de explorador en la ventana de la tarjeta. Es el que tiene la imagen que muestra la pgina de bsqueda de Google. Cambiar el tamao del control para completar la anchura de la tarjeta, y su altura para encajar entre la barra de pestaas y un poco por debajo de la barra de navegacin. Dale el nombre Browser.
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 aplicacin final, durante las horas que no estn en la tarjeta navegador.
4.
Arrastre un control de texto nativo en el espacio entre el control del navegador y la barra de navegacin. Nombre que url, y cambiar su tamao para ser casi tan ancho como la tarjeta, dejando espacio para un Go botn de la derecha.
5.
Arrastre un control Button en ese espacio, establezca su etiqueta Ve, y cambiar su tamao para verte bien. Puede Opcin / Alt + doble clic para que l mismo espacio una distancia estndar de la derecha de la ventana de la tarjeta.
6.
Edite el script del botn Go (que, como usted puede notar es en realidad un grupo), y aadir un par de lneas antes del final de la Touchstart controlador, as:
- Las dems lneas estn aqu establecer el uURL de grupo "Browser" para el grupo de utext "url" se centran en nada final touchEnd
7.
Ms adelante les estaremos enviando un init mensaje a las tarjetas. Para la tarjeta Browser podemos usar eso como una manera de restaurar la pgina web previamente elegido:
en init mundial gPageURL gPageURL si no est vaco, establecer el uURL de grupo "Browser" para gPageURL ms [ 116 ]
8.
Edite la secuencia de comandos de control del explorador. Vamos a utilizar el browserFinishedLoading mensaje para saber cundo hay que actualizar algunas variables y texto URL.
[ 117 ]
9.
Qu ha pasado?
Ajuste de la uURL del control del explorador a la utext del control de texto fue suficiente para que la funcin de navegador, pero algunos de lo que se hizo fue simplemente en preparacin 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 pgina web cdigo HTML en una variable global, y que ser necesaria cuando empezamos a extraer enlaces y multimedia de la pgina.
La tarjeta de Enlaces
Los enlaces, texto y tarjetas de medios se va a tomar la fuente de la pgina que se almacena en la variable global gPageHTML, y extraer los fragmentos de inters de la misma. Cmo va a hacer eso? Un enfoque comn al extraer un patrn conocido de texto es utilizar expresiones regulares, a menudo referido como regex o regexp. En su forma ms simple, es fcil de entender, pero puede llegar a ser muy compleja. Lea el artculo de Wikipedia si quieres comprendy en profundidad:
http://en.wikipedia.org/wiki/Regular_expression
Un problema sin embargo es que el uso de expresiones regulares para analizar el contenido HTML est mal visto. Hay decenas de artculos en lnea 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 anlisis de cdigo fuente HTML es exactamente lo que quiero hacer aqu, y una solucin al problema consiste en mezclar y combinar, mediante otro texto LiveCode de juego y capacidades de filtrado que hacer la mayora del trabajo. Aunque no es
[ 118 ]
exactamente regexp, LiveCode puede utilizar expresiones regulares en parte de su juego y funciones de filtrado, y son un poco ms fcil de entender que toda regla regexp. Por lo tanto, vamos a empezar con los ...
Chapter 4
[ 119 ]
En la bsqueda de vnculos haremos la suposicin de que el enlace est dentro de un a href etiqueta, pero an 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 pgina web ser el texto Vnculo frase que el usuario ver. Si el usuario coloca el cursor sobre el texto, el cursor cambiar a un cursor dedo sealador. Cuando el texto se hace clic en el vnculo, la pgina 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 localizacin de la tela misma podra ser written un enlace en la pgina:
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 ests en algn otro lugar en el sitio runrev.com. El tercero ser correcto mientras se encuentra en el nivel raz de runrev.com, y el ltimo ejemplo sera trabajar desde dentro de uno de los directorios de nivel de otros tubrculos en el sitio. Con regex puede crear una expresin extravagante que se ocupa de todas las variaciones posibles de cmo los vnculos se encuentran en el origen de la pgina, pero an as no nos dara las rutas completas que necesitamos. Toma las cosas con calma, podemos reducir la fuente de la pgina entera a un conjunto de lneas de a href entradas, y se extrae el URL de cada lnea, y finalmente tomar las variaciones anteriores y convertirlos en direcciones URL de ruta completo.
1. 2.
Crear un nuevo Mainstack. Gurdalo, slo para estar seguro! Aade un par de campos y un botn.
[ 120 ]
Chapter 4
3.
4.
Edite el script de pila, y crear una funcin para getLinks. Comience con lo que acaban de volver lo que se enviarn:
funcin getLinks pPageSource retorno pPageSource getLinks finales
5. 6.
Si se va a tratar de hacer clic en el botn en este punto, ver que la fuente de toda la pgina aparece en el campo 2. Vamos a utilizar la funcin de filtro, y eso necesita que el texto sea en lneas separadas. As que queremos que cada eslabn de estar en una lnea propia. La funcin replace puede hacer eso muy bien. Aadir estas dos lneas al script (antes de la volver lnea, por supuesto):
sustituir "/ a>" por "/> A" y de retorno en pPageSource reemplazar "<a" con retorno & "<a" en pPageSource
7. 8.
Intente hacer clic en el botn. Los dos campos se ver mucho el mismo, pero las lneas que tienen un vnculo en ellos estarn en una lnea propia. Aada una lnea para filtrar la lista tal como est, para reducirlo a slo los que tienen vnculos en ellos:
filtro pPageSource con "* a href * / a>"
9.
El "*" caracteres son caracteres comodn, por lo que la lista se reducen a lneas que contienen tanto a href y / A>. Pruebe el botn de nuevo. 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. Aada las siguientes lneas:
establecer el itemdelimiter citar repetir con a = 1 para el nmero de lneas en pPageSource ponen elemento 2 de lnea de una de pPageSource en lnea de un pPageSource Fin de repeticin
10. Ahora vers que hay lneas slo con los enlaces en ellos, pero todava incluyen la
11. Si ahora hace clic en el botn que debe obtener una lista de slo la parte URL de
[ 121 ]
cada lnea. Pero ntese que la mayor parte de los enlaces de comenzar con /, y no
http.
[ 122 ]
Chapter 4
12. Realizar una nueva funcin en el script de pila que va a cambiar los enlaces para ser la
ruta completa:
funcin getPath pPageURL, pLinkURL final getPath
13. Ahora aadir el cdigo 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 pgina principal en una
variable global, gPageURL. Para el caso en que el vnculo es relativo root (que comienza con "/") queremos combinar la ubicacin 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 ms
15. Cuando ese primer carcter no es "/", puede comenzar con ".. /" para aumentar un
nivel en la estructura de directorios. Borrado de la ltima parte de la URL de la pgina 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 ms
16. En los dems casos se combina la URL de la pgina 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 vaca, por lo que
volver "" getPath final
esta direccin URL extrao vnculo estructurado no se enciende para confundirnos ms tarde:
[ 123 ]
funcionar para utilizar el getPath funcin que necesitamos para realizar un cambio en la secuencia de comandos se muestra en el paso 10:
repetir con a = 1 para el nmero de lneas en pPageSource poner getPath (gPageURL, punto 2 de la lnea A de pPageSource) en una lnea de pPageSource Fin de repeticin
Qu ha pasado?
En las etapas que hemos desarrollado una funcin que puede encontrar los enlaces en el texto fuente de una pgina web, terminando con un conjunto de direcciones URL de ruta completo que podemos presentar al usuario.
Si trata del botn, ver una lista de 12 URLs ruta completa en el segundo campo. Si funciona correctamente, copie las dos funciones de la pila y la lnea de declaracin global, y pegarlas en el script de pila de la pila WebScraper.
Chapter 4
1.
[ 125 ]
2. 3.
En la ventana MobGUI, haga clic en el botn Aadir preOpenCard guin. Edite el script tarjeta y aadir estas variables globales y init funcin:
gPageHTML mundial, gLinks en init si la plataforma es "iphone" o es la plataforma "android" y luego poner getLinks (gPageHTML) en gLinks si el nmero de lneas en gLinks = 0, entonces contesta "No hay enlaces en esta pgina!" ms mobilePick gLinks, 0 si el resultado> 0 entonces poner el resultado en tLinkLine poner lnea 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. 5.
el
Es una prueba de la aplicacin. En el simulador de iPhone o dispositivo Android, si eso es lo que est utilizando, Cambiar URL a http://www.runrev.com/, y seleccione el botn Go. Cuando se carga la pgina, seleccione el botn ficha Vnculos. Ahora debera estar buscando en la lista de 12 enlaces, slo que esta vez se presentan en una lista selector nativo. Seleccione el enlace de tercero en la lista y, a continuacin, Hecho. Usted debe ser llevado de vuelta a la tarjeta del navegador, con la pgina de Facebook de RunRev cargado.
6. 7. 8. 9.
Qu ha pasado?
El guin tarjeta entramos hace el mismo trabajo que el botn 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 ]
[ 127 ]
Los parmetros necesarios de esa funcin es una lista de elementos que mostrar, y la posicin de ndice de la de seleccionar. Al participar en 0 no est en efecto no hay ningn elemento seleccionado. El resultado que regresa del selector es la posicin de ndice del elemento seleccionado, y podemos usarlo para buscar la lnea correspondiente en la variable gLinks. Las lneas restantes nos llevar de vuelta a la tarjeta del navegador, establecer la direccin URL a cargar, y tambin asegurarse de que el botn de tabulacin BrowserButton est resaltado.
La tarjeta de Texto
Hacer el trabajo de la tarjeta texto ser mucho ms sencillo, pero incluir una lnea regular expresin increblemente complejo, que figura en esta pgina web:
http://stackoverflow.com/questions/3951485/regex-extracting-readableno-cdigo-texto-y-urls-de-html-documentos
1. 2.
Duplicar el botn que hizo al extraer enlaces. Cambiar la llamada a la funcin getLinks decir getText - De lo contrario la secuencia de comandos puede seguir siendo el mismo. Edite el script de la pila de prueba y agregar esta funcin:
funcin getText pPageSource poner replaceText (pPageSource "(: <(P <tag> guin | 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. 4. 5.
Intente hacer clic en el botn que acaba de hacer. Usted debe ver a su segundo campo llenan slo las partes del texto de la pgina web. Copie la funcin y volver a la secuencia de comandos de pila WebScraper. Pegue la funcin all.
Ir a la tarjeta de texto de la pila, y desde la ventana MobGUI arrastrar un texto de lneas mltiples
[ 128 ]
Chapter 4
6.
Cambiar el tamao del control para rellenar el rea entre la barra de navegacin y el TabBar.
[ 129 ]
Chapter 4
7. 8.
En las propiedades de la ventana MobGUI para el control, desactive la casilla editable. Edite el script de tarjetas, y aade este init funcin:
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.
10. En la tarjeta del navegador, cambiar la direccin URL de google.com para runrev.com y
pulse Go.
11. Pulse el botn de tabulacin del texto en la parte inferior. 12. Ahora debera estar en la tarjeta de texto, y viendo los elementos de texto de la pgina Web que
se muestra en un campo de texto desplazable nativo.
Qu ha pasado?
Esa expresin regular enormemente larga corriendo a travs de la fuente de la pgina web y eliminar cualquier cosa que fuera guin, el estilo, o simplemente informacin de la etiqueta, dejando solo las partes del texto. Pero eso lo deja con un montn de personajes de repuesto de salto de lnea y caracteres de tabulacin, que nos fuimos a eliminar con la funcin replace LiveCode. El texto final no sea perfecto, pero puede utilizar las funciones estndar de texto para mviles para copiar partes de l para su uso en otras aplicaciones.
1. 2.
Usted puede tambin dirigirse a la pila de prueba! Hacer un tercer botn mediante la duplicacin de una de las otras dos, y cambiar el
[ 131 ]
Chapter 4
3.
4.
Haga clic en el botn, y usted debera ver una lista de las rutas completas a las diversas imgenes de la pgina web.
Qu ha pasado?
El enfoque tortuoso consista en encontrar en cualquier lugar que cualquier medio de comunicacin de inters fue mencionado y aadiendo un asterisco y carcter de retorno con
[ 132 ]
el fin de asegurarse de que el enlace se puede identificar fcilmente, y al final de una lnea nica. Entonces cada una de estas lneas se envi a otra funcin, removeLeaders, para eliminar cualquier otro texto que fue anteriormente en la lnea de que el inicio del enlace. Finalmente, el mismo getPath funcin que usamos cuando los enlaces de extraccin 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.
1. 2.
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. Aqu est la carta Media init funcin, 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 nmero de lneas en gMediaList = 0, entonces contesta "No hay ningn medio en esta pgina!" ms establecer el itemdelimiter a "/" puesto vaco en tMediaNames repetir con a = 1 para el nmero de lneas en gMediaList poner el ltimo elemento de una lnea de gMediaList en lnea de un de tMediaNames Fin de repeticin mobilePick tMediaNames, 1 si el resultado> 0 entonces poner el resultado en tMediaLine showMedia lnea tMediaLine de final si gMediaList End If End If terminar init
3.
A diferencia de los enlaces, construimos una lista de slo la parte del nombre de archivo de la URL, para mostrar en un selector natural, y cuando se ha
[ 134 ]
seleccionado algo que llamamos un showMedia funcin del guin pila. Edite el script de pila.
4.
[ 135 ]
Chapter 4
5.
6. 7. 8. 9.
Prueba la aplicacin. Usted puede comenzar con la pgina google.com, pulse el botn ficha Medios para ver una lista de las imgenes utilizadas en esa pgina. Seleccione una imagen de la lista y pulse Hecho. 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 vdeo en la pgina
principal. Pulse sobre uno de ellos, para que pueda ver el reproductor de vdeo de gran tamao. Pero no se juega!
[ 136 ]
12. Pulse el botn ficha Medios, para ver una lista de todos los medios de comunicacin en
esa pgina.
14. Seleccione esa opcin y pulse Hecho. El video debe cargar y reproducir en la tarjeta. 15. Utilice el botn Hecho el controlador de vdeo cuando haya terminado de ver el
video, para volver a la tarjeta de memoria.
16. Puede presionar el botn 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 botn ficha Soportes para volver a la tarjeta de memoria, con la lista de
todos los medios de comunicacin en esa pgina, que en este caso ser principalmente archivos MP3. en el mismo jugador que el vdeo que se reproduce in
19. Seleccione uno de los archivos MP3 de la lista, y pulse Hecho. El MP3 deben jugar
Qu ha pasado?
En este ejemplo hemos hecho uso de tanto un control LiveCode estndar, la imagen, y tambin un control nativo, el reproductor de vdeo. LiveCode se encarga de la puesta en marcha del jugador, y con la muy sencillo jugar videoname vdeo sintaxis, hemos sido capaces de invocar el jugador nativo. Era capaz de reproducir tanto archivos de vdeo y audio.
[ 137 ]
Chapter 4
1.
Ir a la tarjeta de Guardianes, y crear un botn para MobGUI Anterior, Siguiente y Play Media. Hacer que un campo LiveCode, y el nombre mediaURL. Ahora debera tener algo parecido a esto:
2.
[ 138 ]
3.
4. 5. 6.
Seleccione los cuatro controles y agruparlos. Marque la casilla que dice comportarse como un fondo. Asigne un nombre al grupo como keeperbuttons. Edite el script del nuevo grupo. Aadir 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" ms esconder grupo "Media Play" showMedia campo "mediaURL" End If End actualizaci n
7. 8. 9.
Ahora tenemos que volver atrs y aadir algunas cosas a la tarjeta de memoria. Vaya a la tarjeta de memoria, y agregue un botn MobGUI. Establezca el nombre y la etiqueta al Mantenga Media. Un truco es que los medios de comunicacin jugarn pantalla completa en pantallas ms pequeas, y por el momento se ve la Torre del Homenaje botn Media el video ya ha desaparecido. Podemos resolver esto de guardar la URL de la ltima partida que figure medios de comunicacin en una variable global. funcin para que las lneas
si el resultado> 0 entonces poner el resultado en tMediaLine poner tMediaLine lnea de gMediaList en gLastMedia showMedia gLastMedia End If [ 139 ]
Chapter 4
variable.
[ 140 ]
en Touchstart PID mundial gLastMedia mobGUITouch el identificador largo de la ltima carta que me vaya si el campo "mediaURL" no est vaco, la nueva tarjeta End If gLastMedia poner en el campo "mediaURL" ahorrar pila "WebScraper" enviar "refresh" para agrupar Touchstart fin "keeperbuttons"
13. Prueba la aplicacin. Utilice la tarjeta de explorador para cargar una pgina con un 14. Seleccione cualquier elemento, seguido de Hecho.
montn de imgenes, vdeos o sonidos en l, y vaya a la tarjeta de memoria para ver los listados.
15. Si te gusta la imagen, sonido o video, use el botn Mantener Media para ir al final
de la URL de la pila para los medios de comunicacin para ser salvos.
16. Elegir ms bits de los medios de comunicacin, y mantenerlos. 17. Vaya a la seccin Keepers y utilizar los botones Siguiente y Anterior para navegar a
travs de los elementos que mantienen.
Qu ha pasado?
Hemos aadido la ltima caracterstica de nuestra aplicacin, un juego de cartas donde se puede ir a ver los trozos de papel que se opt por conservar.
lista de las pginas para que usted pueda elegir. El que usted elija puede cargar el control de explorador con la pgina deseada. Todos los pasos para hacer esto se trata en la seccin de tarjetas enlace de arriba.
Chapter 4
[ 142 ]
Y ahora qu?
Es muy cierto que si usted sigue cuidadosamente todos los pasos de este captulo, y en efecto, que todos los pasos eran perfectos, todava no se tiene una aplicacin 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 diseador grfico! Caracterstica en cuanto a que sera bueno que las imgenes que mantienen podra hacer zoom y panormicas.
Resumen
Algo de lo que hemos cubierto aqu es menos glamorosa, sobre todo acerca del procesamiento de texto HTML, pero s que tambin utilizan una serie de caractersticas mviles, incluyendo:
Realizacin y control de un navegador web El uso de un selector nativo para presentar listas
Creacin de un campo de desplazamiento nativo, que tiene todas las capacidades normales del sistema operativo especficos
El siguiente captulo es casi en su totalidad sobre cmo tratar con los grficos, as que nos aseguraremos de utilizar alguna imagen manipulando los gestos, y se poda volver a la aplicacin WebScraper ms tarde para agregar las mismas caractersticas que las tarjetas de Guardianes.
[ 143 ]
Chapter 4
[ 144 ]
LiveCode no es, naturalmente, una potencia de grficos, 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 pxeles de una imagen como una serie de caracteres de un solo byte para representar los valores de rojo, verde y azul de cada pxel. La manipulacin de una imagen final es bastante flexible, pero con el fin de crear algo en la lnea de un rompecabezas que tenemos que entender el formato de datos de imgenes. En este captulo se incluirn 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 deteccin de colisiones
Crear una aplicacin de rompecabezas que se aprovecha de algunas funciones del dispositivo mvil
Se podra, de hecho, comenzar esa lnea con var pixelcolor: uint, pero aqu estamos viendo las principales diferencias, y no las rarezas de tener un lenguaje de programacin fuertemente tipado! En Director, que, al igual LiveCode, utiliza variables basadas en 1, debe decir:
pixelcolor imagevariable.getPixel = (20,15)
Una vez ms no hay necesidad de escribir variable, o incluso un punto y coma al final de la lnea. A pesar de que una digresin, Flash tambin no necesita el punto y coma al final, por lo menos, usted no tiene que escribirla usted mismo. Flash saba lo que quera decir! Volviendo al punto ... En LiveCode cada pxel 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 carcter no funciona bien. Por lo tanto, es necesario convertir el valor de carcter en un valor numrico antes de hacer uso de ella. El problema bsico es que aunque el valor numrico se almacena en una variable, cuando se llega a hacer clculos sobre el mismo LiveCode querr trabajar en aritmtica 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 funcin.
As que por qu no una variable de caracteres como ceros, usted pregunta! Pues bien, en los primeros das de las computadoras personales del lenguaje de programacin predominante fue Pascal. En Pascal una variable que contiene una cadena literal necesitaba tener una manera de saber cunto 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 das Se crea ms probable de como tanto como cualquiera necesitara siempre! En la vida real, sin embargo, las cadenas pueden ser de ms de 255 caracteres. Este apartado slo es ms de 900 caracteres de longitud. Para solucionar este problema el lenguaje de programacin C utiliza un cero para indicar el final de una cadena. Usted podra tener un milln de caracteres en una fila, sin embargo, slo el ltimo sera 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 numrico, tan pronto como nos sea posible.
[ 132 ]
Chapter 5
Adems de la singularidad de cada pxel se almacena como cuatro bytes de informacin, tampoco hay sentido de filas y columnas. Todos los pxeles de una imagen tiene su fin cuatro bytes para terminar, hay que hacer un clculo para saber en qu parte de los datos del pxel que est buscando se encuentra. Si se tiene en cuenta cmo 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 pxel de la imagen. LiveCode no le permite acceder a mapas de bits en esa forma. De ah la necesidad de hacer un clculo. As es como el pxel ejemplo anterior puede ser recuperada en LiveCode, si lo quera como un 24 - bit de valor:
poner getPixel ("imagen de prueba", 20,15) en pixelcolor funcin 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 ms 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 dems idiomas que usted tiene que tomar medidas adicionales para extraer esos valores. Los pasos adicionales necesarios para que el nmero devuelto es un valor de 24-bit RGB no son gran cosa, ya que LiveCode se extiende fcilmente por sus propias funciones. Si usted necesita el valor de 24 bits, utilice la funcin anterior y se le ha aadido un getPixel funcionar a la lengua LiveCode. Usted todava tiene que hacer los clculos para obtener slo el valor de rojo. Tal vez algn da LiveCode han construido en getPixel funcin que funciona ms rpido que su propia funcin. El nmero de 24-bit regres aqu es en realidad representan con tres cifras decimales, no como un 24-bit valor binario, pero todava se conoce generalmente como "bit 24".
Una posibilidad es que el valor no sirven bien a su propsito suficiente. Cuando se habla de transparencia alfa a veces significa que sea transparente, como podra ser el caso en una imagen GIF. Otras veces puede significar translcido, donde es parcialmente transparente. Para resolver la ambigedad 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 todava tiene toda la final filas a fin, y usted todava tiene que hacer el clculo para encontrar donde el valor de un pxel dado alfa se almacena. Con maskData se obtiene un conjunto de valores para cada uno de los pxeles. Para cualquier valor distinto de 0, el pxel es visible. Con alphaData se obtiene un conjunto de valores que representan la opacidad de los pxeles. 0 sera totalmente transparente, 255 sera totalmente opaco, y los valores intermedios ser translcido. 128 sera de 50% de opacidad. Ms adelante en este captulo 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 mscara.
su lugar, usaremos los valores de la imagen, la mscara, 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!
1.
Usaremos la misma pila para ilustrar varias cosas, y al final podemos atrevernos a probar en un dispositivo mvil!
Chapter 5
[ 135 ]
2. 3.
Hacer la pila del tamao de su dispositivo ms grande prueba. O simplemente tratar de 1024x768 si vamos a usar el simulador de iPad. En el men Archivo, seleccione Importar como Control / Image y seleccionar cualquier archivo de imagen pequea que tiene, para colocarlo en la esquina del lado superior izquierdo de la ventana de la tarjeta. El ejemplo que se muestra a continuacin utiliza una imagen de logotipo LiveCode. Coloque un objeto grfico nuevo al lado de la imagen. Va a estar mostrando un solo color, por lo que slo hacen lo suficientemente grande para ver fcilmente el color. Nombre que muestra. Grficos tienen un valor por defecto configurado para mostrar un cuadro vaco, por lo que escribir esto en el cuadro de mensaje para que se llenar en:
establecer el relleno de un grfico en true
4. 5.
6.
7. 8.
Tenga en cuenta que las dos lneas estn comentadas. LiveCode slo se quejara si seguimos pidiendo getPixel, antes de haber creado esa funcin! Edite el script de pila. Aadir la getPixel funcin, que es muy parecido al que se muestra en la seccin de formato de datos de imagen al principio de este captulo:
funcin 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 guin de imgenes, elimine las dos lneas. Empiece apuntando a la imagen, y usted debera ver la muestra de color para que coincida con el cambio grfico del pxel bajo el cursor
[ 136 ]
Chapter 5
Qu ha pasado?
Hicimos un caso ejemplo muy simple de utilizar el color de un pxel en una imagen, en este caso para colorear una muestra. Como configurar el backgroundColor de un grfico requiere redvalue, greenvalue, bluevalue, no lo necesitamos para convertir los valores de la imagen a un nmero de 24-bit, y el getPixel funcin podra devolver Tred, tGreen,
tBlue.
Ahora, no hay realmente ninguna ventaja a la forma en que lo hicimos en comparacin con el construido en el mouseColor funcin. Pero por lo menos nos dio la getPixel funcionar una prueba!
1.
Hacer un nuevo campo llamado estados. Encuentra una lista alfabtica de los 50 estados de EE.UU. para pegar en el campo. O bien, escriba en ellos!
[ 137 ]
2.
Hacer otro campo, ajuste el tamao del texto a ser 24, y el tamao del campo para ser lo suficientemente amplia como para "New Hampshire" para encajar (slo las palabras, no en todo el estado!). Nombre del campo como Estado.
[ 138 ]
Chapter 5
3. 4. 5.
Si usted tiene Adobe Illustrator, abra el archivo SVG. Si no es as, abrirlo con GIMP. En orden alfabtico, llene en cada estado con un color donde los valores de rojo, verde y azul que coincida con el nmero de lnea de ese estado + 100. Estamos aadiendo 100 para que los tonos de gris que veremos no es tan negro.
Contine a travs 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 tamao del mapa de manera que se llene un tercio de la ventana de la pila y elija Exportar.
[ 139 ]
Los ajustes de color del perfil LiveCode trata a los mapas de bits de un modo que ignora la informacin de perfiles de color en la imagen, y eso arruinara lo que estamos tratando de hacer. Al exportar una imagen ver si hay una opcin para configurar el perfil de color para genericRGB. Si no la hay, a continuacin, 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 importacin, el tipo establecer el screengamma a 2,23 en el cuadro de mensaje y pulse Intro. Esto establecer LiveCode a la configuracin correcta para asegurarse de que el valores de color vienen en forma correcta.
7. 8. 9.
Si est utilizando Illustrator, establecer el fondo para ser el blanco, y el ser anti-aliasing Ninguno. Con GIMP, asegrese de que el PNG se guarda sin un canal alfa. Escriba la lnea seguida por la tecla Enter en el cuadro de mensaje:
establecer el screengamma a 2,23
para
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 slo hay que fijarse en el valor del canal rojo para el pxel 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 funcin para obtener slo la parte roja de los datos, se reutiliza la existente getPixel funcin, pero slo entonces se dio cuenta del primer elemento de la funcin devuelta. Ese nmero, despus de restar los 100 que hemos aadido para hacer las sombras No seas tan negro, se utiliz como valor de bsqueda para obtener el nombre del estado correspondiente.
[ 140 ]
Chapter 5
1.
Utilizando las herramientas LiveCode dibujar, aadir un montn de objetos para la ImageDataTest apilar. Estos van a ser los obstculos en la pista de carreras.
[ 141 ]
2. 3.
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
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. 5. 6. 7. 8. 9.
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. En la ventana de su editor de imgenes de Capas, duplicar la capa inicial. Hacer una nueva capa transparente, bajo la capa de la imagen duplicada. Eliminar la capa original. Use Varita mgica 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. Invertir la seleccin, y la rellenamos con un color oscuro (el color no importa, es slo para que podamos ver dnde estn los agujeros son). exterior de la imagen. La siguiente captura de pantalla muestra cmo se ve la tarjeta, y cmo la imagen de la instantnea debe ser por ahora:
10. Tmese su tiempo para llenar los vacos pequeos. Adems, colocar un borde grueso alrededor del
11. Combinar las capas del documento y, a continuacin, seleccione Guardar. 12. Volver a LiveCode, haga clic en el botn Actualizar, y la imagen de la instantnea se
actualizar para reflejar los cambios realizados.
de fondo. Ms adelante vamos a configurar la imagen de estar detrs de otros objetos, pero por ahora vamos a dejarlo encima de todo lo dems.
[ 143 ]
Chapter 5
Qu ha pasado?
Acabamos de hacer un hipdromo muy extrao mirando! En un juego de carreras real de arriba hacia abajo con cuidado diseara un hipdromo bonita, y hacer un duplicado de la imagen que desea utilizar para la deteccin de colisiones. En el duplicado que borrara 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 veran el hipdromo bonita, y debajo sera la versin duplicada de color plano que se utiliza para la deteccin de colisiones. Ahora tenemos un coche que se conduce por el campo que hemos hecho.
[ 141 ]
Tuyo puede ser incluso mejor que eso, si te gusta! Gurdelo como un archivo PNG de 24-bit que tiene la transparencia. Ok, enciendan sus motores ...
1. 2. 3.
Importe la imagen como un control, y colocarlo en algn lugar de la zona blanca de la ImageDataTests apilar. Nombre que car1. 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. Podra decirse que el camino correcto orientado objeto de proceder sera colocar algunas funciones en las imgenes, y algunos en el guin carta o grupo, pero por razones de rendimiento que vamos a poner todo en el guin de la pila. Abra el script pila. Aada una lnea para las variables globales que vamos a necesitar:
gBackdropMaskData mundial, gMaskWidth, gSpeeds, gMovingCars, gMaskWidth
4. 5.
Vamos a aadir un botn arrancar / parar pronto, lo que se llama a una funcin para alternar si los vehculos estn en movimiento o no. Agregue la funcin de palanca en la escritura de pila:
en startStopCars gMovingCars si es cierto, entonces poner en falso gMovingCars ms poner el maskData de imagen "teln de fondo" en gBackdropMaskData poner el ancho de la imagen de "teln 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 imgenes del coche. Tambin se fijar la direccin inicial a cero, as como la colocacin del vehculo en una ubicacin conocida en el rea blanca (200.200 en este caso). Aadir la setSpeeds controlador a la secuencia de comandos de pila, por debajo de la startStopCars handler:
en setSpeeds puesto vaco en la repeticin 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 lnea de un gSpeeds poner 0 en el punto 2 de la lnea de un gSpeeds establecer la locomotora de carname imagen a 200.200 ms
[ 143 ]
Making a Jigsaw Puzzle Application la salida final de la repeticin si terminar setSpeeds final de repeticin
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 slido. Aadir esta hitBarrier funcin:
funcin 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 guin de pila:
en moveCars poner la pantalla de tiempo largo mechn repetir con un 100 = 1 a poner "car" y en un 0,1 carname poner en anglechange si hay un carname imagen a continuacin, poner 0 en mostrador repetir mientras contador <20 agregar 1 para contrarrestar poner punto 1 de la lnea de un gSpeeds en tCarSpeed poner punto 2 de la lnea 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 lnea A de gSpeeds poner anglechange * -1 * ((20 - random (10)) / 10) en anglechange poner max (1, tCarSpeed - .1) En el punto 1 de la lnea de un gSpeeds
[ 145 ]
Making a Jigsaw Puzzle Application ms poner min (3, tCarSpeed + .05) en el punto 1 de la lnea de un gSpeeds la salida final de la repeticin si Fin de repeticin establecer la locomotora de carname imagen con el punto 1 de la locomotora de carname imagen + (tLookAheadXtem 1 de la locomotora de la imagen carname) / 10, artculo 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 lnea de un gSpeeds / PI * 180 ms la salida final de la repeticin si poner fin a la repeticin de desbloqueo de pantalla gMovingCars si es verdad entonces enviar moveCars a esta tarjeta en 2 ticks moveCars finales
Anticolisin Tmese un momento para mirar a la moveCars manejador. Qu est haciendo? Usted sin duda ha odo hablar de la deteccin de colisiones, aqu es donde usted tiene el cdigo que reconoce cuando un objeto ha colisionado con otro objeto, o en la pared, tal vez. Usted podra desencadenar una explosin, colisin 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 vehculo, 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 direccin en la que el coche se dirige, en repetidas ocasiones, hasta que un fuerte sentido de avance se encuentra.
9.
Agregue un botn de Start / Stop Coches a la ventana de la tarjeta, y establecer su secuencia de comandos a ser:
en startStopCars mouseUp [ 146 ]
10. Seleccione la imagen de fondo y elija Enviar al fondo del men Objeto. 11. Podra ser una buena idea hacer clic en Save!
[ 147 ]
12. Haga clic en la opcin Ejecutar / Examinar herramienta, y luego en el botn Start /
Stop Cars, para ver la unidad de coches alrededor de la interfaz. La siguiente captura de pantalla muestra cmo se ve cuando 20 coches se estn 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. Adems, apunta a los diferentes estados de los EE.UU. debe cambiar el texto en el estado campo que ha creado.
Qu ha pasado?
Despus de haber utilizado imageData del para implementar un selector de color, y para actuar como botn varias reas, se procedi a utilizar la maskData de la imagen como un mapa de colisin. Hay una gran poco de aritmtica detrs de hacer que los coches se mueven de manera inteligente, y se poda ir a cambiar algunos de los nmeros para obtener un comportamiento diferente. O usted podra tomar un descanso, y preprate para hacer un rompecabezas!
[ 148 ]
Chapter 5
Ir a pedazos ...
La tcnica 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 pxeles reales con una imagen de nosotros mismos. Lo primero que necesitamos es, pues, algunos archivos PNG. Si usted hace una aplicacin mvil 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 imgenes con ms de alta calidad que le hahe comprado. Aqu estamos utilizando una imagen de vista previa de http://depositphotos.com/ que tambin vende versiones ms 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 pequeos espacios entre las piezas, pero por lo menos es muy rpido de preparar las imgenes que va a necesitar.
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. 2. 3. 4. 5. 6. 7.
Hacer una Mainstack nuevo a 1024x768 (o el tamao de su dispositivo de tableta). Nombre de la pila rompecabezas, y establecer el ttulo a Jigsaw Puzzle. Hacer un Guardar. Abra la imagen del rompecabezas entero en su editor de imgenes. Utilice la herramienta Varita mgica para recoger la parte interior de la pieza lateral superior izquierdo del rompecabezas. Rellene que con un color que hace que sea fcil de detectar posibles lagunas restantes. Copiar y pegar en un documento nuevo (con un fondo transparente) que es el tamao de la pieza que ha copiado. Repare las lagunas, con la herramienta pincel establece en el mismo color de relleno. Guardar como PNG (con Photoshop que se Guardar para Web y dispositivos, 24 bits, con transparencia). Utilice un esquema de nombres que le ayudarn a identificar fcilmente las imgenes. Por ejemplo, tlcorner.png, p1.png, trcorner.png, y as sucesivamente. Proceder a travs 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 ]
8.
9.
10. En la pila rompecabezas, vaya a Archivo | Importar como Control | Imagen, e importar
todas las 14 imgenes.
[ 152 ]
Chapter 5
12. Nombra las imgenes en una cuadrcula como la moda. La parte superior izquierda de la
pieza de mano se denominara p 1 1, la parte superior derecha pieza de borde lateral se denominara p 11 1 (Haba 11x8 piezas en la zona de 900x662), y la parte inferior derecha de la pieza lateral tendra un nombre de p 11 8.
13. Seleccione todas las piezas y agruparlas. Asigne un nombre al grupo como piezas. 14. Hacer un botn, con el nombre de fromcamera
en mouseUp LoadImage "cmara" fin mouseUp
y una etiqueta de Tomar una foto. Establecer las secuencias de comandos de botones en el siguiente:
[ 153 ]
[ 154 ]
Chapter 5
16. Edite el script de la tarjeta y aadir estas variables y funciones globales, que se
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
inicializan los valores que sern necesarios por las otras funciones que vamos a hacer:
controlador, que los dos botones a llamar para obtener una imagen de la cmara del usuario o lbum de fotos:
en loadImage cameratype puzzlewidth si est vaca, entonces SetValues si hay una imagen "original" y luego borrar la imagen "original" mobilePickPhoto cameratype, puzzlewidth, puzzleheight si el resultado est vaca, entonces bloquear la pantalla establecer el nombre de la imagen del nmero de imgenes 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 - Dispersin de desbloqueo de pantalla ms contestar el resultado final si final loadImage [ 155 ]
18. La makepuzzle
y dispersin lneas estn comentadas por el momento, de modo que usted puede probar las funciones creadas hasta el momento. efectos grficos de la paleta Inspector.
19. Ajuste los botones para tener una sombra, utilizando las opciones en el panel de
[ 156 ]
Chapter 5
Qu ha pasado?
Las piezas del rompecabezas estn en su lugar, y nombrado de manera que podamos aprovechar al manipularlos. Si usted ve a Ajustes aplicacin independiente y seleccionar iOS o Android, puede dar a la aplicacin un intento.
La creacin de algunas imgenes de prueba. Si utiliza el simulador de iPad que no ser capaz de probar la obtencin de una imagen de la cmara, y al principio no tiene ninguna imagen en la foto biblioteca. Para resolver esto, arrastrar imgenes desde el Finder hasta la ventana del simulador, y la imagen se mostrar en una ventana de Safari. A continuacin, puede hacer clic y mantenga presionado en la imagen y selecciona Guardar. De esa manera usted puede agregar algunas imgenes a la biblioteca con el fin de seleccionar uno de ellos como imagen para el puzzle.
Cuando se LiveCode una imagen desde el dispositivo mvil, ya sea desde la cmara 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, slo su imageData del, y as en la loadImage controlador de la imagen se hace del mismo tamao que el grupo de piezas de puzzle, el imageData del se almacena en la variable global originalImage, y la propia imagen es eliminada. A continuacin, vamos a transferir la imagen elegida en las piezas del rompecabezas.
1.
2.
El manejador makepuzzle pasar por cada una de las piezas del rompecabezas y
[ 151 ]
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 vaco 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 despus TempImage Fin de repeticin establecer el imageData del piecename de imagen para makepiece final TempImage
3.
En el anterior imageData del pruebas de que slo estbamos interesados en un pxel a la vez, pero aqu queremos un montn de filas de datos. La aritmtica, ((Y
+ dy-1) * puzzlewidth + Dx) * 4 en sourcestart, rpidamente saca toda una fila de pxeles a la vez. Las filas se form una nueva variable, TempImage, que finalmente se transfiere a la
4.
Despus de que las piezas tienen su rectngulo 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 dispersin handler:
en dispersin repetir con a = 1 para el nmero de imgenes 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 continuacin, establecer la locomotora de la imagen de un grupo de "piezas" a 40 + aleatorio (400), 300 + aleatorio (400) ms establecer la locomotora de la imagen de un grupo de "piezas" a 500 + aleatorio (500), 300 + aleatorio (400) End If final de la repeticin fin dispersin
5.
La primera cosa que la mayora 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 funcin que
[ 153 ]
coloca las piezas de borde alejado de las piezas de borde no. La edgepiece funcin (que se llama desde el dispersin controlador mencionado anteriormente) es la siguiente:
funcin 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 mrgenes 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 estn 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 ubicacin inicial. Aqu est la resetpuzzle handler:
en resetpuzzle repetir con a = 1 para el nmero de imgenes en el grupo de "piezas" si el myloc de la imagen de un grupo de "piezas" no est vaco a continuacin, establezca la locomotora de la imagen de un grupo de "piezas" para la myloc de la imagen de un grupo de "piezas" ms 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 ]
8.
Se puede ver que si myloc si no ya se ha establecido, la pieza debe estar en su posicin de inicio, y por lo que el resetpuzzle manejador sigue adelante y los registros que ubicacin en el myloc propiedad.
[ 156 ]
Chapter 5
9.
Elimine el comentario de las lneas en el paso 17 de Time for Action - la creacin de las piezas y la eleccin de una imagen (la makepuzzle y dispersin lneas), y otra prueba de la aplicacin. Ahora debera 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 aritmtico a la derecha haca relativamente fcil de extraer un rectngulo deseado de imageData del a partir de una imagen ms grande, y para almacenarlo en una imagen ms pequea el tamao del rectngulo. Pero hay un poco de magia que no se seal, el rompecabezas mantenido su forma! Cmo 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 todava se vea la misma forma, slo con una imagen diferente.
Adicin de interactividad
El rompecabezas est listo para enviar! Bueno, aparte de no existir interactividad en absoluto! Vamos a aadir algo.
[ 157 ]
1.
Abra el script pila. Slo hay una variable global que tambin necesitamos en la apilar guin, pero hay un par de elementos a inicializar cubrir. Inicie el script pila con estas lneas:
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 aplicacin est en el iPhone, y pide que la resolucin 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. 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 botn "Fromlibrary" establecer los relayerGroupedControls en true establecer la capa del blanco con el nmero de imgenes en el grupo "Piezas" end if final Touchstart
3.
4.
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.
Chapter 5
[ 159 ]
5.
Te acuerdas de cmo hemos aadido un Sombra a los dos botones? Aparte de hacer que se vean ms bonitas, podemos hacer uso de ella aqu tambin. Mediante la adicin de la misma dropShadow a la pieza del rompecabezas que crean la ilusin 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. 8.
Una vez ms hay una doble comprobacin rpida para asegurarse de que es una pieza del rompecabezas, si no es un simple caso de establecer la ubicacin de la pieza a la posicin de los dedos del usuario. 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.
Chapter 5 funcin de la distancia dx, dy sqrt retorno (dx * dx + dy * dy) final distancia
[ 161 ]
10. La distancia
funcin utiliza la frmula de Pitgoras, devolviendo el nmero de pxeles 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. lnea utiliza LiveCode de mover funcin, que animar la pieza en su lugar. controlador para el guin de pila:
11. La mover
12. Una ltima cosa, vamos a ver si el puzzle se completa. Aadir este
en checkfinished repetir con a = 1 para el nmero de imgenes en el grupo de "piezas" si el myloc de la imagen de un grupo de "piezas" <> de la Lnea de Control la imagen de un grupo de "piezas" y salga checkfinished Fin de repeticin responde "Lo has hecho!" terminar checkfinished
Qu ha pasado?
El rompecabezas completo debera funcionar ahora. Algo que no es fcil adivinar por las funciones tctiles que hemos aadido es el hecho de que trabaja con multi-touch. Puede arrastrar en un mximo de 10 unidades a la vez (o lo que sea el lmite de multi-touch es para su dispositivo), y cada uno va a mostrar una sombra, y se animar a su sitio cuando dejarlos ir.
[ 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 imgenes, y as sucesivamente. Tratar con el imageData del es todava 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 pxeles individuales de una imagen, y encontrar nuevos usos para los que el valor
Tambin vimos cmo utilizar interactividad multi-tctil para que esos trozos de imageData del a la vida, en forma de un rompecabezas
Trabajar con grficos puede ser muy divertido, espero que esto ser slo el comienzo de lo que va a crear. Sin embargo, en el siguiente captulo nos pondremos en contacto para hacer una aplicacin de utilidad. (Sigh!)
[ 163 ]
Se necesitara una gran cantidad de investigacin y dinero para explorar todas las aplicaciones recordatorios que estn ah fuera. La mayora de las aplicaciones tendr un montn de caractersticas que nunca uso, y por lo menos una caracterstica vital que falta. Si tienes suerte, alguna combinacin de aplicaciones puede hacer todas las cosas que quieres. Pero no se olvide, mediante el uso de LiveCode, usted puede hacer su propia aplicacin recordatorios! En este captulo vamos a:
Hable de lo que se entiende por un "recordatorio" Crear varias funciones de utilidad de medicin de tiempo Definir una estructura de datos para almacenar informacin acerca de un evento Hacer uso de dispositivos mviles "notificaciones" Crear una aplicacin de recordatorios flexibles
Qu es un "recordatorio"?
Aqu est una lista de algunas cosas que podramos llamar un "recordatorio":
Ahora, hay una sola manera de describir todas esas cosas? Bueno, puede obtener muchas palabras, sino un recordatorio podra ser descrito como: Un mensaje de notificacin o el sonido, que aparece automticamente 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. Vase, bastante prolijo. Descomponindola como que ayuda a ver lo que ofrece una aplicacin de recordatorios tendr que tener. Antes de llegar a eso, vamos a probar la definicin con los ejemplos de aqu
Lista de la compra: En este caso, usted va a buscar el recordatorio, aunque podramos configurarlo para que muestre automticamente cuando su ubicacin 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 podra utilizar un mensaje temporizado que le permiten saber hacer de unos das de compras estn a la izquierda. To-do list: De nuevo, es simplemente una lista de las tareas que no hayan finalizado. Alarma: Esta es una notificacin de que un momento en el tiempo ha sido alcanzado. Egg timer: Esta es una notificacin de que una cierta cantidad de tiempo ha pasado, lo que podra ser utilizado en una secuencia de tales eventos que podran ser utilizados en una aplicacin de cocina-buddy. Cumpleaos 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 definicin que nos gue como podemos definir las capacidades de la aplicacin se necesita tener.
Cundo?
Las comunicaciones mviles que se pueden crear con LiveCode se enviar al segundo ms cercano a cuando se pide que se enve. Extraamente, sin embargo, el valor se basa en el nmero 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 estndar 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 pases que estn 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 nmero exacto de das, o incluso un nmero exacto de das trimestre, los calendarios son ajustados por un da cada cuatro aos, aunque no en 100 aos las fronteras, salvo por cada 400 aos (2000 fue un ao bisiesto, por ejemplo). Esos ajustes son an insuficientes para mantener los relojes a tiempo! Los relojes estn fuera de tiempo por aproximadamente 0,6 segundos al ao, por lo que hay "segundos intercalares aadido a" compensar eso. En teora, los segundos intercalares se podra utilizar para restar un segundo, pero hasta ahora esto no ha sido necesario, sino que slo se han utilizado para agregar un segundo. Nada de esto afecta el nmero de segundos transcurridos desde la medianoche 01/01/1970, pero s quiere decir que la conversin del segundo LiveCode en la fecha y hora utilizando su propia aritmtica no le dar el tiempo correcto. Y sin embargo, todava se utiliza como base para las notificaciones. Este valor se conoce normalmente como el tiempo Unix. No debera importar mucho si al final enviar a alguien un mensaje de feliz cumpleaos 25 segundos antes! Pero no te preocupes, la forma en que vamos a calcular el tiempo de notificacin se har cargo de la rareza.
1. 2.
Crear un nuevo Mainstack, que sea ReminderFunctions, y guardar la pila. Agregue dos campos y dos botones.
[ 161 ]
3. 4. 5.
Nombre un campo dateinseconds y el otro tiempoEnSegundos. Nombre de los botones Elija la fecha y Elige Time. Establecer el guin de la Elija la fecha botn 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.
7. 8. 9.
Ajuste de la configuracin de aplicacin independiente, de modo que usted puede probar en iOS o Android. Elija su destino de prueba (en este caso, se puede ver que iPhone Simulator fue elegido como el destino), y hacer una prueba. Haga clic en el botn de fecha Seleccin.
10. Seleccione 25 de diciembre 2012, y haga clic en Hecho. 11. El nmero de segundos desde la medianoche hasta la medianoche del 01/01/1970
el da de Navidad de 2012 se muestra en el primer campo que ha creado.
[ 162 ]
Chapter 6
12. Haga clic en el botn de la hora pico, y ajustar la hora a la 1 am. Esta imagen
muestra cmo el selector se ve diferente en iOS y Android (Kindle Fire en este caso):
13. Haga clic en Hecho, y usted ver el nmero de segundos desde la medianoche hasta
01/01/1970 01 a.m. del da en que haga esta prueba se muestra en el campo de la derecha.
[ 163 ]
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 nmero de segundos en el da de hoy, todo es de los segundos desde la medianoche del 01/01/1970. Con el fin de establecer un tiempo de notificacin para un momento particular de un determinado fecha, tenemos que hacer un poco de aritmtica. Vamos a entrar en eso un poco ms tarde, cuando hacemos la aplicacin real de recordatorio, en el. Haciendo la seccin recordatorios aplicacin de este captulo
Dnde?
Hay algo que podemos hacer en una aplicacin de recordatorios mvil que no volvera a trabajar en una versin de lpiz y papel, podemos presentar la lista de recordatorios funcin de dnde 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 estn en estos momentos. Por lo tanto, vamos a trabajar dentro de ese limitacin, ya que no hay otra opcin! La tcnica general al leer sensores de dispositivos mviles es para iniciar el seguimiento de un sensor determinado, detectar cundo 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. Tambin puede especificar el nivel de detalle de un informe que desea, y si desea una lectura precisa. La precisin de localizacin GPS se dictan si se utiliza o no. La ventaja de utilizar GPS es que se obtiene una mayor precisin (asumiendo que hay una seal clara en ese momento), las desventajas son que que consume ms energa de la batera y los dispositivos que no tienen GPS no podra utilizar esa caracterstica. Cuando se utiliza la ubicacin 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 ]
excesivos.
Chapter 6
[ 165 ]
1. 2.
Utilice la pila de prueba-rig desde arriba, y aadir un botn Ubicacin Get y un ubicacin campo. Asegrese de que el ubicacin campo es tan ancha como la ventana de la tarjeta, sino que se muestra tres nmeros largos. Establecer la secuencia de comandos del botn a lo siguiente:
en mouseUp mobileStartTrackingSensor "ubicacin", true poner mobileSensorReading ("localizacin", false) en el campo "Ubicacin" mobileStopTrackingSensor "ubicacin" final mouseUp
3.
La verdadero en la segunda lnea es la que define a un "suelto" de valor, y estamos diciendo que no necesitamos la precisin del GPS. La falso en la tercera lnea est diciendo que no necesitamos informacin detallada a devolver. Vaya a Ajustes aplicacin independiente, elegir el dispositivo de destino: iOS o Android. Para iOS, ajuste Display Name, ID App interna y Perfil. Elige tu dispositivo, la versin del SDK, y si se trata de ser una aplicacin universal (ARMv6 es para los dispositivos ms antiguos y ARMv7 es para los nuevos dispositivos. Para qu vale la pena, Apple se han reducido el apoyo a ARMv6).
4. 5.
[ 166 ]
Chapter 6
6.
7.
Adems, en la parte Permisos de Aplicacin de la configuracin de Android, asegrese de que usted ha pedido permiso para obtener la ubicacin Grueso:
8. 9.
Seleccione Guardar aplicacin autnoma e instalar la aplicacin en su dispositivo. Siga la descripcin en el Captulo 2, Primeros pasos con LiveCode Mobile, si necesita un recordatorio de cmo hacer eso! En la aplicacin, pruebe la fecha de recogida y Pick tiempo botones para ver cmo criar a los controles nativos, a continuacin, pulse el botn Ubicacin Get. Tres nmeros largos deben aparecer en el ubicacin campo:
[ 167 ]
Qu ha pasado?
Como usted puede ver, hay muy poco cdigo necesario para leer una ubicacin! Si se trataba de una aplicacin de seguimiento, entonces usted necesita para mantener el seguimiento abierto y tienen funciones para responder al cambio de mensajes de ubicacin. Pero, para nuestra aplicacin, slo tenemos que saber dnde se encuentra en el momento de echar un vistazo a la lista de recordatorios. Los nmeros que se muestran en el campo de ubicacin son la latitud, longitud y altitud de la posicin del dispositivo. Pero cmo vamos a usar esos nmeros ...
Chapter 6
http://www.movable-type.co.uk/scripts/latlong.html
[ 169 ]
El artculo se discute la frmula original para hacer este clculo, a continuacin, se muestra una funcin Javascript. Si le resulta difcil convertir la ecuacin en manipuladores LiveCode, entonces usted debera ser capaz de convertir el Javascript, lnea por lnea, en el equivalente LiveCode. No hay necesidad de escribir esto en apenas todava, vamos a integrar ms tarde. Pero si usted quiere tener un juego, pon estas lneas en el guin de pila:
funcin 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 (1a)) en c, introduzca r * c a d volver distancia final d funcin de retorno Pangle toRad pAngle/180 * PI final toRad
Como se muestra, debera ver un valor de 5645,48065. Los dos lugares estn en algn lugar
[ 170 ]
cerca de Nueva York y Londres, y ese valor sera la distancia en kilmetros entre los dos, viajando a lo largo de la superficie de la Tierra.
Chapter 6
[ 171 ]
Qu?
Estamos en el buen camino para saber cmo configurar la hora y fecha de la notificacin de recordatorio a ocurrir, y ser capaz de ordenar los recuerdos basados en la distancia de donde nos encontramos. Pero, qu es la informacin exacta que necesitamos tener en el propio recuerdo? Si esto fuera una aplicacin de recordatorio de cumpleaos, entonces usted tendra que preguntar por el nombre de la persona y la fecha de su cumpleaos. Si se tratara de una aplicacin de lista de la compra, entonces se necesita el nombre del tema y tal vez una cantidad. Para un contador de tiempo, usted tendra que hacer lo que el evento fue llamado y un tiempo para el evento. Aqu, sin embargo, estamos tratando de hacer una aplicacin de recordatorio completamente flexible, sino que sera hasta para el usuario para describir el artculo a su gusto. As que slo voy a pedir un ttulo y una breve Descripcin. Tambin tendr que ofrecer la opcin de establecer una fecha, una hora, un asociado ubicacin, y si un sonido de alerta se debe jugar o no. Otra cosa a considerar es donde vamos a almacenar la informacin de la lista de recordatorios? Al hacer la aplicacin WebScraper, se opt por duplicar la pila principal de la aplicacin 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 aplicacin de recordatorios es un caso sencillo; slo estamos tratando de almacenar unas cuantas cadenas de texto para definir cada recordatorio, y que sera ms 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 ubicacin. En lugar de escribir un archivo de texto diferente, vamos a hacer la primera pieza de informacin en cada entrada de la funcin de esa entrada. En estos momentos, las nicas dos funciones son ubicacin y recordatorio. He aqu un ejemplo de lo que el archivo de texto podra ser:
Ubicacin Home40.692636 -73,978376 [ 172 ]
Chapter 6 Ubicacin Oficina 40.745194 -73,985199 Casa falso Recordator Packt Pida ms tiempo! 1334548800 io ReminderBossBuy lunch1334592000Office verdadero
[ 173 ]
Entre cada elemento en una lnea es un carcter de tabulacin, que se utiliza para separar las partes de la entrada. La estructura para una ubicacin es como sigue:
Funcin - "Recordatorio" Ttulo Breve descripcin Notificacin tiempo, en segundos desde la medianoche 01/01/1970 A Ubicacin asociado con este recordatorio Ya sea para jugar un sonido de alerta ("true" o "false")
1.
Crear un nuevo Mainstack, darle un nombre de EasyReminder, y seleccione Guardar. Otras opciones, como Recordatorios sencillos puede ser ms
[ 174 ]
descriptivo, pero sera un nombre demasiado largo si usted est usando un iPhone.
Chapter 6
[ 175 ]
Chapter 6
2. 3. 4. 5.
Ajuste el tamao de la tarjeta con el tamao de su dispositivo. Las pantallas que se muestran a continuacin se basan en una pila de tamao iPhone. Ir a Ajustes aplicacin independiente, y establecer los valores de la misma manera que lo hicimos durante las pruebas de la funcin de localizacin. Establezca el nombre de la primera carta que se casa. Crea una Ordenar por Tiempo , una tecla Ordenar por Ubicacin botn, un campo denominado recordatorios, otro campo denominado datos, y dos botones denominados Crear Recordatorio ... y Crear
ubicacin ....
6. 7.
Asegrese de que ambos campos tienen su cuadro de texto Lock activada y No envuelva marcada.
8.
[ 171 ]
9.
10. Agregar un campo y establezca sus contenidos para decir: Introduzca 11. Agregue dos campos de entrada con nombre latitud 12. Cree un botn llamado Ajuste
Evite errores tipogrficos
y longitud.
a la ubicacin actual.
Aunque hemos puesto un campo para que escriba en la ubicacin a mano, utilice el botn Set para ubicacin actual, si es posible, o al menos el uso que en su ubicacin actual para ver el formato que se requiere.
14. Agregar un campo de entrada en tercer lugar, el nombre localizacin 15. Por ltimo, aadir un botn denominado Aadir
Cancelar.
nombre.
16. Para obtener esta tarjeta, los tres campos tienen su cuadro de texto de bloqueo para estar
desmarcado.
[ 172 ]
Chapter 6
18. Haga una tercera carta y el nombre de recordatorio. 19. Agregue dos campos de instruccin que dicen: Escriba
recordatorio: y Introduzca una breve descripcin:. un ttulo para este
20. Cree dos campos de entrada con nombre ttulo 21. Cree tres botones denominados Establecer
de la fecha, y Establecer hora.
y Descripcin.
22. Aadir tres campos prximos a los botones, los cuales se utilizarn para mostrar al
usuario que la seleccin se hizo tuvo lugar. Nombre de los campos ubicacin del campo, Fecha de campo, y tiempo en el campo.
23. Cree un botn llamado casilla de verificacin Reproducir 24. Por ltimo, cree dos botones ms nombrados Agregar
sonido de alerta.
aviso y Cancelar.
[ 173 ]
Qu ha pasado?
Hemos hecho todas las pantallas necesarias para que la aplicacin funcione. Esa fue la parte fcil. Espera a ver la cantidad de mecanografa le vamos a hacer!
1. 2.
Android OS teclados generalmente tienen un botn dedicado a poner el control del teclado. Sin embargo, ese no es el caso en iOS; el botn que se encuentra en la Volver clave debera ser posible que tenga lugar una palabra especial, tales como Enviar, o Hecho. Lamentablemente, en la introduccin de texto en los campos que son capaces tener un carcter de retorno. Para resolver este problema, establezca la Volver botn Hecho decir, lo que llevar al usuario a esperar el teclado para que
[ 174 ]
desaparece cuando se presiona el botn. Tambin atrapar el returnInField mensaje, y usar eso como una manera de poner realmente el control del teclado.
Chapter 6
[ 175 ]
3.
A continuacin, 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 vaca, 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 continuacin, 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 estn 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 dnde el archivo se guardar. Funciona incluso cuando las pruebas en las mquinas de escritorio. El diccionario LiveCode muestra una lista completa de las rutas de las carpetas especiales, incluyendo muchos que no se aplican a aplicaciones mviles.
4.
La showData funcin bien podra haber sido puesto en el Casa tarjeta Tarjeta
[ 176 ]
guin, pero tenerlo en el Apilar nivel se mantiene cerca de otras funciones que se relacionan. Escriba en este momento.
en showData mundial gReminderData
Chapter 6
[ 177 ]
Making a Reminder Application tarjeta ir "a casa" puesto vaco 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 nmero de lneas en gReminderData poner una lnea de gReminderData en Tentry si el artculo 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 lnea de campo "recordatorios" para aadir un tLineNumber End If final de la repeticin final showData
Si recuerdan el archivo de texto de ejemplo de antes, la showData funcin est teniendo cada lnea y la divisin de los elementos TAB delimitado en trozos de informacin para presentar al usuario. Un truco lindo es que el tiempo de notificacin, que es un nmero largo de segundos, se convierte en un formato legible por humanos, que muestra tanto la fecha y hora de la notificacin. La datos campo se utiliza para mostrar los datos en bruto que se ha grabado. En la aplicacin final que no se repite el mensaje, pero es til para comprobar si la informacin 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 pestaa repetir con a = 1 para el nmero de lneas en gReminderData poner una lnea de gReminderData en tEntryDetails
[ 179 ]
Making a Reminder Application si el artculo 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 repeticin setupnotifiers finales en pMsg localNotificationReceived responder "Notificacin Local:" el fin && pMsg localNotificationReceived
Muchas aplicaciones mviles 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 aplicacin justo por delante de cuando una notificacin de que va a pasar, y hacer la tarea, para luego ser molestado con notificaciones acerca de algo que ya hizo! En nuestra aplicacin, que borrar todas las notificaciones que fueron vencidos y volver a crear la lista completa de nuevo. De este modo, cualquier notificacin que haya eliminado no volver en tu contra despus. Para ayudar en la depuracin, alertPayload se completa con la entrada recordatorio entero, y se mostrar a usted cuando entra en juego la notificacin
Qu ha pasado?
Adems de conseguir tus dedos bien caliente, que ha introducido todas las funciones para leer y escribir los datos del recordatorio, y para la creacin y la recepcin de los mensajes de notificacin.
Chapter 6
1. 2.
Edite el script del botn Ordenar por Time, en la primera carta. Escriba en este controlador de resumen:
en mouseUp mundial gReminderData establecer el itemdelimiter a la pestaa tipo numrico 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 notificacin segundos. Una vez que las lneas estn ordenados, la lista para que el usuario ve es recreado, y el archivo de texto se reescribe.
3. 4.
Cmo prepararse mentalmente y luego editar el script del botn Ordenar por Ubicacin. Escriba en todo esto:
en mouseUp mundial gReminderData mobileStartTrackingSensor "ubicacin", true poner mobileSensorReading ("localizacin", false) en tLocation mobileStopTrackingSensor "ubicacin" 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 pestaa tipo numrico gReminderData por GetDistance (TLAT, tlong, punto 5 de cada uno) showData WriteData final mouseUp [ 181 ]
Making a Reminder Application funcin GetDistance Plat, submarinismo natacin, pLocName si pLocName est vaca luego regresar 1000000 gReminderData mundial puesto vaco en TLAT
[ 182 ]
Chapter 6 puesto vaco en tlong repetir con a = 1 para el nmero de lneas en gReminderData si el artculo 1 de tEntryDetails = "Ubicacin", entonces si el artculo 2 de tEntryDetails pLocName = a continuacin, poner el tema 3 de tEntryDetails en TLAT poner el tema 4 de tEntryDetails en tlong End If End If Fin de repeticin TLAT si est vaca, entonces volver 1000000000 distancia retorno (TLAT, tlong, Plat, Plong) final GetDistance funcin 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 (1a)) en c, introduzca r * c a d volver distancia final d funcin de retorno Pangle toRad pAngle/180 * PI final toRad
La primera parte de la mouseUp controlador es slo conseguir la ubicacin actual. La distancia y toRad las funciones son las mismas que vimos antes. La magia sucede en la forma en que la lnea de clasificacin utiliza una funcin para determinar el orden de clasificacin. Con la aprobacin de la ubicacin que se asocia con cada recordatorio
[ 183 ]
en la GetDistance funcin, es posible ejecutar a travs de la lista de lugares para encontrar una coincidencia, y luego usar esa ubicacin latitud y longitud para medir la distancia desde su ubicacin actual. Esa distancia es entonces utilizado por el comando de clase para decidir el orden de las lneas.
5.
Para relajarse un momento de editar el recordatorio ... Crear script de botn, y la puso a lo siguiente:
en mouseUp Ir a la ficha mouseUp "recordatorio" end
[ 184 ]
Chapter 6
6.
Del mismo modo, ajuste la opcin "Crear Location ..." script botn para esto:
en mouseUp Ir a la ficha mouseUp "ubicacin" final
7.
ltima guin para esta tarjeta, edite la ubicacin Eliminar o script botn 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 nmero de elementos en tItemsToDelete hasta 1 lnea delete (punto A de tItemsToDelete) de gReminderData Fin de repeticin gReminderData si est vaca, entonces escriba "hay entradas" en gReminderData showData WriteData final mouseUp
La borrar controlador utiliza mobilePick con un conjunto particular de parmetros. Un parmetro interesante es marca de verificacin. El pedir ese tipo de selector se mostrar una lista con casillas de verificacin 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 artculos como usted eligi.
Qu ha pasado?
Si todo va bien, se ha recuperado por ahora, despus de tratar de entender el tipo de funcin de localizacin! Usted puede ver por lo menos lo difcil del guin Stack habra sido si todo este cdigo se haba colocado en esa ubicacin. Vamos a pasar a la siguiente carta ...
1.
Edite el script del botn Set para ubicacin actual, y escriba las siguientes lneas:
en mouseUp mobileStartTrackingSensor "ubicacin", true poner mobileSensorReading ("localizacin", false) en tLocation mobileStopTrackingSensor "ubicacin" establecer el itemdelimiter a coma si el nmero 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. 3.
Nada demasiado complicado all, la ubicacin se agarr y la latitud y longitud entradas se almacenan en los dos campos. Edite el script del botn Cancel, y el cambio a este script sencillo:
en mouseUp Ir a la ficha mouseUp "hogar" end
4.
ltimo artculo de esta tarjeta; editar el script Ubicacin botn Agregar y escriba lo siguiente:
en mouseUp mundial gReminderData si el campo "Nombre de ubicacin" est vaco, responde "Por favor, introduzca un nombre para esta ubicacin." salir mouseUp End If si el campo "latitud" est vaco o campo "longitud" est vaco, responda con "Por favor, introduzca los valores de localizacin, o pulse el botn SET 'para Ubicacin actual "botn". salida final mouseUp si poner "Location" y ficha y campo "Nombre de ubicacin" & tab y campo [ 186 ]
Chapter 6 "Latitud" y ficha y campo "longitud" en tLocationDetails si gReminderData = "hay entradas" y luego poner en tLocationDetails gReminderData ms
[ 187 ]
Making a Reminder Application poner retorno y tLocationDetails despus 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 informacin 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 ubicacin para ser utilizado por los recuerdos que han creado. Y ah es donde nos dirigimos ahora ...
1.
Edite el script del botn Set relacionada con la localizacin y el tipo de las siguientes:
en mouseUp mundial gReminderData puesto vaco en tLocations establecer el itemdelimiter a poner una ficha en tLineNumber repetir con a = 1 para el nmero de lneas en gReminderData si el artculo 1 de la lnea de un gReminderData = "Ubicacin", entonces [ 188 ]
Chapter 6 poner punto 2 a 4 de la lnea de gReminderData en tLineNumber lnea de tLocations Aadir 1 al final si tLineNumber Fin de repeticin tLocations si est vaco, responde "Usted necesita agregar una ubicacin."
[ 189 ]
Making a Reminder Application ms mobilePick tLocations, 1 poner el resultado en tChosenLocation si tChosenLocation> 0 entonces poner el punto 1 de la lnea de tChosenLocation tLocations en "campo de ubicacin" campo End If End If final mouseUp
Hemos creado la primera palabra de cada lnea en los datos de recordatorios a cualquiera Ubicacin o Recordatorio. Aqu hay un lugar donde se hace uso de ello. Una vez que saque las lneas que son Ubicacin, presentarlos dentro de un selector es fcil de hacer.
2.
Edite el script del botn Establecer fecha, y el cambio a este fcil 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 botn Establecer hora para este script casi idntico:
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.
5.
Por ltimo, y lejos de ser menos, el guin Recordatorio botn Agregar hace todo el
[ 190 ]
trabajo duro.
Chapter 6
en mouseUp mundial gReminderData si el campo "ttulo" est vaco o el campo "descripcin" est vaco, responda con "Por favor, introduzca un ttulo y una descripcin." salir mouseUp
[ 191 ]
Making a Reminder Application End If poner "false" en tDoAlert si el hilite de botn "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 "ttulo" y ficha y campo "Descripcin" en tReminderDetails poner tReminderDetails & Tab y tDateValue & ficha y campo "campo de ubicacin" y en la ficha tReminderDetails poner tReminderDetails & Tab y tDoAlert en tReminderDetails si gReminderData = "hay entradas" y luego poner en tReminderDetails gReminderData ms poner retorno y tReminderDetails despus del final gReminderData si Ir a la ficha "casa" showData WriteData final mouseUp
La mayor parte de la secuencia de comandos es simplemente la combinacin de los diferentes bits de informacin junto a la entrada un recordatorio, la delimitacin de las zonas con un carcter de tabulacin. Pero hay un poco de aritmtica lindo pasando ah tambin. Al comienzo de este captulo, nos fijamos en cmo se diferencia de tiempo Unix tiempo real a una velocidad de 0,6 segundos por ao. Si desea programar una notificacin a las 8 am en cinco aos a partir de ahora, entonces usted no puede tomar el valor que el botn 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 sera 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 da actual. Restando que a partir del valor que le dio Set Time le permite conocer el nmero de segundos transcurridos desde la medianoche, sin importar cuntos segundos detrs del tiempo Unix es. Adicin 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 aplicacin 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 cdigo. Tambin puede escribir algunos datos de prueba dentro de la pila en el equipo y por lo menos probar las funciones que no requieren caractersticas especficas del dispositivo.
Resumen
Este captulo fue mucho ms emocionante de lo esperado! Una aplicacin de recordatorios no es absolutamente tan impresionante como Angry Birds, pero, haciendo uso de las caractersticas de ubicacin de un dispositivo mvil hecho novela un poco ms. 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 ubicacin actual del dispositivo Creacin de eventos de notificacin locales
En el mejor de los casos, usted puede llegar a hacer una aplicacin mvil en unas pocas horas o das, pero no hay mucho que pasa antes de poder enviar la aplicacin a las tiendas de aplicaciones diversas. Suena como un buen tema para el prximo captulo!
[ 193 ]
[ 194 ]
Implementar en su dispositivo
No deje todo para ti! Herramientas como LiveCode se puede utilizar exclusivamente para aplicaciones de productividad personal, y sera ms que pagar por s mismos en el tiempo que le ahorrar todos los das. Pero, por qu no dejar que el resto del mundo se benefician de sus creaciones!
Hasta ahora, hemos creado varias pequeas aplicaciones de perforacin de prueba, y unos cuantos ms seres concretarse. En todos los casos, sin embargo, slo hemos probado estos simuladores en el interior o en el dispositivo personal. Ha llegado el momento de sacarlo a ms personas, para las pruebas beta en un primer momento, y luego para subir a las tiendas de aplicaciones diferentes. En este captulo se incluirn los siguientes puntos:
Examine todos los ajustes independientes de aplicaciones opciones relacionadas con la creacin de aplicaciones mviles
Crear compilaciones de una aplicacin de modo que pueda ser enviado a los probadores beta
Construir una versin final de distribucin de una aplicacin Revise cmo cargar aplicaciones para iOS App Store, AppStore Amazon y Google Play
Hay algunas etapas en la creacin 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 tambin que este captulo es ms de una referencia, y no un tutorial prctico. Cuando usted tiene una aplicacin que se est preparando para completar y enviar a las tiendas de aplicaciones, y te encuentras con un punto de friccin, esperemos que recuerdo haber ledo sobre el tema en algn lugar de este captulo!
General
La seccin general de los ajustes independientes se usa principalmente para controlar qu caractersticas de LiveCode se van a incluir en una aplicacin independiente de escritorio. Esas opciones no se aplican a las aplicaciones mviles, pero est en la seccin general que establezca el nombre del expediente de solicitud, as como la carpeta de compilacin (los temas de inters se encuentran en la parte superior e inferior del cuadro de dilogo):
[ 188 ]
Chapter 7
Stacks
La seccin de Stacks le mostrar una lista de las pilas que ya estn incluidas en su proyecto. Eso, por supuesto, incluyen el Mainstack actual, y tambin incluir las pilas que han sido agregadas por los plugins como MobGui. Todas las opciones se atenuarn.
Copiar archivos
En la seccin Copia de archivos se utiliza para agregar los archivos y carpetas adicionales para ser utilizados por la aplicacin. Estos van a ser archivos de slo lectura, si usted necesita los archivos modificables an se poda 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 dilogo con las carpetas de imgenes y sonidos aadidos:
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 seccin de iOS, poco a poco ...
[ 189 ]
Construir para
La construccin para la configuracin de dispositivos iOS determinar que la aplicacin va a trabajar, y lo que la versin mnima 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 aplicacin 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 pequea utilidad que est orientada a su uso en un dispositivo porttil, tal vez usted no necesita tener una versin para iPad. Usted es capaz de elegir el iPod, iPhone y iPad, o simplemente para iPod y iPhone, y aunque slo sea iPad. La versin mnima de iOS que usted elija puede depender de las particularidades que ha utilizado. Usted no desea que los usuarios podrn comprar su aplicacin slo para encontrar que una cierta caracterstica no funciona correctamente en su versin 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 configuracin es correcta. Adems, Xcode te permite descargar varias versiones del simulador, y en LiveCode puede elegir una versin especfica para realizar la comprobacin. La ltima seleccin 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 mviles. En iOS, las cosas son ms sencillas que en Android, ya que los procesadores se denominan ARMv6 o ARMv7. Con Android, hay muchos ms tipos de procesadores, y puede tomar un poco de investigacin para averiguar qu conjunto de instrucciones se utiliza para un procesador determinado. Manzana mismos han abandonado el soporte para ARMv6. versin 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 generacin, a excepcin de la versin de 8GB de la 3 generacin, que an estaba ARMv6. Usted puede tener una aplicacin que funciona bien incluso en el iPhone original, pero si usted tiene alguna duda acerca de cmo se va a realizar, eligiendo Arm v7 puede ser una buena idea. Tambin puede elegir un mnimo iOS 4.3 o versin posterior, o incluso 5.0 o posterior. Algunas de las caractersticas del navegador web funciona mejor despus de iOS versin 5.0 fue lanzado. Siempre se puede dejar estas opciones establecidas a valores ms bajos por ahora, y tomar una decisin despus de haber odo cmo sus beta testers se llevaba bien con la aplicacin.
[ 190 ]
Chapter 7
Aqu est la construccin para el rea de los valores, as como los mens que puede elegir:
Mostrar el nombre: el nombre que aparecer bajo el icono en el dispositivo real Versin: el nmero de versin que aparece en la descripcin de iTunes para la aplicacin Interior App ID: el ID de aplicacin que utiliz en el Portal iOS Developer hora de hacer el desarrollo o el perfil de distribucin de aprovisionamiento Perfil: el perfil de datos que coincide con esta aplicacin Externos: un conjunto de archivos de comandos opcionales externos que pueden haber utilizado en su aplicacin
Usted debe probar diferentes nombres de visualizacin para ver cmo se ve en los dispositivos. Hay un lmite para cunto tiempo el nombre puede ser antes de iOS trunca el nombre, la colocacin de elipses en el medio del texto. Para el iPhone que es de aproximadamente 11 o 12 caracteres. Es importante asegurarse de que la actualizacin de una aplicacin que enva debern tener un nmero de versin es posterior a la aplicacin existente. A partir de las marcas 1.0.0 sentido, recuerda a aumentar el nmero 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 actualizacin sea una versin posterior a la que est siendo reemplazado. Para fines de desarrollo se puede utilizar un perfil de datos que utiliza un ID de aplicacin interna que contiene un comodn. Al hacer presentar una aplicacin para iOS App Store, asegrese de que el archivo de suministro es una Distribucin, y que el ID de aplicacin que utiliza coincide exactamente con el ID de aplicacin interna. Tambin, asegrese de que el ID es diferente a cualquier otra aplicacin que tenga en la tienda. Tenga en cuenta sin embargo que el ID como se muestra en la pgina de cuenta de desarrollador mostrar los dgitos adicionales en el inicio de la ID, por ejemplo: 31415926.com.yourname.yourappname. La App ID coincidente interna sera
[ 191 ]
com.yourname.yourappname.
[ 192 ]
Chapter 7
En la imagen siguiente ejemplo, un archivo de aprovisionamiento de desarrollo que se elija, y tambin 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 fcil, haces clic en el botn ... y seleccione el archivo de su sistema de archivos. Sera posible que LiveCode tomar una imagen de gran tamaoy para crear los distintos tamaos para usted, pero no es una opcin para eso! Por si sirve de algo, puede que tenga razones para mostrar una icono diferente para cada caso. Por ejemplo, usted podra hacer un icono para las pantallas Retina que tenan ms detalle en lo que se poda ver en una pantalla no Retina. Como usted no tiene una opcin, simplemente disfrutar de la flexibilidad que esto te da! Observe la casilla de verificacin Icono prerendered. Usted tiene la opcin 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 botn 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 funcin 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 estn pre-prestados:
[ 193 ]
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 aplicacin. Esto les da algo para mirar mientras la aplicacin se est cargando. Todo lo que se necesitaba en esos das era una imagen predeterminada, y tena un nombre de Default.png. Cuando el iPad lleg ahora haba una necesidad de pantallas de inicio ms. Por lo menos se necesitaba una resolucin de imagen mayor defecto, pero tambin se necesitan imgenes personalizadas para el paisaje, incluso yendo tan lejos como para tener imgenes diferentes en funcin del paisaje de si el botn de inicio es el lado izquierdo o lado derecho. LiveCode no da acceso a ese nivel de flexibilidad, pero es muy raro que una aplicacin se necesita un paisaje diferente para las dos variantes, por lo general puede llegar a funcionar con slo una. Lo mismo para la variacin retrato al revs, la imagen predeterminada retrato regular puede ser utilizado para eso tambin. Las pantallas Retina tienen sus propias entradas para configurar la pantalla de inicio, y por convencin, los archivos que tienen nombres que incluyen una @ 2x parte del nombre. Cul de las opciones de la pantalla emergente se activan depende de las opciones de orientacin, como se describe en la siguiente seccin. En esta captura de pantalla, las opciones Retratos iPad aparecen en gris, ya que la aplicacin est dispuesto a ser nico paisaje:
Usted puede notar que no hay un retrato iPhone u opcin paisaje. Esto se debe a la Default.png se utiliza para ambos. Si su aplicacin es slo paisaje, para luego disear 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 orientacin
Como se mencion anteriormente, usted es capaz de especificar qu orientaciones se apoyan en su aplicacin. Si la aplicacin es slo para el iPod y el iPhone, slo se puede establecer cul es la orientacin inicial. Las opciones son Portrait, Retrato Upside-Down, Left Paisaje, Paisaje y derecha. Si es para iPad, entonces tambin se puede establecer que las orientaciones son compatibles mientras que la aplicacin 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 verificacin cuatro:
Requisitos y restricciones
Antes hemos hablado de cmo configurar el dispositivo, el conjunto de instrucciones del procesador y la versin del iOS, es una manera de asegurarse de que los usuarios son capaces de utilizar las caractersticas de su aplicacin. 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 aplicacin que consiste en tomar fotografas, lo que requiere una cmara podra ser una buena idea! Si se trata de una aplicacin de chat de vdeo, lo que requiere una cmara frontal tendra sentido. La aplicacin de recordatorios que hicimos en el captulo anterior debe tener su opcin Servicios de ubicacin seleccionado, para asegurarse
[ 195 ]
de que el tipo de funcin de distancia podra funcionar. Aqu est la lista completa:
[ 196 ]
Chapter 7
Status Bar
La ltima opcin en la configuracin 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 translcido. La siguiente captura de pantalla muestra la opcin Barra de estado:
[ 197 ]
Androide
Como podr ver, el nmero de opciones para definir para Android es menor que la de iOS. Esto no es as porque Android es ms sencillo, sino porque LiveCode expone prcticamente todas las opciones posibles para iOS, incluyendo muchos que no tendr ms probabilidades. iOS tambin tiene las variaciones pantalla de presentacin que no estn 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 aplicacin invoca esa caracterstica. Usted habr visto los cuadros de dilogo que pregunta: App Fancy quiere saber su ubicacin. Android por su parte le pide permiso para utilizar esas caractersticas en el momento en que la aplicacin est instalada. Echemos un vistazo a las opciones de Android.
In-app notificaciones compras y empuje, que en el momento de la escritura son caractersticas 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 lnea RunRev, y tambin el developer.android.com sitio web para ms informacin. Hasta aqu slo hay una leccin iOS, que se encuentra aqu:
http://lessons.runrev.com/m/4069/l/48771
Chapter 7
[ 199 ]
Es de suponer que la leccin de Android se aadir a que algn da no muy lejano. El dev Androideloper informacin sobre la facturacin 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 tambin tiene el esquema de URL personalizado. Una caracterstica 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 bsicos de aplicacin se presentan opciones:
[ 200 ]
Chapter 7
Requisitos y restricciones
Dentro de este conjunto de opciones que puede establecer la versin mnima de Android y fijo que las caractersticas de hardware son necesarios. Las columnas de botones de radio se denominan de manera diferente de iOS. En vez de decir que una funcin es necesaria o prohibidos, usted est diciendo si la funcin es necesaria o usado. Esto se convierte en informacin que el usuario de Android es capaz de leer, y puede desempear un papel en si deciden comprar su aplicacin. Por lo tanto, trate de seleccionar lo que corresponda a su aplicacin.
Permisos de aplicaciones
Cuando una aplicacin para iOS hace uso de ciertas caractersticas, tales como su ubicacin, hay un dilogo de alerta que aparece cuando la funcin por primera vez. Con Android cualquiera de estas funciones se enumeran durante la instalacin de la aplicacin, y el usuario podr dar permiso para que todas las caractersticas de una sola vez. stos son los permisos que se pueden elegir:
[ 201 ]
instalacin de la aplicacin.
Chapter 7
Hay una seccin de Desarrollo de la configuracin del dispositivo Android que los testers puedan necesitar para visitar, para activar la funcin que permite a las aplicaciones que se instalan de esta manera, pero es muy fcil de hacer ese cambio.
[ 203 ]
Preparacin de una aplicacin iOS para que pueda trabajar en algn otro dispositivo
Las cosas no son tan sencillas para iOS! Lo primero que tienes que hacer es aadir 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 nmero al conectar el dispositivo a su ordenador y ver su informacin en iTunes. Cuando usted est buscando en la pestaa Informacin, podrs ver el nmero de serie del dispositivo. Al hacer clic sobre el nmero que har que cambie a un nmero ms largo, que es el UDID que ser necesaria. Una vez que ese nmero est mostrando que puede hacer un atajo de teclado para copiar el nmero al portapapeles (Ctrl + C en Mac, Ctrl + C en Windows). Haga que sus probadores de hacer esto, y luego los he pegar el nmero en un mensaje de correo. Usted quiere asegurarse de que usted obtenga el nmero correcto, porque va a utilizar una de sus 100 asignacin de dispositivos en su cuenta de desarrollador de iOS. Ir a https://developer.apple.com/ios/manage/devices/index.action con el fin de aadir los dispositivos a su cuenta. Haga clic en el botn Agregar dispositivos en esa pgina, y usted ser capaz de aadir los dispositivos a tu cuenta:
[ 204 ]
Chapter 7
A continuacin, vaya a la fespus 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 continuacin, aparecer una lista de los dispositivos asociados a su cuenta, y puede permitir a cualquier combinacin 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:
Despus de enviar los cambios, ver que el perfil modificado se encuentra pendiente. No se necesita ningn tiempo para procesar el archivo de aprovisionamiento, usted inmediatamente puede volver a cargar la pgina 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 aplicacin en LiveCode, ve a Ajustes aplicacin independiente ... | iOS, y asegrese de que el perfil de datos se selecciona en el men Perfil y Guardar como aplicacin autnoma ... de nuevo, para asegurarse de que los nuevos dispositivos son conocidos por la aplicacin.
[ 205 ]
Por ahora usted tendr un archivo APP, lo que equivale a iOS de la APK de Android. Como con Android que podra correo electrnico 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 difcil 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, asegrese de que la nueva aplicacin est seleccionada y realizar una sincronizacin. Sin embargo, es posible para hacer las cosas mucho ms fciles para los usuarios, tan fcil como lo fue para los usuarios de Android.
AirLaunch
Software hiperactivo ha hecho un plugin LiveCode que puede llevar a su archivo APP y crea la estructura de archivos necesaria para el "over the air" instalar al trabajo. Slo hay un nico cuadro de dilogo que se necesita para rellenar como se muestra a continuacin:
[ 206 ]
Chapter 7
Despus de seleccionar el archivo APP slo tendr que introducir la URL de la carpeta donde ser cuando est en lnea, a continuacin, haga clic en el botn Crear archivos. A continuacin, e-mail la direccin URL de la carpeta para sus probadores, y cuando se visite la pgina web en su dispositivo habr un solo enlace al tacto, y la aplicacin se instalar. Ver ms informacin sobre AirLaunch en la pgina utilizando el siguiente enlace:
http://www.hyperactivesw.com/airlaunch/index.html
BetaBuilder
BetaBuilder se pueden encontrar en la Mac App Store, en la fespus 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 direccin URL de la carpeta en lnea, y el programa generar los archivos para usted. Una vez ms, todo lo que sucede en una sola ventana de dilogo como se muestra en la siguiente captura de pantalla:
[ 207 ]
Una manera fcil de convertir el archivo APP LiveCode en un IPA es arrastrar la aplicacin en iTunes, a continuacin, seleccione Mostrar en Finder, haga clic en la aplicacin en la Biblioteca. Esto revelar el archivo IPA, que puede arrastrar a la ventana BetaBuilder. Ambos productos hacen la vida ms fcil 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 increblemente barato!
TestFlightApp.com
https://testflightapp.com utiliza exactamente la misma tcnica que las dos
aplicaciones utilizan, pero el sitio tambin incluye una gran cantidad de herramientas de gestin de proyectos. Es mucho ms de lo necesario para el envo de aplicaciones personalizadas a un testers pocos, pero puede entrar en su ms propio cuando se trata de varias aplicaciones de salir a un gran grupo de testers.
lugar, que ser algo as como: C: \ Archivos de programa \ Java \ jdkx.x.x_xx \ bin \, donde la jdkx.x.x_xx parte sera en realidad la versin del JDK que ha instalado. Usted debe ser capaz de obtener todo el camino con una lnea como esta:
C: \> cd \ Archivos de programa \ Java \ jdk1.7.0_01 \ bin \
Chapter 7
[ 209 ]
En Mac va a utilizar el Terminal, que se encuentra en / Aplicaciones / Utilites. Slo tiene que abrir Terminal, e inmediatamente ser capaz de utilizar la aplicacin Keytool. En cualquier caso, ahora se escribe una lnea relativamente corto, y luego responder a las diversas preguntas que aparecen. Para una comprensin ms completa de lo que es going adelante, visite la pgina web:
http://developer.android.com/guide/publishing/app-signing.html
Para nuestros propsitos, slo tendremos que escribir el comando correcto y todo debera ir bien, incluso si no entendemos lo que escriben! Esta es la lnea que escribir, cambiando los nombres y alias del almacn 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 tamao 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 contrasea que desea utilizar para el almacn de claves. Otras preguntas se le pedir su nombre completo, detalles sobre su empresa, ciudad y pas. Es un conjunto de datos que pueden ser codificados en un almacn de claves que es nico, y tiene suficiente informacin precisa con la que un usuario puede decidir si se debe confiar en el certificado. Cuando la herramienta est terminado tendr el archivo de almacn de claves que LiveCode requiere. Ser fcilmente 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 aplicacin de los ajustes bsicos de la aplicacin independiente de su Mainstack y navegue hasta el archivo de la entrada Key. Una vez elegido, esa seccin se ver como la siguiente captura de pantalla:
Si usted ha elegido sus iconos, pantalla de presentacin, requisitos y permisos, usted debera ser capaz de construir una versin del archivo APK que se pueden cargar en las tiendas de aplicaciones.
[ 210 ]
Chapter 7
[ 211 ]
Ahora que hay un identificador de aplicacin, que puede ser utilizado en la creacin de un perfil de distribucin de aprovisionamiento, en la seccin de aprovisionamiento. Una de las dificultades es sin embargo el mensaje de advertencia sobre la creacin de un certificado:
Al hacer clic en el enlace de texto te lleva a una larga descripcin de cmo se tiene que solicitar una autoridad de certificacin, y cargar un archivo que genera el Acceso a Llaveros. Cuando se presenta esta situacin, 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 distribucin que utiliza el ID de aplicacin especfico, y el certificado de distribucin. La entrada final se ver como la siguiente captura de pantalla, y deber utilizar el botn de descarga para obtener una copia local del archivo de aprovisionamiento:
Ahora tiene el archivo que LiveCode requiere, slo que no lo selecciona en la configuracin de LiveCode. En su lugar, haga doble clic en el archivo y se instalar usando Xcode. Una vez que est en Xcode a continuacin, puede seleccionar en el men Perfil en la Configuracin de aplicacin bsica en LiveCode:
Al igual que con Android, debe asegurarse de aadir 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.
el proceso de vez en cuando. Por ejemplo, Google incluso cambi el nombre de su servicio desde el captulo 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 pginas que empiezan por:
Cul es similar
Las tres tiendas de aplicaciones pedir una descripcin de lo que hace la aplicacin, la informacin de clasificacin, el precio, un sitio Web de soporte o direccin de correo electrnico y la informacin de categora. 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 direccin de pgina web para el apoyo, Google slo pide informacin de contacto, y Amazon muestra de apoyo como opcional. Los tres piden capturas de pantalla, y las dos tiendas de Android tambin le permite subir un vdeo de demostracin.
Lo que es diferente
Manzana pide una gran cantidad de informacin que se transmite a travs de muchas pantallas. La carga del archivo de aplicacin actual est a cargo de la utilidad Application Loader que viene como parte de Xcode. Tambin parece que tiene que introducir toda la informacin en una sola sesin. Con el botn Guardar en la parte inferior de la pgina web, pensando que puede volver y continuar en otro momento, no parece funcionar. Google solicita una gran cantidad de informacin, pero todo est atascado en una pantalla! Tenga cuidado al comenzar a utilizar la pgina. Lo primero que piden es el archivo APK. Probablemente debera cancelar que al principio, porque an no se ha fijado un precio para la aplicacin. Si lo hace subir el APK de inmediato, que es al instante y de forma permanente una aplicacin gratuita. Amazon pide menos informacin, y se presentan las preguntas dentro de una pgina. Hay muy buenas crticas por ah, alabando la facilidad de presentar a la AppStore Amazon!
En pocas palabras
El proceso de envo es slo la parte ms estresante de desarrollar una aplicacin mvil! Te hace sentir mejor acerca de las otras etapas que has pasado, tal vez los que no eran tan malo despus de todo! Esperamos que tengan una pareja que puede ser un segundo par de ojos, para ayudarle a
[ 215 ]
entender todas las preguntas, y no te pierdas algo importante que te perseguir ms tarde.
[ 216 ]
Chapter 7
Resumen
Yo no s ustedes, pero yo soy mejor! Y no slo porque son las 4 am, este negocio de aplicaciones mviles de desarrollo puede ser abrumador. Incluso el lado administrativo de las cosas pueden ser un poco complicado. En este captulo hemos cubierto algunas de esas tareas menos programticas:
Lucha de camino a travs de lneas de comando y los trmites burocrticos para obtener un certificado de aplicacin
Estamos al final del camino en cuanto a hacer uso de las caractersticas mviles en una pila LiveCode, y teniendo que hasta el punto de ser una aplicacin mvil real. El siguiente, vamos a ver algunos addons para LiveCode que le permiten utilizar las funciones ms mviles.
[ 217 ]
Extender LiveCode
La historia hasta ahora ...
El largo y tortuoso camino fue el ltimo single que se lanzar por los Beatles, y que sera un buen ttulo para un libro que describe lo que se tard en llegar LiveCode trabajando en dispositivos mviles! 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 artculo infame en Flash:
http://www.apple.com/hotnews/thoughts-on-flash/
Adobe tambin haba desarrollado una manera de publicar para iPhone de Flash Professional, sino como parte de la determinacin de Apple de no permitimos Flash cualquier cosa que pueda utilizarse en el iPhone, las reglas de la App Store de presentacin 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 publicacin final. Aplicaciones GameSalad y Unidad sigui publicndose y le fue bien en la App Store. RunRev trat de convencer a Apple para permitir LiveCode (que todava se llamaba Revolucin Runtime en el momento) que pueda utilizarse como una herramienta de publicacin para el iPhone, incluso la promesa de publicar slo en el iPhone, y no seguir adelante con la publicacin 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 haba 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 difcil estar seguro de si eso es lo que hizo la diferencia, pero el 9 de septiembre de 2010, Apple ha cambiado su posicin sobre el tema. Este es el mensaje que me despert a la maana:
http://www.apple.com/pr/library/2010/09/09Statement-by-Apple-on-AppTienda-Review-guidelines.html
Rpidamente me envi un mensaje a la Revolucin lista de correo electrnico, titulado cmo hacer totalmente da de Kevin, "Kevin" ser Kevin Miller, CEO de RunRev. Tuvo el efecto deseado, y an se pueden leer los mensajes de la carta:
http://runtime-revolution.278305.n4.nabble.com/how-to-totally-makeKevin-s-da-td2532866.html
Esto me RunRev de nuevo en el desarrollo de una "Publicar en iOS" caracterstica, 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 slo haba hecho la funcin de iOS funcionan bien, pero tambin ha publicado la primera versin de la "Publicar en Android" caracterstica. 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 rpido, y en abril de 2012 RunRev haba puesto en prctica todas las caractersticas de iOS para Android tambin, adems de haber aadido mucho al conjunto de caractersticas para iOS. Sin embargo, no todas las caractersticas que est cubierto y hay un mercado de otros fabricantes de complementos para LiveCode, lo que hace que el desarrollo sea ms fcil en LiveCode, o que proporcionan funciones que an no estn disponibles en la versin estndar. stos son algunos de los complementos, la mayora de las cuales se pueden comprar en el mercado LiveCode:
http://www.runrev.com/store/
MobGUI
Ya hemos usado MobGUI en captulos anteriores. Toma la forma de un plugin. Usted coloca el archivo en su MobGUI plugins carpeta. Esta leccin 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 peridicos LiveCode en la tarjeta de la pila, y luego cuando la aplicacin se ejecuta, los controles estndar se intercambian los controles nativos. Esto tiene una ventaja sobre slo hacer controles estndar que se parecen a los controles de iOS, ya que el control se ve bien tambin. MobGUI no hace nada que no se poda ver con sus propios scripts, pero hace que sea mucho ms fcil de usar diseo y controles mviles 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 comunicacin tctiles para que pueda dar a sus stacks LiveCode un aspecto ms artstico. Adems de la ciencia ficcin 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 pgina 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 acta como una cubierta para albergar muchos tipos de controles personalizados LiveCode. Adems de ser el titular de Sons Of Thunder controles personalizados, tambin ha sido utilizado por otros desarrolladores como una manera fcil de traer sus propios controles personalizados en el mercado. El sitio web DropTools incluye descripciones detalladas de cmo usted puede desarrollar sus propios controles DropTools compatibles. El sitio tambin acta como un "agregador" para los controles personalizados LiveCode, e incluye enlaces a ambos DropTools y no DropTools compatibles add-ons. La pgina principal es located aqu:
http://droptools.sonsothunder.com/
Muchos de los controles personalizados no se refieren a las aplicaciones mviles, 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 slo para iOS. Esta es la lista tal como est, junto con descripciones tomadas de la pgina LiveCode mercado:
http://www.runrev.com/store/product/mergExt-1-0-2/
modal.
mergAnswerColor: Se trata de un externo iOS que presenta un selector de color mergAV: Se trata de un externo iOS que agrega funciones y comandos
relacionados con el marco AVFoundation. Actualmente, esto incluye la seleccin, grabar, guardar y editar videos.
mergBanner: Esta es una externa iOS que aade una bandera iAd para su
relacionados con la interaccin con los documentos. Esto incluye actualmente presenta un avance modal, abierto en el men de aplicacin, documento men de opciones, y solicitando los iconos del documento en formato PNG. La impresin es tambin disponible a travs de la vista previa.
mergMK: Este es un LiveCode MapKit externo que aade un control del mapa, que
admite que muestra la ubicacin del usuario con la rbrica, aadiendo pins anotacin, y polilneas.
SMS.
mergMessage: Esta es una externa iOS que aade un comando para enviar un mensaje
mergPop: Se trata de un externo iOS que aade funciones a presentar una hoja de accin (Pop-over en el iPad) y el men contextual para la interaccin del usuario.
mergReader: Se trata de un externo iOS que presenta un lector de PDF modal utilizando el cdigo abierto vfrReader proyecto. mergSettings: Se trata de un externo iOS que integra una aplicacin LiveCode con la aplicacin Ajustes y tambin incluye InAppSettingsKit presentar un
tweet.
mergTweet: Esta es una externa iOS que aade un comando para enviar un mensaje mergXattr: Se trata de un externo iOS que agrega comandos para configurar el
leer una amplia gama de tipos de cdigos de barras a travs de la cmara trasera de un dispositivo mvil.
Appendix
detectar colisiones entre objetos. Es muy adecuado tanto para crear juegos y aplicaciones para hacer la presentacin. Aqu est su informacincin de pgina en el mercado LiveCode:
http://runrev.com/store/product/animation-engine-5/
[ 217 ]
Extending LiveCode
Aunque no es especficamente para uso mvil, animationEngine se ha ajustado para cumplir con los requisitos iOS App Store, y as todava debe ser de uso en la fabricacin de aplicaciones de iOS. Tambin funciona para aplicaciones de Android. Como se muestra en la Creacin a travs de los instaladores de aire para iOS en el ltimo captulo, AirLaunch es un add-on que facilita la creacin de ms de-the-air archivos de instalacin para iOS. Una decola descripcin se puede encontrar aqu:
http://www.hyperactivesw.com/airlaunch/ index.html
Si va a ir a hacer una bonita paleta personalizada para hacer ms fcil que arrastrar y soltar los controles personalizados a la ventana de la tarjeta, tenga en cuenta lo que es DropToolscompatible. Se podra ahorrar una cantidad significativa de tiempo para resolver el problema que resuelve DropTools ya, y los controles personalizados estara en lnea con los controles DropTools otros, haciendo que la pantalla menos gente con paletas personalizadas! Hay una gran cantidad de informacin sobre el desarrollo de la Dra.opTools controles compatibles en esta pgina:
http://droptools.sonsothunder.com/developer/
Exterioridad
Abajo a la derecha de la ya mencionada "lecciones-y-tutoriales" de la pgina es una larga lista de tutoriales, dos de los cuales se relacionan con lo que los externos. Estos tutoriales estn destinados en particular para el desarrollo externo de aplicaciones de escritorio. Por developing externos mviles, debe mira esta pgina:
http://www.runrev.com/developers/documentation/externals-sdk/
[ 218 ]
Appendix
En el momento de la escritura, esta pgina slo cubre los aspectos externos de iOS, pero no hay razn para esperar que por el tiempo que usted est leyendo esto, habr informacin sobre la creacin de lo externo Android tambin. La pgina es muy larga, e incluso incluye un video de 17 minutos! El c de vdeoun ser visto YouTube tambin, en esta direccin:
http://www.youtube.com/watch?feature=player_embedded&v=lqduyQkhigg
La creacin de lo externo no es trivial. Si usted tiene una idea para un externo til, pero siento que es ms all de sus capacidades o intereses para creacinte a ti mismo, toma un vistazo a la pgina mergExt:
http://mergext.com
Aqu usted puede hacer sugerencias o votar por los externos que le gustara ver cre. Si usted siente que puede hacer lo externo, por qu no ponerlos a disposicin 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 ]
[ 220 ]
hay tramos largos de mismos pxeles de colores para la compresin de datos para funcionar bien.
[ 222 ]
[ 222 ]
ndice
La
Adobe Director 132 Adobe Flash 132 AirLaunch aproximadamente 202 URL, para informacin 203 alarma de reloj 160 alphaData propiedad 134 Amazon Appstore aproximadamente 40-43 URL 209 Androide 60 pruebas Android App el envo, a los probadores 199 Android Debug Bridge (ADB) 61 Android developer Amazon Appstore 40, 41 Android Market 36 Android SDK, la descarga de 44 convirtiendo 36 LiveCode, sealando Android SDK 47, 48 Android Keytool aplicacin buscando 204, 205 utilizando 204, 205 Android Market 36-40 Android SDK descargar 44 instalar, en Mac OS X (Intel) 45 instalacin, en Windows 46, 47 LiveCode, poiting a 47, 48 Android seccin aproximadamente 196 Permisos de aplicaciones 198 Configuracin bsica de aplicacin 196 Requisitos y restricciones opciones 198 Opciones de la interfaz de usuario 199 Android pruebas de 60, 61 Dispositivo virtual de Android partida 60 animationEngine 215 Manzana 209 Opciones de aplicaciones Android seccin Permisos, 198 aplicaciones creando, por los beta testers 199 subir, a las tiendas de aplicaciones 208, 209 Aplicacin de las tiendas aplicacin, subir a 208, 209 comparando 209 app store archivo de envo la creacin de 204 ARMv7 190
B
Configuracin bsica de aplicacin, el artculo 196 Android Configuracin bsica de la aplicacin, iOS seccin 191, 192 BetaBuilder aproximadamente 203, 204 URL 203 beta testers aplicaciones, capacidad para 199
[ 221 ]
Birthday Reminder 160 mapas de bits de datos de mapa de bits 132 utilizado, para la creacin de botones de estilo OS 80 Puntos de interrupcin 31 Navegador de tarjeta aproximadamente 112 controles del navegador, aadiendo 113 browserFinishedLoading funcin 118 Informes Bug artculo 189 Construir para la configuracin de la seccin 190 iOS
D
selectores de fecha creando 161-164
C
botones de la calculadora la creacin de 19 controladores de tarjetas la adicin de 22, 23 tarjetas la creacin de 15, 16 navegar entre los 16 charToNum funcin 132 checkdistance manejador 156 Regalo de Navidad lista 160 manejador clearPressed 24 clipboardData 22 cdigo, LiveCode jerarqua sobre 14 tarjetas, la creacin de 15, 16 cartas, navegando entre 16 y 17 deteccin de colisiones maskData, usando para 139 colisin mapa deteccin creando 136-138 Copiar archivos del artculo 189 currentcommand variable de 25 CurrentValue variable 26 personalizados complementos la creacin de 216 controles personalizados 216 externas 216, 217 controles personalizados 216 Esquema de URL personalizado, iOS seccin 194
[ 224 ]
selector de fechas, banco de pruebas de aplicaciones mviles Viendo del 77 depuracin, LiveCode 30, 31 eliminar manejador 180 correo electrnico de escritorio de aplicaciones, banco de pruebas de aplicaciones mviles invocando 72 nativa aplicacin de correo electrnico, llamando a 72 distancia calcular, entre dos puntos sobre la Tierra 167, 1 6 8 funcin distancia 156-179 distribucin 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
funcin edgepiece huevo temporizador 152 160 e-mail de prueba, banco de pruebas de aplicaciones mviles instalacin, en los dispositivos 72 externals 8, 216, 217
F
Flash 132
G
Seccin general 188 genericRGB perfil de color 138
[ 225 ]
funcin GetDistance 179 getPixel funcin 132 aproximadament e 133 pruebas 134, 136 Gimp 133 GMT 161 Google Play URL 209 GPS 164 Interfaz grfica de usuario (GUI) 170 Greenwich Mean Time. Ver GMT
H
14 controladores de jerarqua, LiveCode tarjetas, creando cdigo 14 15 apilar estructura 14 scripts de inicio de tarjetas aproximadamente 177 aadiendo, a app recordatorios 178-180 Software hiperactivo 202 HyperCard 8
Yo
Iconos rea, imagen iOS artculo 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 aplicacin de la calculadora sencilla 18 instaladores crear, para iOS 202 controles de la interfaz sobre 28 botones rollover 28-30 imgenes fijas de control 28 Reproductor de vdeo de control 28
[ 226 ]
instaladores, creando para 202 pruebas de 64 pruebas, iOS simulador utilizado 64 iOS App la preparacin de 200, 202 iOS nombres de cdigo 57 iOS Developer convirtiendo 49-56 iOS SDK LiveCode, apuntando a 59, 60 iOS seccin aproximadamente 189 Configuracin bsica de aplicacin 191, 192 Construir para la configuracin 190 Esquema de URL personalizada 194 Iconos de rea 192 Opciones de Orientacin 194 Requisitos y restricciones opciones 194 Pantallas Splash 193 Status Bar opcin 195 iOS simulador utilizando 64 iTunes Connect URL 209
J
rompecabezas la creacin de 146 imageData del, transfiriendo 151-154 imagen, seleccionar 146-151 piezas, creando 146-151 eventos de toque, la creacin de 155-157
K
Keepers tarjeta aproximadamente 125 la creacin de 126-128 archivo de almacn de claves 204 Kindle Fuego aadiendo, a ADB 62, 63 con 61
L
diseos, LiveCode con el Administrador de Geometra alrededor del 93
[ 227 ]
botones, posicionando 94 diseos, utilizando MobGUI 95 diseos, utilizando un controlador de cambio de tamao el 91 por cdigo simple ejemplo de diseo 92 Lingo idioma 20 Links tarjeta aproximadamente 114 manejador de init, aadiendo 118, 119 enlaza funcin de extraccin, lo que hace 115-118 118 eslabones perdidos Enlaces controlador tarjeta init la adicin de 118, 119 Enlaces funcin de extraccin creando 115-118 Linux artculo 189 LiveCode aproximadamente 7, 69, 131, 187 personalizados complementos, creando 216 depuracin 30-32 Diccionario 9 descargar 9 extiende 212 jerarqua, creando 13 Ayuda men 9 Historia 8 iconos, arrastre de las herramientas de paleta 11, 12 imageData del, mal uso de 134 instalacin de 9 interfaz controla 28 rompecabezas, la creacin de 146 principal de Windows 10 metforas 8 MobGUI 83 lecciones en lnea 9 Para utilizar los botones de estilo, la creacin de 79 sealando, a SDK iOS 59, 60 poiting para Android SDK 47, 48 recordatorios de aplicacin, la creacin de 170 Recursos 9
[ 226 ]
Tutoriales en lnea RunRev los 32 tamao de la pantalla y la orientacin, el ajuste 91 Comience ventana Center 9 banco de pruebas de aplicaciones mviles, la creacin de 70 Tutoriales 9 Gua del usuario 9 Las muestras de usuario 9
LiveCode aplicacin otra pila, utilizando para el almacenamiento de datos 107 almacenamiento de datos pila, creando 107109 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 Aplicacin WebScraper, creando 110 LiveCode Gerente Geometra utilizado, para los diseos de 93 LiveCode mvil 35 loadImage manejador 150 ubicacin de la tarjeta creando 180-182
M
Mac artculo 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 deteccin de colisiones Tarjetas multimedia aproximadamente 121 Enlaces para los medios, la extraccin de 121, 122 Medios de tarjetas de guiones la creacin 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 mergTweet 215 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 creacin de banco de pruebas de aplicacin 86-88 utilizado, para los diseos de 95 con 213 de trabajo 213 MobGUI controles nativos el 88 por funciones 89, 90 mouseColor funcin 136 MouseEnter manejador 136 mouseUp manejador 179 moveCars manejador 144
N
ubicacin nativo seguimiento 165-167 newNumber booleano variable de 25, 26 Nook 67 notificacin de mensajes 160 numberPressed 21
O
OpenCard evento 24 Opciones de orientacin, la seccin 194 iOS Para utilizar los botones de estilo la creacin de 80 crear, mapas de bits utilizado 80 Photoshop, utilizado para la preparacin de estados de botn 80-83
P
Pascal 132
[ 228 ]
utilizado, para la preparacin de los estados de botn 80-82 fsica dispositivo Android conectar 61 conectar, Fuego Kindle utiliza 61 Fuego Kindle, aadiendo a ADB 62, 63 imgenes, banco de pruebas de aplicaciones mviles carga 77-79 piezas creando, por rompecabezas 146-151 pixel 132 Plus 8 preopenstack manejador 155
R
raza imagen del coche creando 141-145 hipdromo la creacin 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 aplicacin tarjetas, trazando 170-174 la creacin de 170 formulario de entrada 182-185 Scripts de inicio de tarjetas, aadiendo 178-180 ubicacin de la tarjeta, creando 180-182 pantallas, creando 170-174 apilar las funciones de nivel, aadiendo 174-177 Requisitos y Restricciones, opciones de Android artculo 198 Requisitos y opciones Restricciones, iOS artculo 194 resetpuzzle manejador 153 cambiar el tamao de controlador de utilizado, para los diseos de 91 returnInField mensaje 174 RGB valora 132 botones rollover 28-30 RunRev.com 133 Tutoriales en lnea RunRev los 32 Runtime Revolution 8, 211
[ 229 ]
S
tamao de la pantalla y la orientacin ajuste 91 diseo, utilizando LiveCode Gerente Geometra 93 diseo, utilizando MobGUI 95 diseo, utilizando controlador de cambio de tamao 91 otros tamaos 96 14 guiones lista de la compra 160 showData funcin 175, 176 aplicacin de la calculadora sencilla botones de la calculadora, la creacin de 19 controladores de tarjetas, aadiendo 22, 23 la creacin de 18 ampliar 27 inspector paleta, utilizando 18 Las variables 24 simple pila pruebas, en los simuladores de 65, 66 probando, en los dispositivos 66, 67 Pantallas Splash opcin, iOS seccin 193 pila de secuencias de comandos de nivel aproximadamente 174 aadiendo, a app recordatorios 174-177 pila de tarjetas 8 Stacks 8 Pilas artculo 189 apilar estructura aproximadamente 100 cdigo impulsado 100 ubicaciones de cdigo 101-103 diseos creados manualmente 100 estructura de pila, jerarqua LiveCode 14 Standalone Settings Opciones de aplicacin aproximadamente 188 Android artculo 196 Copiar archivos del artculo 189 General de la Seccin 188 iOS artculo 189 Pilas artculo 189 Status Bar opcin, iOS artculo 195 Imagen fija de control 28 SuperCard 8
T
navegacin por pestaas, WebScraper la creacin de 110, 111 nombres sabrosos cdigo Ice Cream Sandwich 48 Jelly Bean 48 Key Lime Pie 48 banco de pruebas de aplicaciones mviles crear, MobGUI utilizado 86-88 selector de fechas, mostrando 77 correo electrnico de escritorio de aplicaciones, invocando 72 e-mail de prueba, instalar en dispositivos de 72 aplicacin del navegador nativo, llamando a 75 nativa aplicacin de correo electrnico, llamando a 72 imgenes, carga de 77-79 la creacin de 70 pila del banco de pruebas, la creacin de 70, 71 tratando, en los dispositivos 73, 74 pgina web, apertura 75 probadores Android App, enviando a 199 TestFlightApp.com aproximadamente 204 URL 204 Texto de la carta aproximadamente 120 la creacin de 120 medicin del tiempo las funciones de utilidad creando 161-164 recolectores de tiempo creando 161-164 tmControl 213, 214 lista de tareas pendientes 160 herramientas de paleta sobre 11 iconos, arrastre de 11, 12 toRand funcin 179 eventos de toque la creacin, por rompecabezas 155-157 touchMove evento 156
U
ID de dispositivo nico (UDID) 200
[ 228 ]
Unix Time 161 Opciones de interfaz de usuario de Android, seccin 199 UTC (Tiempo Universal Coordinado) 161
V
las variables alrededor del 24 por currentcommand variable de 25 CurrentValue variable 26 newNumber variable booleana 25 tipos de variables 24-26 detallado sintaxis 20 Reproductor de vdeo de control 28
la apertura de 75 WebScraper aplicacin Navegador tarjeta 112 la creacin de 110, 111 Guardianes de la tarjeta 125 Links tarjeta 114 121 tarjetas multimedia navegacin por pestaas, la creacin de 110 Texto de la carta 120 Web del artculo 189 Ventanas artculo 189
X
Xcode instalando 57-59
W
pgina web, banco de pruebas de aplicaciones mviles aplicacin del navegador nativo, llamando a 75
[ 229 ]
[ 230 ]
Packt, que se pronuncia 'lleno', public su primer libro "Mastering phpMyAdmin para una eficaz gestin de privilegios" en abril de 2004 y, posteriormente, continu especializan en la publicacin de libros muy centrados en tecnologas y soluciones especficas. Nuestros libros y publicaciones de compartir las experiencias de sus compaeros de los profesionales de TI en la adaptacin y personalizacin de los sistemas de hoy en da, las aplicaciones y los marcos. Nuestras soluciones basadas en libros que dan el conocimiento y el poder para personalizar el software y las tecnologas que est utilizando para hacer el trabajo. Packt libros son ms especficos y menos generales que las TI libros que hemos visto en el pasado. Nuestro modelo de negocio nico que nos permite ofrecerte la informacin ms especfica, dndole ms de lo que usted necesita saber, y menos de lo que no. Packt es una empresa moderna, la edicin y nico, que se centra en la produccin de calidad y de vanguardia libros para las comunidades de desarrolladores, administradores y novatos por igual. Para obtener ms informacin, por favor visite nuestro sitio web: www.PacktPub.com.
Damos la bienvenida a todas las preguntas de la gente que est interesada en la edicin. Propuestas de libros deben ser enviados a author@packtpub.com. Si su idea del libro se encuentra todava en una etapa temprana y que le gustara discutir en primer lugar, antes de escribir una propuesta de libro formal, pngase en contacto con nosotros y uno de nuestros editores puesta en servicio se pondr en contacto con usted. No estamos slo en busca de autores publicados, si usted tiene fuertes habilidades tcnicas, 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.
Por favor, compruebe www.PacktPub.com para obtener informacin sobre nuestros ttulos
Por favor, compruebe www.PacktPub.com para obtener informacin sobre nuestros ttulos