Abarcar el Contenido A Través de Múltiples CDROMs P ara abarcar el contenido a través de múltiples CD ’s, debes crear una a aplicación por separado para cada CD . S i esta no es una opción para tu proyecto, y no hay forma de que puedas ajustar tu proyecto a un solo CD ,deberías considerar la distribución de tu proyecto en un D V D . Abrir un Archivo .DOC de Microsoft Word P ara abrir un D ocumento de W ord usando AutoP lay M edia S tudio, utiliza la Acción Rá pida “Open D ocument” para llamar al documento. U sa el botón Browse que está junto a “D ocument to Open”para seleccionar el archivo .D OCque quieras abrir. R ecuerda que tienes que asignarle una Acción R á pida a algún objeto, así que primeramente tienes que crear uno (normalmente un botón). Nota: AutoP lay M edia S tudio no cuenta con un objeto W ord. P ara abrir un documento W ord en la computadora del usuario, éste debe tener un programa capaz de abrir el documento (por ejemplo M icrosoft W ord o M icrosoft W ord V iewer). Consejo: AutoP lay M edia S tudio 7 contiene el objeto R ichT ext que puede ser usado para mostrar texto con formato. Abrir un Archivo HTML en una Ventana Desplegable En AutoP lay M edia S tudio es posible abrir un documento H T M L en el Explorador por defecto del usuario. P ara lograr esto, por favor dirígete al tema “Abrir un Sitio Web en un Explorador Externo”. Abrir un Archivo PDF Adobe Acrobat P ara abrir un Archivo P D F en Adobe Acrobat usando AutoP lay M edia S tudio,utiliza la Acción R á pida “Open D ocument” para llamar al documento. U sa el botón Browse que estájunto a “D ocument to Open”para seleccionar el archivo P D F que quieras abrir. R ecuerda que tienes que asignarle una Acción R á pida a algún objeto, así que primeramente tienes que crear uno (normalmente un botón). 1 Nota: AutoP lay M edia S tudio no cuenta con un objeto P D F. P ara abrir un documento PD F en la computadora del usuario, éste debe tener un programa capaz de abrir el documento (por ejemplo Adobe Acrobat R eader). Abrir un Archivo PPT/PPS de PowerPoint P ara abrir una presentación P owerP oint usando AutoP lay M edia S tudio, utiliza la Acción R á pida “Open D ocument” para llamar al documento. U sa el botón Browse que estájunto a “D ocument to Open”para seleccionar el archivo P P T /P P S que quieras abrir. R ecuerda que tienes que asignarle una Acción R á pida a algún objeto, así que primeramente tienes que crear uno (normalmente un botón). Nota: AutoP lay M edia S tudio no cuenta con un objeto P owerP oint. P ara abrir una presentación P owerP oint en la computadora del usuario, éste debe tener un programa capaz de abrir la presentación (por ejemplo M icrosoft P owerP oint). Abrir un Archivo QuickTime MOV P ara abrir una película Q uickT ime usando AutoP lay M edia S tudio, utiliza la Acción Rá pida “Open D ocument” para llamar al documento. U sa el botón Browse que está junto a “D ocument to Open”para seleccionar el archivo .M OV que quieras abrir. R ecuerda que tienes que asignarle una Acción R á pida a algún objeto, así que primeramente tienes que crear uno (normalmente un botón). Nota: AutoP lay M edia S tudio no cuenta con un objeto Q uickT ime. P ara abrir un documento Q uickT ime en la computadora del usuario, éste debe tener un programa capaz de abrir la película (por ejemplo Apple Q uickT ime). Ademá s, date cuenta que no utilizamos la Acción R á pida “P lay M ultimedia”. La Acción R á pida “P lay M ultimedia” es sólo para tipos de archivo multimedia que pueden ser reproducidos en el interior de AutoP lay M edia S tudio. Abrir un Sitio Web en un Explorador Externo AutoP lay M edia S tudio contiene una Acción R á pida incorporada la cual abre un sitio web en el explorador por defecto del usuario: V iew W ebsite. Esto es útil, por ejemplo, si quieres tener un botón etiquetado como “Company W ebsite”para abrir el sitio web de tu compañía en el explorador por defecto del usuario P ara lograr esto,utiliza la Acción R á pida “V iew W ebsite”: 1 . Crea un objeto de Botón. 2 2. H az doble click en el objeto de Botón, elige la pestaña Q uick Action (Acción Rá pida)y luego elige V iew W ebsite como Action to run (Acción a ejecutarse). 3. En el campo W eb site,escribe la dirección web de tu compañía. 4. H az click en OK . Ajustar el Control de Volumen en Tiempo de Ejecución A manera de ejemplo,crearemos un proyecto con dos botones: un botón que incremente el volumen y otro botón que lo disminuya. 1 . Inserta el siguiente código en el evento On Click del botón que incrementa el volumen: audio_channel = CH ANNEL_U S ER 1 ; Audio.S etV olume(audio_channel,Audio.GetV olume(audio_channel)+ 20); 2. Inserta el siguiente código en el evento On Click del botón que disminuye el volumen: audio_channel = CH ANNEL_U S ER 1 ; Audio.S etV olume(audio_channel,Audio.GetV olume(audio_channel)-20); Ajustar el Nivel del Volumen Ajustar el volumen de un canal de audio es útil cuando tú quieres,por ejemplo,no tener música impertinente escuchá ndose en tu proyecto. P ara lograr esto en AutoP lay M edia S tudio,utiliza la acción Audio.S etV olume. Como un ejemplo, tocaremos un soundtrack como música de fondo y fijaremos el volumen con un má ximo de 25% : 1 .Inserta el siguiente código en el evento “On S how”de tu pá gina: Audio.Load(CH ANNEL_BACK GR OU ND ,"your_audio_here.ogg",true,true); Audio.S etV olume(CH ANNEL_BACK GR OU ND ,63);-- fija el nivel de volumen en un 25% de 255 3 Ajustar los Atributos de Archivo para Más de un Archivo AutoP lay M edia S tudio tiene una acción File.S etAttributes para ajustar los atributos de un archivo. S i quieres ajustar los atributos de muchos archivos a la vez, necesitas ejecutar esa acción múltiples veces.U na manera fá cil de hacer esto es almacenar la lista de archivos en una tabla, y luego orbitar a través de esa tabla utilizando un bucle for. Cada paso a través del bucle ajustarálos atributos para cada uno de los archivos. U na forma sencilla de crear una tabla llena de rutas de archivo es usar la acción File.Find. La acción File.Find regresa una tabla conteniendo una lista de todos los archivos que concuerden con un patrón específico. Como ejemplo, ajustaremos todos los archivos .exe en la carpeta raíz de la unidad Ca sólo lectura: 1 . Inserta el siguiente script dentro de un evento de tu proyecto: files_to_change = File.Find("C:\\","*.exe"); -- orbita a través de los archivos para pasarlos a tabla -- y ajusta los atributos de cada archive uno a la vez for index,filename in files_to_change do File.S etAttributes(filename,{R eadOnly= true}); end Ajustar los Efectos de Transición de Página AutoP lay M edia S tudio incluye un par de transiciones de pá gina. En lugar de simplemente saltar de una pá gina a la siguiente,y hacer que una pá gina desaparezca y la siguiente aparezca, estas transiciones hacen que una pá gina salte un poco má s emocionante. P ara lograr esto,utiliza las transiciones de pá gina: 1 . En el panel P ropiedades de la pá gina, cambia el campo T ransition de None a la transición que desees (D issolve, S lide o W ipe). Ahora, al utilizar una Acción page jump o una page navigate desde esa pá gina, la transición que seleccionaste seráutilizada. 4 La transición no afecta a algunos objetos, tales como web, listbox, etc. P ara utilizar las transiciones en pá ginas conteniendo estos objetos,haz lo siguiente: 1 . T oma una captura de pantalla de la pá gina completamente renderizada que quieras hacerle la transición. 2. Inserta esta captura de pantalla como una gran imagen hacia la pá gina a la que quieras que se haga la transición. 3. Ajusta la visibilidad de todos los objetos a false, y la visibilidad de la imagen a true. 4. En el evento On S how de esta pá gina, muestra todos los objetos, y oculta la imagen. Alternar la Música de Fondo a On/Off Es posible en AutoP lay M edia S tudio tener música de fondo reproduciéndose en tu aplicación. En AutoP lay M edia S tudio esto se logra usando la Acción R á pida P lay/P ause Background M usic: 1 . Crea un botón. 2. Elige P lay/P ause Background M usic como la Acción R á pida para el botón. Añadir una Contraseña de Protección H ay muchos casos donde se le requeriráal usuario introducir información que no debe estar visible en la pantalla, tal como una contraseña. En AutoP lay M edia S tudio se consigue esto usando una acción D ialog.P asswordInput. 5 Como un ejemplo, se le requeriráal usuario una contraseña al iniciar un programa, y se compararácon un valor almacenado (en consecuencia se limita el acceso al programa sólo a aquellos que conocen la contraseña). P ara lograr esto: 1 .Inserta el siguiente script en el evento “On S how”de la pá gina: -- La contraseña “correcta” real_password = "password"; -- P edir al usuario que escriba la contraseña user_password = D ialog.P asswordInput("P assword","P or favor introduce la contraseña: ",M B_ICONQ U ES T ION); -- Comparar si la contraseña del usuario es la contraseña “correcta”. -- S i el usuario proporciona una contraseña errónea,salir del programa. if real_password ~= user_password then Application.Exit(); end Este script hace que aparezca un cuadro de diá logo requiriendo la contraseña. Cualquier cosa que el usuario escriba en este cuadro de diá logo aparecerácomo ******. S i la contraseña correcta es escrita, el programa se abriránormalmente. S i la contraseña escrita no es la correcta,el programa se cerrará . Alternativamente, tú puedes tener una “lista” de contraseñas vá lidas. P ara lograr esto, almacena tus contraseñas vá lidas en una tabla: 1 .Inserta el siguiente script en el evento “On S how”de tu pá gina: --S uponer que el usuario escribióuna contraseña incorrecta correct_password = false; -- La contraseña “correcta” real_passwords = {"password","password2","3rdP assword"}; -- P edir al usuario que escriba la contraseña user_password = D ialog.P asswordInput("P assword","P or favor introduce la contraseña: ",M B_ICONQ U ES T ION); -- Comparar la contraseña del usuario con la contraseña “correcta”. for j in real_passwords do if real_passwords[j] = = user_password then correct_password = true; end end --S i la contraseña no es la correcta,salir if not correct_password then 6 Application.Exit(); end Consejo: Como una pequeña variación de esta técnica, puedes almacenar tu lista de contraseñas en un archivo de texto, y cuando tu aplicación esté abierta, llena una tabla con el contenido de ese archivo de texto. U n ejemplo para pasar un archivo de texto a una tabla lo puedes ver en: “¿Cómo leer líneas específicas de un archivo de texto?”. Añadir un Hipervínculo o un Hotspot a un Objeto Añadir un hipervínculo a un proyecto es útil si deseas que un usuario al hacer click en una parte de tu proyecto pueda obtener má s información. Esto se logra en Autoplay M edia S tudio usando el evento “On Click”de un objeto. Ejemplo 1: Como un ejemplo, asumamos que quieres saltar a la P á gina 2 cuando el usuario hace click sobre la frase “Continue… ” dentro de un P aragraph Object. P ara el propósito de este ejemplo,asumiremos también que tú tienes el siguiente pá rrafo en tu proyecto: 1 . U tiliza un H otspot Object y colócalo sobre la frase “Continue… ” en tu P aragraph Object 2. En la ficha “Q uick Action”del H otspot Object,elige “S how P age”como Action to run, luego elige “S pecific P age” en P age to show, y elige “P age 2” en P age name. Ejemplo 2: P ara obtener efectos “mouseover” (el texto cambia de color cuando tú posicionas el ratón encima de la palabra “Continue… ”)no utilices un H otspot, en vez de esto utiliza un segundo P aragraph Object que contenga sólo el texto que el “mouseover” debería cambiar: 1 . Crea un P aragraph Object que contenga solamente la palabra “Continue… ” 2. Coloca ese objeto exactamente sobre la frase “Continue… ” en tu pá rrafo má s grande. 7 Consejo: U sa las flechas del teclado para posicionar exactamente tu segundo P aragraph Object. 3. S elecciona el color que quieras para el “mouseover”. En la ficha Q uick Action de este P aragraph Object elige “S how P age”en Action to run;elige “S pecific P age”en P age to show, y elige “P age 2” en P age name. T ambién puedes hacer que al posicionar el ratón sobre un objeto de pá rrafo cambie de dibujo el cursor del ratón; para ello ve a la ficha “Attributes”y selecciona “H and”en Cursor y listo. Ejemplo 3: P ara incluir hipervínculos en un archivo de texto sin utilizar un H otspot Object o un P aragraph Object,incrusta un archivo H T M L en tu proyecto usando un W eb Object. Cuando el usuario hace click sobre un enlace en este archivo incrustado,tu proyecto puede ejecutar cualquier acción que elijas: 1 . Crea un W eb object y cá rgale el archivo H T M L deseado. 2. V e a “¿Cómo interactuar con Web objects incrustados?” para establecer la navegación en tu proyecto,y para un ejemplo de un simple archivo H T M L. Nota: Esta es la mejor manera de incluir hipervínculos si tu texto no es está tico con relación a la pá gina. M ientras que un P aragraph Object o un H otspot Object son estacionarios, los vínculos dentro de un archivo H T M L se mueven diná micamente basados en el tamaño del W eb object en tiempo de ejecución. Aplicar Cambios a Múltiples Objetos Con frecuencia es útil poder cambiar las propiedades de varios objetos a la vez. P ara lograr esto en AutoP lay M edia S tudio: 1. 2. 3. 4. S elecciona el primer objeto. M antén oprimida la techa Ctrl de tu telado. S elecciona los demá s objetos que desees. S uelta ahora la tecla Ctrl. Cualquiera de las propiedades que estén disponibles para todos los objetos que seleccionaste, estará n visibles en el P anel P ropiedades (P roperties P ane). Ahora puedes hacer los cambios que requieras. Consejo: Cuando selecciones múltiples objetos, el mantener oprimida la tecla S hift de tu teclado tiene las mismas funciones que mantener oprimida la tecla Ctrl. 8 Auto-Guardar Mi Proyecto Los apagones de luz o “congelamientos” de las computadoras son inevitables, incluso pareciera que esto ocurre a propósito en el peor momento posible. AutoP lay M edia S tudio tiene una opción incorporada para grabar tu proyecto en un intervalo de tiempo que tú elijas. P ara habilitar esta opción: 1 . V e al menú Edit > P references. 2. H az click en D ocument. 3. H abilita la característica Auto S ave y elige el intervalo de tiempo para el autoguardado. 4. H az click en OK . Bloquear Objetos En AutoP lay M edia S tudio es posible bloquear tus objetos a la pá gina de modo que no puedan ser movidos a ninguna posición o ser editados al hacer doble click sobre ellos. El bloquear tus objetos los hace aparecer como si fueran parte del fondo. S i haces doble click sobre un objeto bloqueado,la ventana P age P roperties serámostrada. Nota: Aunque un objeto esté bloqueado, aún puedes editarlo desde el panel P ropiedades. P ara bloquear un objeto: 1 . S elecciona el objeto deseado. 2. H az click derecho sobre el objeto. 3. Elige Lock. P ara desbloquear un objeto: 1 . S elecciona el objeto deseado. 2. H az click derecho sobre el objeto. 3. D eshabilita Lock. Caducar mi Aplicación Después de Treinta Días P ara hacer que tu Aplicación expire después de treinta días, almacena en el registro la fecha en que el programa fue ejecutado por primera vez, y cada vez consecutiva que el programa es corrido, compara el registro con la fecha de expiración (30 días después de que tu programa por primera vez se instaló) P ara lograr esto: 9 1 . Inserta el siguiente código dentro del evento On S tartup de tu proyecto: -- Inicializar variables days_left = 30; date_installed = Application.LoadV alue("M y Application ","D ate Installed"); time_limit = 30;--la duración del periodo de prueba,en días -- Convertir el valor de la cadena a número date_installed = S tring.T oNumber(date_installed); -- Fue date_installed 0 (inexistente)? if date_installed = = 0 then -- El valor fue inexistente,créalo Application.S aveV alue("M y Application","D ate Installed", S ystem.GetD ate(D AT E_FM T _JU LIAN)); else -- Actualizar días que quedan days_left = (date_installed + time_limit)- S ystem.GetD ate(D AT E_FM T _JU LIAN); end -- H ay días remanentes? if days_left < 1 then -- No hay días remanentes,alertar al usuario y salir. D ialog.M essage("Fin del P eriodo de P rueba","Este software ha expirado"); Application.Exit(); else -- Aún quedan días,alertar al usuario cuá ntos D ialog.M essage("P eriodo de P rueba","T e quedan "..days_left.."días en tu periodo de prueba."); end Caducar mi Aplicación después de Cierta Fecha P ara hacer que tu aplicación expire después de cierta fecha, fija una variable en tu programa para la fecha de vencimiento, y cada vez que el programa sea corrido, compara la fecha actual contra ese valor.S i tu programa ha expirado,se cerrará . P ara lograr esto: 1 . Inserta el siguiente código dentro del evento On S tartup de tu proyecto: --Inserta tu fecha de expiración aquí,con formato Y Y Y Y M M D D --(sin espacios,guiones,abreviaturas,etc.,sólo usa números) --Abajo estála fecha 1 2 de D iciembre de 2003 Expiration_D ate = "20031 21 2" --Obtén la fecha del sistema en formato IS O 10 --Fecha = Y Y Y Y -M M -D D D ate = S ystem.GetD ate(D AT E_FM T _IS O); --Q uita los guiones en la fecha del formato IS O --para reflejar el formato de nuestra fecha de expiración --Fecha = = Y Y Y Y M M D D D ate = S tring.R eplace(D ate,"-","",false); --comprobar si la aplicación ha expirado if D ate > Expiration_D ate then --La aplicación ha expirado D ialog.M essage ("Aplicación V encida!","T u copia de esta aplicación ha expirado! Este programa se cerraráahora."); Application.Exit(); end Al intentar abrir tu aplicación,se desplegaráun mensaje de diá logo como el siguiente: Caducar mi Aplicación Después de Cierto Número de Ejecuciones P ara hacer que tu aplicación expire después de cierto número de ejecuciones, almacena un valor en el registro la primera vez que el programa es corrido, y lo incrementa cada vez consecutiva que el programa es corrido. Entonces, cada vez que el programa se ejecuta,verifica el valor almacenado. P ara lograr esto: 1 . Inserta el siguiente código dentro del evento On S tartup de tu P royecto: -- Fija el número de veces permitido times_allowed = 30; -- R ecupera el número de veces que se ha corrido y convierte el valor en número times_run = Application.LoadV alue("M i Aplicación","H a S ido Corrida"); times_run = S tring.T oNumber(times_run); 11 -- Calcula el número permitido de veces que quedan para poder correrlo times_remaining = (times_allowed - times_run) -- V erifica si esta es la primera vez que la aplicación ha sido corrida -- Guarda el valor del nuevo número de veces que se ha corrido if times_run = = 0 then Application.S aveV alue("M i Aplicación","H a S ido Corrida ","1 "); else Application.S aveV alue("M i Aplicación","H a S ido Corrida ",(times_run + 1 )); end -- V erifica si la aplicación ha sido corrida má s veces que las permitidas if times_run > times_allowed then D ialog.M essage("Fin del P eriodo de P rueba","Este software ha expirado"); Application.Exit(); else D ialog.M essage("P eriodo de P rueba","P uedes ejecutar este P rograma "..times_remaining.."veces má s."); end Cambiar el Icono de la Aplicación P ara cambiar el icono que tu aplicación usa: 1. 2. 3. 4. H az click en el menu P roject > S ettings Activa la casilla “Custon Icon”en Options. H az click en “Browse”y elige el icono que quieras usar. H az click en OK . Nota: Cualquier otro icono personalizado que tú elijas debe estar en el formato .ICO (que es el está ndar de W indows) Cambiar el Tamaño de Página En AutoP lay M edia S tudio, el tamaño predeterminado de un proyecto es de 630 pixeles de ancho por 425 pixeles de alto.S i tu proyecto requiere diferentes dimensiones,cambia el tamaño de la ventana en el cuadro de diá logo P roject S ettings: 1 . V e al menú P roject > S ettings. 2. Cambia el tamaño de la ventana en “W idth” y “H eight” a los valores que quieras,y haz click en OK . 12 Cambiar el Texto de la Barra de Título P ara cambiar el texto que aparece en la barra de título de tu aplicación: 1 . V e al menú P roject > S ettings. 2. Escribe el título de tu elección en el á rea de W indow T itle. 3. H az click en OK . Cargar y Mostrar un Archivo de Texto P ara desplegar una gran cantidad de texto en tu pá gina, utiliza la acción T extFile.R eadT oS tring y muestra los resultados en un objeto de pá rrafo. P ara lograr esto en AutoP lay M edia S tudio: 1 . Elige el menú Object > P aragraph. 2. Inserta el siguiente código dentro de cualquier evento en tu aplicación: text = T extFile.R eadT oS tring("AutoP lay\\D ocs\\large_text.txt"); P aragraph.S etT ext("P aragraph1 ",text); Nota: Acuérdate de añadir un archivo con extensión .txt en la carpeta D ocs de Autoplay. Este archivo de texto debe ser grande y tiene que llevar por nombre large_text. Cerrar Mi Aplicación Inmediatamente Normalmente para cerrar tu aplicación, deberías usar la acción Application.Exit(). S in embargo, si necesitas que tu aplicación termine inmediatamente, en vez de usar Application.Exit(),usa el siguiente código: W indow.Close(Application.GetW ndH andle(),CLOS EW ND _T ER M INAT E); Comparar Dos Strings (Cadenas) Las comparaciones de S tring son ejecutadas de la misma forma que las comparaciones de números. A manera de ejemplo, crearemos dos S prings, y ejecutaremos una acción basada en sus contenidos: 1 .Crear dos variables conteniendo strings: 13 S tring1 = "S oy S tring1 "; S tring2 = "S oy S tring2"; 2.Comparar las dos strings: if S tring1 = = S tring2 then --las dos strings son iguales else -- las dos strings no son iguales if S tring1 > S tring2 then --S tring1 es alfabéticamente má s grande que S tring2 elseif S tring1 < S tring2 then --S tring1 es alfabéticamente má s pequeña que S tring2 end end Nota: S i quieres comparar las longitudes de las dos strings, debes usar la acción S tring.Length: if S tring.Length(S tring1 )= = S tring.Length(S tring2)then --las dos strings tienen la misma longitud end Consejo: P ara ejecutar la comparación de dos strings en un caso no sensible, usa una acción S tring.CompareNoCase. Copiar un Archivo o una Fuente en el Disco Duro Con frecuencia es útil copiar un archivo desde el CD -R OM (o desde otro medio) a la computadora del usuario. En AutoP lay M edia S tudio, esto se logra con una acción File.Copy. A manera de ejemplo, cargaremos una fuente específica dentro de la computadora del usuario: --obtener el directorio de destino (en este caso,donde las fuentes está n almacenadas) fonts_dir = S hell.GetFolder(S H F_FONT S ); --copiar el archivo desde tu CD al directorio de fuentes del usuario File.Copy(_S ourceFolder .."\\my_font.ttf",fonts_dir..\\"my_font.ttf",false,true,false, true,nil); --registrar la fuente en W indows S ystem.R egisterFont(fonts_dir .."\\myfont.ttf","M y Font Name",true); 14 Crear un Botón que Cierre la Aplicación En AutoP lay M edia S tudio,para crear un botón que cierre la aplicación haz lo siguiente: 1 . V e al menú Object > Button y selecciona un archive de botón para usar. 2. H az doble click en el botón que acabas de incorporar,luego haz click en la ficha Q uick Action. 3. S elecciona Exit/Close en Action to run. 4. H az click en OK . Crear un CD de Modo-Mixto Los CD ’s pueden ser creados en modo mixto, es decir, CD ’s que contienen tanto aplicaciones para usarse en una computadora como pistas de música para usarse en un reproductor está ndar de CD ’s. Los CD ’s de modo mixto son frecuencia usados para crear un CDde audio “enriquecido” el cual se reproduce normalmente en un reproductor regular de CDy presenta contenido multimedia adicional cuando es colocado en el CD -R OM de una computadora. H ay tres tipos bá sicos de CD ’s de M odo-M ixto: Datos en Pista 1 Descripción: Este tipo de CD de modo mixto coloca la pista de datos como la primer pista de música en el disco. Pros: El CD es grabado como R OM M odo 1 ,por ello puede ser reproducido prá cticamente en cualquier unidad de CD -R OM . Contras: Algunos reproductores de CDintentará n reproducir la pista datos. La mayoría de los reproductores nuevos pasará n por alto la pista debido a que estálistada como “datos”en la tabla de contenidos del CD , pero algunos reproductores intentará n reproducir la pista de datos como audio,dando como resultado un sonido ruidoso (como el “chillido”de un fax). Este método es usado típicamente sólo en situaciones donde sea improbable que el CD vaya a ser reproducido en un reproductor de CD de audio. 15 Pre-Gap / Track-Zero Descripción: Este tipo de CD de modo mixto oculta la pista de datos en la pausa antes de que la pista 1 comience. Pros: Los reproductores de CDmá s viejos normalmente no intentan reproducir la pista de datos. Contras: S i el usuario rebobina el CD hasta la pista de datos, los datos pueden ser reproducidos como audio,dando como resultado un ruido desconcertante. Este tipo de CDno se amolda en el está ndar oficial y puede ser no-compatible con algunos reproductores o sistemas operativos. CD Extra o CD Enriquecido Descripción: Este tipo de CD de modo mixto contiene dos sesiones (disco multi-sesión). La primera sesión contiene má s de 98 pistas de audio, y la segunda sesión contiene la pista de datos.Los reproductores de CD de audio sólo pueden “ver”la primera sesión,y por ello no reproducirá n la pista de datos. La mayoría de las unidades de CD -R OM pueden “ver”ambas sesiones,y cargará n tu aplicación AutoP lay. Pros: Incluso los reproductores de CD má s viejos no reproducirá n la pista de datos, así que los oídos y bocinas del usuario está n seguras de daño. Este formato es el má s compatible tanto para reproductores de CD stand-alone como para unidades de CD -R OM . Contras: Los CD́ s enriquecidos no se pueden reproducir en reproductores P hoto CD . S e requiere una unidad de CD -R OM que pueda leer discos multi-sesión. 16 Conclusión Nuestra Sugerencia: T e sugerimos que utilices el tipo “CDEnriquecido”, debido a que cuenta con mayor compatibilidad. Comúnmente cualquier CD -R OM creado para W indows 95 o superior soporta este formato. Los archivos de datos será n reconocidos en el Explorador de W indows como si no hubiera pistas de audio, ya que el Explorador de W indows normalmente sólo puede ver la última sesión en un disco multi-sesión. P or otra parte, los reproductores de audio normalmente sólo ven la primer sesión en un disco multi-sesión. P or esto, los reproductores de audio de CD -R OM y los stand-alone pueden reproducir las pistas de audio. Quemar un CD Enriquecido (CD Extra) con Nero: P ara quemar un CD Enriquecido con Nero Burning R OM (6.0 o superior): 1 . S elecciona “CD Extra”e ingresa tu configuración deseada. 2. Agrega tus pistas de audio arrastrando tus archivos de audio a la ventana de la pista . 3. Agrega tus archivos de datos arrastrá ndolos a la carpeta de la estructura de la ventana. Crear un CD-ROM Navegador de Windows En AutoP lay M edia S tudio se puede abrir una carpeta de la computadora del usuario,ya sea dentro de tu proyecto, o en una ventana externa (lo mismo que al hacer doble click sobre una carpeta de tu escritorio). Es posible abrir una carpeta en vista para explorar (de la misma forma que usando el Explorador de W indows) Abrir una carpeta dentro de tu proyecto: 1 . Crea un W eb Object,y nómbralo W eb1 . 2. Llama la acción W eb.LoadU R L: W eb.LoadU R L("W eb1 ","C:\\"); Nota: S i el usuario no tiene el Explorador de Internet 4.0 o superior como su explorador predeterminado,la vista de la carpeta seráen H T M L,y no basada en W indows. 17 Abrir una carpeta en una ventana externa: 1 . Llama la acción File.Open: File.Open("C:\\","",S W _S H OW NOR M AL); Abrir una carpeta en una ventana del Explorador: 1 . Llama la acción File.ExploreFolder: File.ExploreFolder("C:\\",S W _S H OW NOR M AL); Consejo: S i tu proyecto estásiendo corrido desde la unidad de CD -R OM del usuario y deseas explorar el CD -R OM desde tu aplicación en Autoplay, utiliza _S ourceFolder como la ruta para explorar/abrir. Crear un Explorador de Archivos En AutoP lay M edia S tudio es posible tener una lista de archivos que el usuario pueda abrir haciendo click sobre ellos. A manera de ejemplo, crearemos una listbox con dos opciones de película en ella. El usuario haráclick en uno de los archivos y clickearáun botón para abrir el archivo. 1 .Crear un objeto listbox 2. Agregar los nombres de la película en la columna Item T ext y la ruta de las películas en la columna Item D ata. 3.Crear un botón. 4.En el evento On Click de la ficha S cript del botón,añade el siguiente script: selected = ListBox.GetS elected("ListBox1 "); file = ListBox.GetItemD ata("ListBox1 ",selected[1 ]); File.Open(file,"",S W _S H OW NOR M AL) Nota: S i tienes habilitada la opción de M ultiple S election en tu listbox, el ejemplo de arriba sólo abriráel primer archivo seleccionado Consejo: Q uizá s podrías añadir algo para prevenir errores que puedan ocurrir. U no de esos errores sería si el usuario hace click en la listbox pero no selecciona nada. El script de arriba comenzaría bien, pero la línea 2 fallaría porque selected[1 ] sería nulo. P uedes usar una declaración “if”para que revise en busca de valores nulos: 18 if (selected) then -- Hay por lo menos un item seleccionado, ponga sus acciones aquí end D e este modo,no ocurre nada a menos que algo sea seleccionado (los errores nulos asociados son prevenidos). Crear un Mapa de Imagen Los mapas de imagen son usados para hacer varias localizaciones dentro de una imagen “hot”o clikeable.P ara lograr esto en AutoP lay M edia S tudio: 1 . Crea una imagen en un editor de imá genes externo. En tu proyecto utiliza un H otspot object para cada á rea clickeable: 2.Agrega una acción para cada H otspot object en el evento On Click para lograr la tarea deseada.P or ejemplo,para abrir un Explorador W eb,usa la acción: File.OpenU R L("http://www.indigorose.com/",S W _S H OW NOR M AL); Consejo: Al pasar el ratón en alguno de los botones de la izquierda se puede visualizar alguna imagen en el á rea de la derecha que permita al usuario darse una idea del contenido de cada opción. Crear un Unico Archivo Ejecutable U na vez que hayas terminado la creación de tu aplicación, AutoP lay M edia S tudio ofrece la opción de publicar tu proyecto en un simple ejecutable. Cuando el usuario corre este archivo, con ello extrae el contenido a un directorio temporal y lanza tu aplicación. Cuando tu aplicación es cerrada, el directorio temporal y su contenido son borrados. P ara convertir tu proyecto en un archivo ejecutable: 19 1. 2. 3. 4. 5. V e al menú P ublish > Build. S elecciona W eb/Email executable. H az click en Next. Introduce la ruta y el nombre de archivo deseados. H az click en Build. Nota: El seleccionar la opción “Encrypt data segment”no afecta la manera en la que el usuario corre tu programa. M á s bien esta opción de encriptado genera una contraseña al azar previniendo que el usuario quiera descomprimir el archivo ejecutable y así evitar que tenga acceso a los archivos de tu proyecto. Crear una Aplicación Multilenguaje P ara crear un proyecto que soporte má s de un lenguaje, crea un proyecto para cada lenguaje que desees que soporte, y un proyecto maestro para decidir cual proyecto lanzar. En tu proyecto maestro, usa una acción S ystem.GetD efaultLangID para determinar cuá l es el lenguaje predeterminado del usuario, y así lanzar el archivo del proyecto apropiado. Otra posibilidad es determinar el lenguaje ID en el evento On P reload y entonces saltar a una pá gina en particular o incluso presentarle opciones disponibles que lo redirijan a la sección apropiada de una sola aplicación. Crear una Función Callback Personalizada H abráocasiones en las que querrá s personalizar la manera en que la información es desplegada a tus usuarios cuando ciertas acciones son ejecutadas. P ara hacer esto, tendrá s que crear una función callback personalizada. P ara ver un ejemplo de una función callback personalizada, favor de ver el tema Ejemplos de Funciones Callback. Crear una Tabla de Contenidos (Un Indice) U na forma de navegar a través de una aplicación con multi-pá ginas es utilizar una pá gina de T abla de Contenidos. En AutoP lay M edia S tudio esto se logra creando una pá gina al principio de tu proyecto e incorporando un objeto navegante (por ejemplo un botón)para cada pá gina hacia donde quieras dirigirte. 20 A manera de ejemplo,crearemos un proyecto con tres pá ginas (una pá gina para la T abla de Contenidos, y dos pá ginas con el contenido) donde la P á gina 1 es la T abla de Contenidos,y las P á ginas 2 y 3 son las pá ginas con el contenido: P ara la primer pá gina: 1 . Crea dos botones. 2. En la pestaña Q uick Action del primer botón, elige S how P age como action to run,elige S pecific P age y P age 1 como P roperties. 3. En la pestaña Q uick Action del segundo botón, elige S how P age como action to run,elige S pecific P age y P age 2 como P roperties. Nota: Es posible que quieras crear un botón de regreso en cada una de tus pá ginas de contenido para volver a la T abla de Contenidos.Esto de logra exactamente de la misma manera descrita arriba. S implemente tienes que especificar cuá l pá gina deseas que se muestre en las opciones de S how P age de la pestaña Q uick action. Crear una Ventana que no sea Rectangular S i una ventana rectangular normal es inapropiada para tu proyecto, es posible crear una ventana de forma personalizada. P ara lograr esto en AutoP lay M edia S tudio primero crea una má scara de transparencia con un editor de imá genes externo (por ejemplo con CorelD raw o Illustrator). 1 . P ara crear una má scara de transparencia, crea una imagen que tenga las mismas dimensiones de tu proyecto. 2. Ahora dibuja la forma de la ventana que quieras. Lo que desees que esté visible hazlo blanco,lo que desees que esté oculto hazlo negro: 3. Guarda tu imagen como archivo png. 21 4. U na vez que la má scara ha sido creada,abre un proyecto en blanco en AutoP lay, luego abre el M enú P roject > S ettings. Click en la pestaña Appearance, habilita la casilla Custom M ask, luego haz click en Browse y selecciona tu imagen. Ahora en tiempo de ejecución,tu proyecto tomarála forma de tu má scara. Consejo: S i la imagen de tu má scara de transparencia no tiene las mismas dimensiones que la ventana de tu aplicación, puedes habilitar la opción “Fit to window”en el cuadro de diá logo P roject S ettings para ajustar el ancho y el alto de la imagen de tu má scara a las dimensiones de tu ventana. Desplegar Texto y/o Imágenes con Eventos MouseOver (Ratón Encima) La mayoría de los objetos en AutoP lay M edia S tudio tienen dos eventos útiles para efectos mouseover: On Enter y On Leave. A manera de ejemplo, crearemos un botón que con mouseover (ratón encima) desplegaráuna imagen,y con mouseout (ratón fuera)ocultarála imagen: 1 . Crea un objecto de imagen. 2. Fija su estado visible por defecto como false. P ara hacer esto haz doble click sobre la imagen para abrir sus propiedades, luego selecciona la pestaña Attributes y desactiva la opción “V isible”. 3. Ahora crea un objeto de botón. 4. En el evento On Enter del botón,introduce el siguiente script: Image.S etV isible("Image1 ",true); 5. En el evento On Leave del botón,introduce el siguiente script: Image.S etV isible("Image1 ",false); Nota: Cuando el ratón del usuario esté sobre el botón, el objeto de imagen aparecerá . Cuando el ratón del usuario abandone el botón,el objeto de imagen desaparecerá . Consejo: P ara hacer que aparezca texto en un mouseover, sigue los pasos anteriores, pero con un Objeto de P á rrafo en lugar de un Objeto de Imagen.Ademá s debes sustituir Image.S etV isible por P aragraph.S etV isible. Desplegar un Diálogo Guardar Como (Save As) U n cuadro de diá logo Guardar Como es con frecuencia presentado para permitir al usuario que seleccione una ubicación para guardar un archivo. P ara desplegar un cuadro de D iá logo Guardar Como usando AutoP lay M edia S tudio: 22 1 . Crea una acción D ialog.FileBrowse. Establece la propiedad FileOpen como false: file= D ialog.FileBrowse(false,"S ave As","c:\\","All Files (*.*)|*.*|","","",false,true); Nota: El archivo es una tabla. En el ejemplo de arriba, la selección de archivos múltiples no estápermitida. P ara acceder a la ruta devuelta por la acción FileBrowse, utiliza file[1 ] como una variable. Esto obtiene el valor desde la primera posición de la tabla. 2. S i está s usando el diá logo Guardar Como para copiar un archivo desde tu CD a el sistema del usuario, debes usar un comando File.Copy después de que el diá logo Guardar Como ha sido desplegado File.Copy("c:\\example.exe",file[1 ],false,false,false,false,nil); Detectar Cuál Sistema Operativo está siendo Utilizado AutoP lay M edia S tudio incluye una acción para detectar qué S istema Operativo está corriendo: 1 . Agrega el siguiente script a cualquier evento en tu aplicación para almacenar la versión del S istema Operativo del usuario en una variable OS _Name: OS _Name = "OS Name: "..S ystem.GetOS Name(); Nota: AutoP lay tiene otra función integrada: S ystem.GetOsV ersionInfo(), la cual regresa información de la versión del S istema Operativo del usuario en una tabla. Detectar qué versión de Internet Explorer está Instalada P ara detectar la versión de Internet Explorer que estáinstalada en el sistema del usuario: 1 .H abilita la dependencia Internet Explorer Nota: S i quieres detectar la versión de Internet Explorer, pero no requieres que el usuario la tenga instalada,fija la versión requerida en 0.0.0.0 2.Inserta el siguiente S cript en el evento On S how de la primer pá gina: if _InternetExplorerV er = = "0.0.0.0"then D ialog.M essage("Internet Explorer","Internet Explorer is not installed"); else 23 D ialog.M essage("Internet Explorer","la versión Internet Explorer".. _InternetExplorerV er .."estáinstalada en este sistema"); end Nota: El script anterior desplegaráun cuadro de diá logo en tiempo de ejecución mostrando la versión del Internet Explorer que la computadora del usuario tenga instalada. Detectar el Final de una Película Flash En AutoP lay M edia S tudio es posible detectar el momento en que una película Flash finalizó usando un FS Command. Esto es útil si, por ejemplo, quieres navegar a otra pá gina una vez que tu película Flash ha terminado. P ara lograr esto: 1 . En M acromedia Flash: Crea una película Flash la cual contenga un FS Command en el fotograma final de la línea de tiempo: fscommand("quit",""); 2.Inserta el siguiente código dentro del evento On FS Command de tu objeto Flash if e_FS Command = = "quit"then -- Cualquier script que pongas aquí,se ejecutarácuando tu película Flash termine. end Detectar si el Acceso a Internet está Disponible S i tu aplicación va a utilizar Internet en algún sentido, puedes verificar y asegurarte que el usuario tiene acceso a Internet antes de continuar, y si no es así, advertir al usuario para que se conecte. P ara lograr esto en AutoP lay M edia S tudio: 1 .Introduce el siguiente script dentro de un evento en tu aplicación: connected = H T T P .T estConnection("http://www.indigorose.com",20,80,nil,nil); if connected then --Insert your internet related action here else D ialog.M essage("Error de Internet","No está s conectado a Internet.Esta aplicación se cerrará "); 24 Application.Exit(); end Este script verifica si el usuario estáconectado a Internet.S i después de 20 segundos el programa no puede encontrar una conexión de Internet vá lida, lo notifica al usuario y sale de la aplicación. Determinar cuando la Reproducción de un Video ha Finalizado En AutoP lay M edia S tudio, es posible ejecutar una acción una vez que tu video ha completado su reproducción. Algunos usos para esto incluyen redirigir al usuario a tu sitio W eb después de que el video terminó,o redirigirlo a otro video. P ara lanzar tu sitio W eb cuando un video ha finalizado, coloca el siguiente S cript en el evento On Finish del V ideo Object: File.OpenU R L("http://www.indigorose.com/",S W _S H OW NOR M AL); Determinar el Lenguaje del Sistema Operativo En AutoP lay M edia S tudio, para determinar el lenguaje del S istema Operativo del usuario y almacenarlo en una variable user_language: user_language = S ystem.GetD efaultLangID ; Nota: user_language es una tabla, y puede hacerse referencia a ella con user_language.Primary y user_language.Secondary Determinar la Cantidad de Espacio Libre en una Unidad Cuando se instala software en el S istema del usuario, es útil asegurarse que se tiene suficiente espacio libre en su disco duro para alojar dicho software. P ara lograr esto en AutoP lay M edia S tudio: 1 .Inserta el siguiente código dentro de cualquier evento de tu aplicación: 25 --espacio requerido,en megabytes space_required = 253 --obtener el espacio libre del sistema del usuario (en este caso de la unidad C) space_available = D rive.GetFreeS pace("C:"); --comparar el espacio libre disponible con el espacio libre requerido if space_required > space_available then D ialog.M essage("","Necesitas "..(space_required - space_available).."M Bmá s"); else D ialog.M essage("","T ienes "..(space_available - space_required).."M Bmá s que los necesarios"); end Nota: La variable space_required debes fijarla tú.253 es un número arbitrario. Determinar la Letra de la Unidad del Disco Duro Primario P ara determinar cuá l es el disco duro principal del usuario en AutoP lay M edia S tudio, utiliza la acción D rive.Enumerate, y toma nota de la primera unidad fija (es decir, el disco duro principal). Introduce el siguiente código dentro de cualquier evento en tu aplicación: -- Obtener una lista de todas las unidades en el sistema del usuario drives = D rive.Enumerate(); -- Ir directo a la lista for j in drives do -- Obtener el tipo de unidad type = D rive.GetT ype(drives[j]); -- V erificar si el tipo de unidad es fija if type = = 3 then -- Es fija,registra la letra de la unidad y abandona el script first_hdd = drives[j]; break; end end -- R esultado de salida para el usuario D ialog.M essage("","El disco duro principal del usuario es "..first_hdd); 26 Determinar si una Red (LAN) está Presente En AutoP lay M edia S tudio,para determinar si un usuario estáconectado a una LAN: 1 .Inserta el siguiente código dentro de cualquier evento en tu aplicación: lan = S ystem.GetLANInfo(); lan_exist = true; for j in lan do if lan[j] = = "U nknown"then lan_exist = false; end end if lan_exist then D ialog.M essage("","Está s conectado a una LAN"); else D ialog.M essage("","No está s conectado a una LAN"); end Nota: Este ejemplo trabaja en W indows 98 P rimera Edición, W indows 98 S egunda Edición, W indows 2000 y W indows XP . W indows 95 y W indows NT no se adaptan a este modelo.P ara detectar una conexión LAN en todos los sistemas operativos, primero detecta el sistema operativo del usuario e introduce un S cript de detección adecuado. Dimensionar mi Aplicación a Medidas de Pantalla Particulares La forma má s fá cil de asegurar que tu proyecto se reproduzca en cualquier computadora es diseñarlo al má s bajo común denominador. Cada sistema de computadora capaz de correr un archivo generado en AutoP lay puede soportar una resolución de 640x480. Nuestro tamaño de proyecto por defecto es compatible con una resolución de 640x480. S i deseas tener un proyecto que abarque la pantalla completa del usuario,no importando su resolución, la forma má s fá cil es diseñar un proyecto separado para cada resolución. T ambién crear un proyecto “maestro” que determine la resolución del usuario (S ystem.GetD isplayInfo),y tenerlo para lanzar la aplicación al tamaño apropiado. S i estas dos opciones son inaceptables, AutoP lay incluye acciones para redimensionar y reposicionar objetos de tu pá gina. D el mismo modo, como en la versión 7, los objetos y la ventana de tu aplicación pueden ser redimensionables, y cada vez que la ventana es redimensionada el evento del proyecto On S ize es detonado. 27 Duplicar Objetos P ara duplicar un Objeto en AutoP lay M edia S tudio: 1 . S elecciona el objeto deseado (haciendo click izquierdo sobre él una vez). 2. V e al menú Edit > D uplicate. (T ambién puedes presionar Ctrl+ Dsi prefieres usar el teclado.) Nota: Esto duplica el objeto,incluyendo todas las propiedades configuradas y todos los scripts de los eventos. T odas las referencias del objeto duplicado son absolutas, no relativas P ara duplicar un objeto usando referencias relativas, usa “this”en lugar del nombre del objeto en todos los scripts. Como ejemplo, crearemos un objeto de botón que con ratón encima cambia su texto a “ratón”,y con el ratón fuera cambia su texto a “gato”: 1 . Inserta el siguiente código dentro del evento On Enter de tu botón: Button.S etT ext(this,"R atón"); 2. Inserta el siguiente código dentro del evento On Leave de tu botón: Button.S etT ext(this,"Gato"); Nota: Cuando este objeto es duplicado, el texto del nuevo objeto cambiará , y dejaráel texto original intacto. Ejecutar Adobe Acrobat Reader Directamente desde el CD-ROM Esto es mucho má s fá cil que simplemente requerir a los usuarios que instales el Adobe Acrobat R eader ellos mismos desde el sitio web de Adobe. P uedes entonces simplemente utilizar una acción File.Open para ver el archivo P D F. S i requieres otra opción,por favor lee la siguiente información,pero debes estar al tanto que Indigo R ose no puede proporcionarte má s asistencia o guía legal sobre los detalles de implementación. 1 . Instala Acrobat R eader (4.0 o superior)en una P Csin Acrobat. 2. Arrastra la carpeta \Acrobat x.x\y todo su contenido dentro de tu carpeta de distribución.(CD _R OOT ) *Este directorio es normalmente encontrado en c:\program files\adobe\ directory. Nota: La carpeta “Acrobat x.x” no es 1 00% compatible con algunos de los está ndares nombrados IS O, y por ello puedes tener la necesidad de renombrar algunos de tus archivos o carpetas. 28 3. Crea la carpeta "instalador"en la carpeta "Acrobat x.x",y copia el instalador Adobe Acrobat ahí. Las clá usulas de licencia para el R eader requieren que incluyas: - El instalador Acrobat R eader,exactamente como es proporcionado por Adobe. - El Acuerdo de Licencia Electrónico de U suario Final del Acrobat R eader.(Este es un archivo .T XT que R eader instala en \Acrobat x.x\R eader\) -D erechos de Autor y otras noticias del propietario incluidas en Acrobat R eader. (Asumiendo que copias todos los archivos en la carpeta \Acrobat x.x\R eader\ tendrá s todo lo necesario,excepto el instalador Acrobat R eader). 4. U tiliza la siguiente acción para abrir tu documento P D F usando el lector en tu CD : path_short = File.GetS hortName(_S ourceFolder); File.R un("Acrobat 5.0\\R eader\\AcroR d32.exe",path_short .. "\\AutoP lay\\D ocs\\luabook1 .pdf","",S W _S H OW NOR M AL,false); Nota: El acrobat reader no es instalado en el sistema del usuario, sino que es ejecutado desde tu CD . Ejecutar en Modo Full Screen (Kiosk) AutoP lay M edia S tudio tiene una opción para correr tu aplicación en modo full screen (pantalla completa). Este modo no cambia de tamaño tu proyecto a full screen, sino que má s bien llena el espacio circundante con un color de fondo de tu elección. P ara habilitar esta opción: 1. 2. 3. 4. Elige el menú P roject > S ettings. En la pestaña “Appearance”selecciona la opción de Estilo K iosk. S elecciona tu color de fondo deseado. H az click en OK . Ejecutar mi Aplicación Sólo Una Vez P ara correr tu aplicación sólo una vez (por ejemplo,la primera vez que el usuario inserta tu CD -R OM , y no otra vez) coloca el siguiente código en el evento On S tartup de tu proyecto: --recupera o regresa el valor del registro.S i la clave no existe,result = "" result = Application.LoadV alue("Application_Name","First_T ime"); --si no hubo una clave,el programa nunca ha sido corrido if result = = ""then Application.S aveV alue("Application_Name","First_T ime","yes"); 29 D ialog.M essage("M ensaje","Esta es la primera vez que este programa se ha corrido"); else Application.Exit(); end Consejo: T ambién puedes utilizar W indow.Close(Application.GetW ndH andle(), CLOS EW ND _T ER M INAT E) en lugar de Application.Exit(). Esto cerrarála ventana antes de que la ventana misma aparezca (es decir,el usuario no veránada). Ejecutar un Archivo Ejecutable AutoP lay M edia S tudio incluye una Q uick Action (Acción R á pida) para lanzar un archivo ejecutable. Esto es útil, por ejemplo, cuando creas una sección de entrada para tu instalador. Cuando el usuario hace click sobre un objeto etiquetado como “Instalar”, tu aplicación lanza tu programa de instalación. Esto se logra en AutoP lay M edia S tudio usando la Acción R á pida “R un P rogram”. P uedes especificar sólo un archivo a ejecutarse así como los argumentos de la línea de comandos y la carpeta de trabajo. Ejecutar un Programa y Esperar a que éste Finalice Al utilizar AutoP lay M edia S tudio, puedes lanzar un archivo ejecutable, y tener tu aplicación esperando hasta que el archivo ejecutable termine. Como ejemplo, correremos el ejecutable ejemplo.exe, y tendremos la aplicación esperando hasta que ejemplo.exe finalice. Esto se logra utilizando la acción File.R un, y ajustando la propiedad W aitForR eturn a true: File.R un("c:\\ejemplo.exe","","",S W _S H OW NOR M AL,true); Nota: Esta acción lanza ejemplo.exe y espera hasta que ejemplo.exe ha terminado. Ejecutar una Aplicación después de un Reinicio del Sistema A manera de ejemplo, crearemos una aplicación con dos botones: Instalar Acrobat, e Instalar Aplicacion1 01 . El programa de instalación de Acrobat requeriráque el usuario reinicie su computadora una vez que la instalación se complete. P ara asegurar que la aplicación sea lanzada cuando el usuario reinicia su sistema, añade el siguiente código en el evento On Click del botón “Instalar Acrobat”: 30 reboot = Application.LoadV alue("S ettings","R eboot"); if reboot = = ""then S hell.CreateS hortcut(S hell.GetFolder(S H F_S T AR T U P _COM M ON),"T emporary S hortcut","Autorun.exe","","","Autorun.exe",0,S W _S H OW NOR M AL); Application.S aveV alue("S ettings","R eboot","done"); else S hell.D eleteS hortcut(S hell.GetFolder(S H F_S T AR T U P _COM M ON),"T emporary S hortcut"); Application.S aveV alue("S ettings","R eboot",""); end Nota: Este script agrega un atajo temporal a la carpeta de arranque de W indows. Cuando tu aplicación es ejecutada después de un reinicio, el atajo temporal es eliminado. Eliminar Archivos Sin Uso de Mi Proyecto D urante el desarrollo de una aplicación,inevitablemente son incluidos en tu distribución archivos que al final está n sin uso,y por ello está n ocupando un precioso espacio. P ara que lo entiendas mejor,durante la creación de tu proyecto creas objetos tales como botones, pá rrafos, etiquetas, etc., pero es muy probable que no te agrade cómo va quedando el proyecto y borras algunos objetos. S in embargo, aunque los has eliminado y ya no está n visibles en tu pá gina, éstos permanecen en la memoria del proyecto y siguen ocupando espacio en disco duro (consumiendo ese espacio). En AutoP lay M edia S tudio,estos archivos pueden ser removidos automá ticamente: 1 . Elige el menú T ools > Optimize R esources. 2. S elecciona las carpetas del proyecto que quieras limpiar. 3. H az click en OK . Esto busca a fondo todos los archivos en tu proyecto que está n sin uso y te muestra la opción de eliminarlos. Consejo: H abilita la opción Confirm deletion para asegurarte que nada se borre sin tu conocimiento. Escribir Texto a un Archivo Cuando se escribe información a un archivo de texto, hay dos opciones: el texto puede ser añadido al final del archivo de texto, o la información actual en el archivo de texto puede ser sobre-escrita. En AutoP lay M edia S tudio esto se logra cambiando el valor Append a false en cualquier acción que escriba al archivo. 31 A manera de ejemplo, escribiremos "la de da de da" a un archivo de texto, sobrescribiendo su contenido.Esto es logrado con la siguiente acción: T extFile.W riteFromS tring("c:\text.txt","la de da de da",false); Hacer que la Información Persista a lo Largo de las Sesiones Con frecuencia es agradable añadir un toque personal a tu P royecto, tal como saludar al usuario por su nombre cuando tu aplicación se inicia. Como ejemplo, crearemos una aplicación que sugiera o invite al usuario a poner su nombre la primera vez que es ejecutada, y almacene estos datos en el registro. Cada subsecuente vez que la aplicación sea corrida, le darála bienvenida al usuario con el nombre que él había introducido: 1 . Coloca el siguiente código en el evento On S tartup o en el evento On P reload de tu proyecto: -- Carga el último nombre utilizado por el usuario user = Application.LoadV alue("Information","Name"); -- había un nombre de usuario ya almacenado? if user = = ""then -- No! Advierte al usuario que ponga su nombre. user = "U suario D esconocido"; user = D ialog.Input("Información R equerida","P or favor introduce tu nombre completo:","",M B_ICONQ U ES T ION); Application.S aveV alue("Information","Name",user); end -- D evuelve un mensaje de bienvenida D ialog.M essage("Bienvenido","H ola "..user..",bienvenido a mi aplicación"); Nota: Este ejemplo incita al usuario a introducir su nombre completo la primera vez que ejecute tu aplicación, y almacena ese valor en el registro. Cada subsecuente vez que el usuario ejecute tu aplicación un mensaje apareceráde pronto en la pantalla saludá ndolo por su nombre. Hacer un Explorador de Documentos A manera de ejemplo, crearemos una aplicación en la cual el usuario tenga que seleccionar una carpeta de su unidad, y luego llenar un objeto ListBox con todos los archivos *.doc dentro de ese directorio. El usuario hace click en un archivo del objeto ListBox,y clickea el botón “Open”para abrir el documento. 32 1 . Crea un proyecto con un objeto ListBox,y dos objetos de botón. 2. Etiqueta el botón 1 como "Cargar"y el botón 2 como "Abrir". 3. Inserta el siguiente código dentro del evento On Click del botón 1 : --D eshabilitar la actualización de la ListBox ListBox.S etU pdate("ListBox1 ",false); --Obtener la carpeta a explorar deseada folder = D ialog.FolderBrowse("Open Folder","C:\\"); --llenar una tabla con todos los archivos .doc file = File.Find(folder,"*.doc",false,false,nil); --hacer lo siguiente para cada archivo: for j,file_path in file do --añadir el item a la ListBox,con el nombre visible y la ruta como datos ListBox.AddItem("ListBox1 ",S tring.S plitP ath(file_path).Filename,file_path); end --permitir que la ListBox muestre el contenido actualizado ListBox.S etU pdate("ListBox1 ",true); 4. Inserta el siguiente código dentro del evento On Click del botón 2: selected = ListBox.GetS elected("ListBox1 "); for j,k in selected do File.Open(ListBox.GetItemD ata("ListBox1 ",k),"",S W _S H OW NOR M AL); end Hacer un Explorador de Imágenes A manera de ejemplo, crearemos una aplicación en la que el usuario tenga que seleccionar una carpeta de su unidad, y luego llene un objeto ListBox con todos los archivos *.png y *.jpg dentro de ese directorio. El usuario hace click sobre un archivo en el objeto ListBox y enseguida hace click en el botón “Abrir” para cargar la imagen seleccionada dentro del objeto de Imagen. 1 . Crea un proyecto con dos objetos de Botón, un objeto ListBox y un objeto de Imagen. 2. Etiqueta el Button1 como "Cargar"y el Button2 como "Abrir". 3. Inserta el siguiente código dentro del evento On Click del Button1 : --deshabilitar actualización de ListBox ListBox.S etU pdate("ListBox1 ",false); --obtener la carpeta a explorar deseada folder = D ialog.FolderBrowse("Open Folder","C:\\"); 33 --llenar las tablas con todos los archivos .jpg y .png file_jpg = File.Find(folder,"*.jpg",false,false,nil); file_png = File.Find(folder,"*.png",false,false,nil); images = {file_jpg,file_png}; --hacer lo siguiente para cada archivo: for k in images do -- da vueltas a través de los distintos tipos de imagen for j,file_path in images[k] do -- da vueltas a través de cada archivo de imagen --añade el item a la listbox,con el nombre visible y la ruta como datos ListBox.AddItem("ListBox1 ",S tring.S plitP ath(file_path).Filename,file_path); end end --P ermitir que la listbox muestre el contenido actualizado ListBox.S etU pdate("ListBox1 ",true); 4. Inserta el siguiente código dentro del evento On Click del Button2: selected = ListBox.GetS elected("ListBox1 "); for j,k in selected do Image.Load("Image1 ",ListBox.GetItemD ata("ListBox1 ",k)); end Hacer un Explorador de Imágenes Miniatura La idea detrá s de una imagen miniatura es presentarle al usuario una pequeña imagen que cuando sea clickeada lo enlace a una imagen má s grande. P ara lograr esto en AutoP lay M edia S tudio,crea un objeto de imagen con la imagen que desees usar para la miniatura, y cá mbiala de tamaño a la dimensión deseada. Ahora crea una acción que la vincule a la imagen má s grande cuando la miniatura sea clickeada. Ejemplo 1 1 . Crea un proyecto con dos pá ginas. En la primera pá gina (P age1 ) estarátu miniatura,en tu segunda pá gina (P age2)estarátu imagen má s grande. 2. En cada pá gina de tu proyecto, crea un objeto de imagen el cual cargue la imagen deseada. 3. Crea una acción en el evento On Click de tu imagen miniatura que haga saltar a la segunda pá gina de tu proyecto (la que contiene la imagen má s grande): P age.Jump("P age2"); 3. En tu segunda pá gina, podrías incluir un botón de retorno que haga saltar atrá s hacia la primer pá gina. U sa la siguiente acción para el evento On Click de este botón: 34 P age.Jump("P age1 "); Nota: S i deseas tener má s de una miniatura, crea una nueva pá gina por cada imagen, y luego agrega sus miniaturas a la primer pá gina. Enseguida agrega acciones para abrir cada pá gina cuando determinada miniatura sea clickeada. Ejemplo 2 1 . Crea un proyecto de una pá gina. 2. Crea dos objetos de imagen en esta pá gina: Image1 e Image2. La Image1 serála imagen miniatura,la Image2 serátu imagen grande.D ales el tamaño adecuado a las dos imá genes. 3. Fija la propiedad visible de Image2 a false. 4. Crea una acción On Click para la Image1 que muestre la Image2 cuando sea clickeada: Image.S etV isible("Image2",true); 5. Crea una acción para la Image2 que la oculte cuando ésta sea clickeada (usa el evento On Click): Image.S etV isible("Image2",false); Nota: S i deseas puedes incluir má s imá genes, por cada imagen haz una miniatura y una grande. P ara ver detalles y scripts de este ejemplo revisa el archivo de proyecto “H acer un Explorador de Imá genes M iniatura 2”que estáen la carpeta “Ejemplos”. Hacer un Menú Desplegable P ara crear un menú desplegable en AutoP lay M edia S tudio: 1 . Crea un proyecto con seis objetos label, y organízalos como sigue: 35 2. Inserta el siguiente código dentro del evento On Click de la Label1 : if visible then Label.S etV isible("Label2",false); Label.S etV isible("Label3",false); Label.S etV isible("Label4",false); Label.S etV isible("Label5",false); Label.S etV isible("Label6",false); visible = false; else Label.S etV isible("Label2",true); Label.S etV isible("Label3",true); Label.S etV isible("Label4",true); Label.S etV isible("Label5",true); Label.S etV isible("Label6",true); visible = true; end 3. Inserta el siguiente código dentro de tus Funciones Globales: visible = false; Hacer un Proyector de Diapositivas Consejo: AutoP lay M edia S tudio 7 ahora contiene un Objeto S lideS how que también puede ser utilizado para esta funcionalidad. El propósito de un proyector de diapositivas es mostrar imá genes a una velocidad predeterminada. En AutoP lay M edia S tudio, esto se logra creando un proyecto con una pá gina por cada imagen que desees mostrar. 1 . P ara cada pá gina en tu proyecto, crea un objeto de imagen conteniendo la imagen apropiada. 2. Crea la siguiente acción en el evento On S how de cada pá gina en tu proyecto: P age.S tartT imer(5000);--iniciar el cronómetro una vez cada 5 segundos. 3. Crea la siguiente acción en el evento On T imer de cada pá gina de tu proyecto: P age.Navigate(P AGE_NEXT ); La única pá gina que no tiene esta acción es la última, porque no hay má s pá ginas a donde saltar. 4. Crea la siguiente acción en el evento On S how de tu última pá gina: 36 P age.S topT imer();--detener el cronómetro Nota: Los eventos On T imer y On S how se pueden localizar haciendo click derecho en un espacio en blanco de la pá gina y luego eligiendo Actions. Hacer un Proyector de Diapositivas con Audio Consejo: AutoP lay M edia S tudio 7 ahora contiene un Objeto S lideS how que también puede ser utilizado para esta funcionalidad. A manera de ejemplo, crearemos un proyector de diapositivas con voz superpuesta para cada imagen. Este proyecto requeriráun archivo de audio por cada imagen, y una pá gina en tu proyecto por cada imagen que quieras mostrar. En cada pá gina, crea un objeto de imagen el cual cargue la imagen deseada. 1 . Crea una pá gina en tu proyecto por cada archivo de imagen que desees mostrar. En este ejemplo,tendremos tres imá genes,y tres archivos de audio. 2. En cada pá gina de tu proyecto, crea un objeto de imagen el cual cargue la imagen deseada. 3. Crea variables globales: -- seguirála pista de los archivos de audio audio_count = 1 ; --carga los archivos de audio deseados dentro de una tabla audio = { "Autoplay\\Audio\\audio_file1 .ogg", "Autoplay\\Audio\\audio_file2.ogg", "Autoplay\\Audio\\audio_file3.ogg" }; 4. Crea la siguiente acción en el evento On S how de cada pá gina: Audio.Load(CH ANNEL_U S ER 1 ,audio[audio_count],true,false); 5. Crea el siguiente script en el evento On Audio de cada pá gina (excepto en tu última pá gina): Input.S etT ext("Input1 ",e_S tate); if e_S tate = = "Finish"then audio_count = audio_count + 1 ; P age.Navigate(P AGE_NEXT ); end Nota: Cuando sea corrida, esta aplicación cargarála primer pá gina y reproduciráel archivo de audio. Cuando ese archivo de audio se complete, la aplicación brincaráa la próxima pá gina, y lanzaráel archivo de audio. Esto continúa hasta la última pá gina. Cada imagen es mostrada mientras dure el archivo de audio. 37 Consejo: S i quieres tener música de fondo escuchá ndose en tu aplicación, inserta el siguiente código dentro del evento On S how de la primer pá gina (así cargará s la música de fondo dentro de un canal diferente del que utiliza la música superpuesta): Audio.Load(CH ANNEL_BACK GR OU ND , "AutoP lay\\Audio\\background.ogg, true, true); Audio.S etV olume(CH ANNEL_BACK GR OU ND , (255 * 0.25)); --sets the volume to 25% Hacer una Aplicación Básica Cuestionario/Test A manera de ejemplo, crearemos un test de dos pá ginas, y una tercera pá gina para mostrar los resultados: 1 . Crea un proyecto con tres pá ginas. 2. Inserta el siguiente código en Global Functions: --Cada una de las siguientes tablas contiene una pregunta y 4 respuestas: Q _01 = {Q uestion= "¿Cuá ntas patas tiene un perro de tres patas?",A1 = "U na", A2= "D os",A3= "Cuatro",ACorrect= "T res"}; Q _02 = {Q uestion= "¿Cuá ntas patas tiene un gato de una pata?",A1 = "T res", A2= "D os",A3= "Cuatro",ACorrect= "U na"}; Correct= {Q 1 = "",Q 2= ""}; 3. En la P á gina 1 ,crea un objeto de pá rrafo,y cuatro objetos de botón. 4. En el evento On P reload de la P á gina 1 ,inserta el código siguiente: P aragraph.S etT ext("P aragraph2",Q _01 .Q uestion); Button.S etT ext("Button1 ",Q _01 .A2); Button.S etT ext("Button2",Q _01 .A1 ); Button.S etT ext("Button3",Q _01 .ACorrect); Button.S etT ext("Button4",Q _01 .A3); 5. Inserta el siguiente código dentro del evento On Click del Botón 1 : Correct.Q 1 = "Incorrecta"; P age.Navigate(P AGE_NEXT ); 6. Inserta el siguiente código dentro del evento On Click del Botón 2: Correct.Q 1 = "Incorrecta"; P age.Navigate(P AGE_NEXT ); 7. Inserta el siguiente código dentro del evento On Click del Botón 3: Correct.Q 1 = "Correcta"; P age.Navigate(P AGE_NEXT ); 38 8. Inserta el siguiente código dentro del evento On Click del Botón 4: Correct.Q 1 = "Incorrecta"; P age.Navigate(P AGE_NEXT ); 9. En la P á gina 2,crea un objeto de pá rrafo,y 4 objetos de botón. 1 0.En el evento On P reload de la P á gina 2,inserta el código siguiente: P aragraph.S etT ext("P aragraph2",Q _02.Q uestion); Button.S etT ext("Button1 ",Q _02.A3); Button.S etT ext("Button2",Q _02.A2); Button.S etT ext("Button3",Q _02.A1 ); Button.S etT ext("Button4",Q _02.ACorrect); 1 1 .Inserta el siguiente código dentro del evento On Click del Botón 1 : Correct.Q 2 = "Incorrecta"; P age.Navigate(P AGE_NEXT ); 1 2.Inserta el siguiente código dentro del evento On Click del Botón 2: Correct.Q 2 = "Incorrecta"; P age.Navigate(P AGE_NEXT ); 1 3.Inserta el siguiente código dentro del evento On Click del Botón 3: Correct.Q 2 = "Incorrecta"; P age.Navigate(P AGE_NEXT ); 1 4.Inserta el siguiente código dentro del evento On Click del Botón 4: Correct.Q 2 = "Correcta"; P age.Navigate(P AGE_NEXT ); 1 5.Crea un objeto de pá rrafo en la última pá gina de tu proyecto. 1 6.Inserta el siguiente código dentro del evento On P reload de la última pá gina: string_correct= ""; correct = 0; possible = 0; for j,k in Correct do possible = possible + 1 ; if k = = "Correcta"then correct = correct + 1 ; end end P aragraph.S etT ext("P aragraph2", "P regunta 1 : "..Correct.Q 1 .."\r\n".. 39 "P regunta 2: "..Correct.Q 2 .."\r\n".. "R espondiste correctamente "..correct .."de "..possible .."posibles preguntas para una calificación de "..((correct/possible)*1 00).."% ." ); Hacer una Imagen Semi-Transparente En AutoP lay M edia S tudio es posible hacer que un objeto de Imagen sea translúcido o "transparente". Esto se logra bajando el valor configurado de la Opacidad (Opacity)en el panel P ropiedades 1 . Crea un objeto de Imagen. 2. En el panel P ropiedades, cambia la configuración de opacidad a la opacidad deseada. Nota: El número de opacidad es un porcentaje. U n valor de 1 00 hace al objeto totalmente visible,mientras que un valor de 0 lo hace invisible. Heredar las Propiedades de Página A manera de ejemplo, asumamos que está s creando un proyecto de tres pá ginas, y quieres usar el mismo fondo para cada una de tus tres pá ginas. La mejor manera de hacer esto es establecer que en la pá gina 2 y la pá gina 3 se herede el fondo de la pá gina 1.D e modo que si cambias el fondo de la pá gina 1 , los fondos de las pá ginas 2 y 3 como consecuencia cambiará n. P ara lograr esto en AutoP lay M edia S tudio: 1 . Crea un proyecto con tres pá ginas. 2. Añade un fondo a la P á gina 1 (un color sólido,un gradiente o una imagen). Note: La P á gina 1 puede tener un color sólido,un gradiente o una imagen como fondo. 3. V e a la P á gina 2. 40 4. En el panel P ropiedades, cambia la propiedad Inherit Background de P age2 a P age1 . 5. Ahora ve a la P á gina 3. 6. En el panel P ropiedades, cambia la propiedad Inherit Background de P age3 a P age1 . Nota: T ambién puedes heredar objetos desde una pá gina en tu proyecto. P ara heredar todos los objetos de la P á gina 1 , fija la categoría Inherit Objects del P anel P ropiedades (en tu pá gina deseada)a la P age1 . 41 Imprimir un Archivo P ara imprimir un archivo desde tu aplicación,utiliza la acción rá pida “P rint D ocument”. H az click en el botón “Browse” del campo “D ocument to print” para seleccionar el archivo a imprimir. Nota: Esta acción abre el documento que deseas imprimir en el editor por defecto, imprime el documento y cierra el editor por defecto. Esta conducta es similar a hacer click derecho sobre un archivo en el Explorador de W indows y seleccionar “Imprimir”. Incrustar una Ventana de Navegador Web AutoP lay M edia S tudio incluye un objeto web para desplegar un sitio web dentro de tu aplicación.P ara añadir un sitio web a tu proyecto: 1 . Elije Object > W eb. 2. En el diá logo New W eb Object, introduce la dirección web deseada en la configuración U R L y haz click en OK . Inmovilizar Objetos U na vez que has creado la apariencia de tu proyecto, es probable que quieras “trabar” los objetos a la pá gina, pero aún ser capaz de cambiar sus propiedades y editar sus acciones.Esto es conocido como “apuntalar”un objeto a la pá gina. P ara apuntalar un objeto: 1 . S elecciona el objeto deseado. 42 2. H az click derecho sobre el objeto. 3. Elige P in. Esto haráque el objeto quede inmóvil y no puedas desplazarlo a ninguna parte de la pá gina. Aunque el objeto esté apuntalado, aún puedes editar sus propiedades haciendo doble click sobre él. T en bien claro que no es lo mismo Apuntalar (P in)que Bloquear (Lock). P ara desapuntalar un objeto: 1 . S elecciona el objeto deseado. 2. H az click derecho sobre el objeto. 3. D eshabilita P in. Interactuar con Objetos Flash Incrustados AutoP lay M edia S tudio es capaz de “colectar” FS _Commands de una película Flash incrustada. R ecibirá s el FS _Command, y luego completará s una acción basada en este comando,utilizando una declaración if. P or favor dirígete a la sección Interactuar con objetos web incrustados para ver un simple ejemplo de navegación de tu proyecto basado en una entrada desde una fuente externa. Interactuar con Objetos Web Incrustados In AutoP lay M edia S tudio, es posible navegar de tu proyecto usando un archivo H T M L incrustado. P or ejemplo, asumamos que quieres tener el siguiente archivo H T M L en un objeto web (nombremos al archivo index.html): <html> <body> <a href= "#P age2">Go to P age 2</a> </body> </html> 1 . Crea un objeto web en la pá gina de la aplicación que cargue index.html. Nómbralo "W eb1 ". 2. Inserta el siguiente script en el evento On P reload de la pá gina: W eb.LoadU R L("W eb1 ","AutoP lay\\D ocs\\index.html"); 43 Las líneas anteriores redireccionan el objeto web llamado W eb1 hacia AutoP lay\D ocs\index.html. Esto es necesario debido a que la U R L en un objeto web insistiráa través de las pá ginas, y el evento On Navigate es llamado cuando el objeto web se hace presente en la pá gina después de que una pá gina se carga;si no redirigimos la U R L en este objeto web cada vez que la pá gina se cargue, ésta aún tendrála U R L #P age2 en él, y nuestro script en el evento On Navigate (ver abajo) haráque la aplicación brinque justo de regreso a la P á gina 2 3. Inserta el siguiente script en el evento On Navigate del objeto web: -- buscar de derecha a izquierda un símbolo de número (#) nP os = S tring.R everseFind(e_U R L,"#",true); -- ¿se encontróalgún #? if nP os then -- obtener todo a la derecha del # strP age = S tring.M id(e_U R L,nP os + 1 ,-1 ); --[[ saltar al nombre de la pá gina que extrajimos de la U R L.S i no hay pá gina con ese nombre, el P age.Jump no haránada.]] P age.Jump(strP age); end Al clickear sobre un enlace en este objeto web, accionaremos el evento On Navigate y pondremos la cadena href (el enlace buscado)dentro de la variable del evento nombrada e_U R L. La acción S tring.R everseFind busca el símbolo # y, si lo encuentra, una acción S tring.M id captura todo a la derecha del símbolo # en la cadena.La cadena resultante es almacenada en una variable y luego es usada como el objetivo de una acción P age.Jump. Nota: Cuando el usuario clickea sobre el enlace ' Go to P age 2'en nuestro archivo de ejemplo H T M L,la aplicación saltaráa “P age2”. Leer Líneas Específicas de un Archivo de Texto P ara recuperar líneas específicas de un archivo de texto en AutoP lay M edia S tudio, usa la acción R eadT oT able. Como ejemplo, leeremos el archivo C:\test.txt dentro de una tabla variable, luego devolveremos de la línea 4 a la 1 0 en un objeto de pá rrafo 1 . Inserta el siguiente código dentro de algún evento en tu aplicación: -- Fija el inicio y el fin de los números de líneas de texto beginning_line = 4; end_line = 1 0; 44 -- llena una tabla con el contenido de un archivo de texto tabT ext = T extFile.R eadT oT able("c:\\test.txt"); -- Inicializa la variable strLinesOfT ext strLinesOfT ext = ""; -- Fija el número de línea actual line = beginning_line; -- Orbita a través de la tabla hasta que la condición “end”sea alcanzada while line < (end_line + 1 )do -- Agrega los datos a la variable strLengthOfT ext strLinesOfT ext = strLinesOfT ext .."\r\n".."Line "..line ..": "..tabT ext[line].. "\r\n"; line = line + 1 ; end -- S alida para el usuario P aragraph.S etT ext("P aragraph1 ",strLinesOfT ext); Mandar un E-mail con Asunto, Cuerpo y Archivo Adjunto P ara mandar un E-mail con varios campos llenos, utiliza la acción File.OpenEmail. Lo siguiente puede ser llenado en: T o,Cc,Bcc,S ubject,Body. 1 . P ara mandar un E-mail con las siguientes propiedades: T o: user@ yourdomain.com Cc: user2@ yourdomain.com Bcc: user3@ yourdomain.com S ubject: T u asunto aquí Body: Lo que quieras como cuerpo del E-mail aquí U tiliza la siguiente acción: File.OpenEmail("user@ yourdomain.com?CC= user2@ yourdomain.com&BCC= user3@ yourdomain.com&S ubject= Y our subject here&Body= W hatever you want as your email body here",S W _S H OW NOR M AL); Nota: P ara mandar un E-mail con un archivo adjunto, tendrá s que codificar el archivo (en formato U uencode) e incluirlo en el cuerpo del mensaje del E-mail. Esta es una implementación avanzada de la acción File.OpenEmail. Indigo R ose no puede ayudarte con detalles de implementación. D ebes estar al tanto que no todos los clientes email reconocerá n todas las opciones. 45 Mantener las Proporciones Dimensionales de los Objetos En el ambiente de diseño de AutoP lay, es posible mantener la proporción dimensional (proporción entre anchura y altura)de tus objetos al redimensionarlos. Esto es útil, por ejemplo, cuando deseas cambiar de tamaño un objeto de imagen pero no quieres que la imagen parezca distorsionada. P ara mantener la proporción dimensional de cualquier objeto en el ambiente de diseño de AutoP lay: 1 . S elecciona tu objeto deseado haciendo un solo click sobre él. 2. Ahora haz click derecho sobre el objeto que acabas de seleccionar. 3. H az click en K eep Aspect. Nota: S i K eep Aspect tiene una marca de verificación junto a él, entonces la opción ya estaba habilitada. Nota: S i bien una etiqueta de menú de click derecho del objeto tiene la opción K eep Aspect, estápermanentemente establecida para mantener su proporción dimensional. No es posible apagar esta opción. P ara mantener temporalmente la proporción dimensional de un objeto, deja presionadas las teclas Ctrl y S hift mientras redimensionas el objeto. El mantener temporalmente la proporción dimensional de un objeto sólo aplica al redimensionamiento de un objeto con el ratón, el cambio de las dimensiones en el panel P ropiedades con las teclas Ctrl y S hift presionadas no mantendrála proporción dimensional. Mantener mi Aplicación Siempre más Arriba Autoplay M edia S tudio tiene una opción integrada para hacer que la ventana de tu aplicación siempre esté má s arriba que todas en el sistema del usuario. P ara lograr esto, elige la opción en el cuadro de diá logo P roject S ettings: 1 . Elige el menú P roject > S ettings. 2. H abilita la opción Always On T op. 3. H az click en OK . Mostrar una Imagen en Splah P ara desplegar una imagen en splash utilizando AutoP lay M edia S tudio: 46 1 . Inserta el siguiente código dentro de cualquier evento en tu aplicación: D ialog.S plashImage("AutoP lay\\Images\\splash.jpg",5,false); Nota: Obviamente, primero deberá s cargar la imagen en la carpeta “Images” de AutoP lay. Consejo: P ara desplegar la imagen en splash antes de que tu aplicación se cargue, inserta el código de arriba dentro del evento On S tartup de las Acciones del P royecto (M enú P rojectÆActions). Obtener la Información del Usuario Registrado de la Computadora P ara detectar el usuario registrado del sistema,en AutoP lay M edia S tudio: 1 . Inserta el siguiente script en el evento On S tartup de tu proyecto: user = S ystem.GetU serInfo(); Nota: El usuario es una variable de tabla. P ara mostrar esta información en una pá gina de tu aplicación,establece referencias para: user.R egOwner – el propietario registrado de la computadora user.R egOrganization – la organización registrada Obtener la Ruta de una Carpeta del Sistema AutoP lay M edia S tudio incluye una acción para obtener las trayectorias de varias carpetas en tu computadora.P ara lograr esto,utiliza la acción S hell.GetFolder. A manera de ejemplo, obtendremos la trayectoria del escritorio del usuario, y la almacenaremos en la variable “path_to_desktop”. 1 . Inserta el siguiente código dentro de un evento en tu programa: path_to_desktop = S hell.GetFolder(S H F_D ES K T OP ); Ocultar la Barra de Título P ara ocultar la Barra de T ítulo de la aplicación AutoP lay: 47 1 . V e al menú P roject > S ettings. 2. Cambia el estilo de la ventana a Flat. 3. H az click en OK . Ocultar un Objeto H ay dos instancias en las que se pueden querer ocultar un objeto: P or el usuario en tiempo de ejecución,o por ti mismo en tiempo de diseño. Ocultar un objeto en tiempo de ejecución es útil si no quieres que el usuario vea un objeto en el inicio de la aplicación. Es posible que desees mostrar el objeto má s tarde basado en una acción del usuario Como un ejemplo,ocultaremos un objeto de botón (Button1 )en tiempo de ejecución: 1 . Inserta el siguiente código dentro del evento On S how de tu pá gina: Button.S etV isible("Button1 ",false); Consejo: P ara mostrar el objeto de botón, inserta el siguiente código dentro de un evento en tu aplicación Button.S etV isible("Button1 ",true); Ocultar un objeto en tiempo de diseño es útil cuando, por ejemplo, está s trabajando en un proyecto con muchos objetos,y deseas reducir el desorden. P ara ocultar un objeto en tiempo de diseño: 1 . S elecciona el objeto deseado. 2. En el P anel P ropiedades,cambia el atributo V isible a false. Consejo: P ara mostrar un objeto en el tiempo de diseño que estáactualmente oculto, cambia el atributo V isible a true. Ocultar una Aplicación en Tiempo de Ejecución AutoP lay M edia S tudio te permite crear una aplicación que corra en el fondo (es decir, que no es visible al usuario en la barra de tareas o en la bandeja del sistema). P ara habilitar esta opción: 1. D irígete al menú P roject > S ettings. 2. S elecciona la opción H idden. 3. H az click en OK . 48 Consejo: P ara que realmente esté oculta la ventana de la aplicación, utiliza una acción W indow.H ide Pausar la Música de Fondo Cuando hay música de fondo en una presentación, algunas veces es necesario pausarla. En AutoP lay M edia S tudio esto se logra usando la Acción R á pida “P lay/P ause Background M usic”. Esta acción rá pida pausarála música de fondo si se estáreproduciendo,y la reproducirá si estáen pausa. R ecuerda crear antes un botón y asignarle esta acción rá pida. Recordar Preferencias de Tiempo de Ejecución A manera de ejemplo, asumamos que tu aplicación pregunta al usuario si los videos deberían estar visibles en la aplicación. P ero solamente quieres preguntarle al usuario la primera vez que corra el programa. En cada lanzamiento subsecuente de tu aplicación, deseas mostrar/ocultar el objeto de V ideo basado en la preferencia inicial del usuario. P ara lograr esto en AutoP lay M edia S tudio: 1 . Inserta el siguiente código dentro del evento On P reload de la pá gina que contiene el objeto de V ideo: visible = Application.LoadV alue("Application","V ideo"); if visible = = ""then visible = D ialog.M essage("V ideos visibles","Q uieres que los videos estén visibles?", M B_Y ES NO); Application.S aveV alue("Application","V ideo",visible); end if S tring.T oNumber(visible)= = 7 then V ideo.S etV isible("V ideo1 ",false); end Nota: Este script no le da al usuario una segunda elección. U na vez que él elija yes/no, esa elección serápermanente. S i quisieras ofrecer al usuario una segunda elección, o la opción para cambiar la configuración má s tarde,incluye el siguiente código en el evento On Click de un objeto de Botón: visible = D ialog.M essage("V ideos visibles","Q uieres que los V ideos estén visibles la próxima vez que ejecutes el programa?",M B_Y ES NO); Application.S aveV alue("Application","V ideo",visible); 49 Redondear un Número hacia Abajo AutoP lay M edia S tudio incluye una acción incorporada para redondear cualquier número hacia abajo del próximo número entero. P ara lograr esto, utiliza la acción M ath.Floor. your_number = 3.1 41 5; your_rounded_number = M ath.Floor(your_number); Nota: Este script ajustarála variable your_rounded_number a 3. Redondear un Número hacia Arriba AutoP lay M edia S tudio incluye una acción incorporada para redondear cualquier número hacia arriba del próximo número entero.P ara lograr esto,utiliza la acción M ath. your_number = 3.1 41 5; your_rounded_number = M ath.Ceil(your_number); Nota: Este script ajustarála variable your_rounded_number a 4. Redondear un Número hacia Arriba o hacia Abajo S i quieres que todas las fracciones se redondeen hacia arriba (por ejemplo 2.1 -> 3.0, 2.5 -> 3.0)entonces utiliza M ath.Ceil.(V e “Redondear un Número hacia Arriba”). S i quieres que todas las fracciones se redondeen hacia abajo (por ejemplo 2.1 -> 2.0, 2.5 -> 2.0)entonces utiliza M ath.Floor.(V e “Redondear un Número hacia Abajo”). S i quieres que cualquier decimal igual o mayor que “.5”se redondeé hacia arriba,y cualquier decimal menor a “.5”se redondeé hacia abajo (por ejemplo 2.1 -> 2.0, 2.5 -> 3.0),utiliza la siguiente acción: n = 2.5; rounded = M ath.R ound(n); Referir Información a un Sitio Web AutoP lay M edia S tudio tiene una función incorporada para mandar datos a un sitio web y recibir una respuesta: • H T T P .S ubmit 50 P ara referir información a un sitio web,utiliza la acción H T T P .S ubmit.P or favor ten en cuenta que tienes que desarrollar un script servidor para aceptar cualquier dato que estés mandando a la web. H T T P .S ubmit toma la respuesta de tu script servidor y la almacena en una cadena. U na posible implementación de esto sería lo siguiente: 1. D esarrolla un script que pueda aceptar cualquier dato que desees pasarlo desde AutoP lay,y regresa algún valor. 2. U sa la acción H T T P .S ubmit para referir tus datos a tu script (localizado en tu servidor web). 3. P rocesa la cadena devuelta. Nota: Esta es una muy compleja implementación de AutoP lay M edia S tudio. T endrá s que coordinarte con el desarrollador de tu sitio web para decidir sobre un plan de implementación. Reiniciar el Sistema P ara reiniciar el sistema del usuario desde tu aplicación: 1 . Inserta la siguiente acción dentro de un evento en tu aplicación: S ystem.R eboot(); Nota: Esta acción reinicia la má quina sin interacción requerida por el usuario y sin dar ninguna advertencia. Repetir Cosas en Intervalos Específicos Cuando hay una acción que debería repetirse en un intervalo predeterminado, utiliza un evento On T imer en AutoP lay M edia S tudio: 1. 2. 3. 4. H az doble click en la pá gina en uso. Elige la pestaña S cript. H az click en la pestaña del evento On T imer. Añade aquí tu acción. P ara comenzar ejecutando las acciones en el evento On T imer, utiliza la siguiente acción: P age.S tartT imer(5000) --lanza las acciones On T imer cada 5 segundos 51 Esta acción es ejecutada típicamente ya sea por el evento On Click de un objeto,o como una acción en el evento On S how de la pá gina Nota: La acción P age.S tartT imer sólo tiene que ser ejecutada una vez para iniciar el cronómetro. Las acciones en el evento On T imer continuará n siendo ejecutadas hasta que la acción S topT imer sea llamada. Consejo: P ara detener la acción de encendido del cronómetro, utiliza la acción P age.S topT imer(); Reproducir Múltiples Archivos de Audio en Secuencia En AutoP lay M edia S tudio es posible reproducir un archivo de audio después de otro usando el evento On Audio. A manera de ejemplo, crearemos un proyecto que al ser ejecutado cargarátres archivos en una tabla y los reproduciráuno tras otro hasta que la tercera canción haya finalizado. P ara lograr esto: 1 . Inserta el siguiente código dentro de tus Funciones Globales (haciendo click en P roject > Global Functions): -- sigue la pista de los archivos de audio audio_count = 1 ; --carga los archivos de audio deseados dentro de una tabla audio = { "Autoplay\\Audio\\audio_file1 .ogg", "Autoplay\\Audio\\audio_file2.ogg", "Autoplay\\Audio\\audio_file3.ogg" }; 2. Inserta el siguiente código dentro del evento On S how de tu pá gina: Audio.Load(CH ANNEL_U S ER 1 ,audio[audio_count],true,false); 3. Inserta el siguiente código dentro del evento On Audio de tu pá gina: if e_S tate = = "Finish"then audio_count = audio_count + 1 ; --se asegura de que un archivo vá lido fue cargado if audio_count < T able.Count(audio)+ 1 then Audio.Load(CH ANNEL_U S ER 1 ,audio[audio_count],true,false); end end 52 Reproducir Múltiples Archivos de Video en Secuencia En AutoP lay M edia S tudio es posible reproducir un video tras otro utilizando el evento On Finish. Como ejemplo,crearemos un proyecto con un objeto de Botón y un objeto de V ideo.El usuario haráclick en el botón y se cargará n múltiples videos dentro de una tabla. El proyecto entonces reproduciráun video tras otro hasta que todos los videos hayan sido reproducidos. P ara lograr esto: 1 . Inserta el siguiente código dentro de las Funciones Globales (haciendo click en project > functions): --índice de tabla comienza en 1 video_count = 1 ; 2. Inserta el siguiente código en el evento On Click del botón previamente creado: video = D ialog.FileBrowse(true,"Load V ideos","","","","",true,true); V ideo.Load("V ideo1 ",video[video_count],true,false); 3. Inserta el siguiente código dentro del evento On Finish del objeto de V ideo previamente creado: --Atraviesa la tabla video_count = video_count + 1 ; --S e asegura que un archivo vá lido serácargado if video_count < T able.Count[video]+ 1 then --carga el archivo V ideo.Load("V ideo1 ",video[video_count],true,false); end Reproducir Música de Fondo R eproducir una música suave de fondo en tu aplicación puede servir para establecer un estado de á nimo deseado para tu aplicación A manera de ejemplo, cargaremos un archivo de música (que tenga extensión .ogg)en el canal de audio de fondo de tu proyecto: 1 . Inserta el siguiente código dentro del evento On S how de la primer pá gina del proyecto: 53 --carga un archivo *.ogg en el canal de fondo,automá ticamente lo reproduce,y lo hace cíclico Audio.Load(CH ANNEL_BACK GR OU ND ,"AutoP lay\\Audio\\background.ogg",true, true); Nota: P ara reproducir una canción después de otra en tu música de fondo, por favor dirígete al tema “Reproducir Múltiples Archivos de Audio en Secuencia”. Nota 2: R ecuerda que debes añadir el archivo de la música de fondo a la carpeta Audio de AutoP lay.Es decir,no solamente lo añadas en el S cript. U na forma alternativa de añadir música de fondo a tu aplicación es usando la pestaña Background M usic del cuadro de diá logo Audio S ettings. P ara acceder a este cuadro de diá logo: 1. 2. 3. 4. Elige P roject > Audio. H az click en el botón Add. S elecciona tu archivo de audio. H az click en OK . Nota: R epite los pasos 2 y 3 antes de hacer click en OK para añadir má s de un archivo de audio. Reproducir un Archivo de Video AVI AutoP lay M edia S tudio incluye un objeto de V ideo capaz de reproducir cualquier archivo de película que sea soportado por W indows M edia P layer. P ara reproducir un archivo AV I en AutoP lay M edia S tudio, crea un objeto de V ideo en la pá gina deseada: 1 . Elige Object > V ideo. 2. S elecciona un archivo AV I. 3. H az click en OK . Nota: S i tu archivo AV I contiene codecs no estandarizados, por favor asegúrate de incluirlos con tu proyecto, así tus usuarios no experimentará n ningún problema al reproducir dicho archivo. Reproducir un Video antes de que mi Aplicación Inicie AutoP lay M edia S tudio tiene una opción para añadir un video introductorio a tu presentación. P ara lograr esto: 54 1. 2. 3. 4. Elige en el menú P roject > S tartup M ovie. H abilita la opción P lay S tartup M ovie. Agrega tu archivo de película y configura los ajustes del proyecto. H az click en OK . Nota: S i deshabilitas la opción Allow Click to S kip, la película permanecerávisible hasta que se complete. S i esta opción es habilitada, el usuario puede hacer click en tu película introductoria para detenerla e ir directamente a la aplicación. Reproducir un Video Utilizando el Modo Full Screen AutoP lay M edia S tudio incluye una acción para reproducir un video en modo full screen. P ara lograr esto: 1 . Agrega el siguiente código al evento On P lay de tu objeto de V ideo: V ideo.S etFullS creen("V ideo1 ",true); 2. Agrega el siguiente código al evento On Finish de tu objeto de V ideo: Application.Exit(); Este script reproduce tu video en pantalla completa y, una vez que finalice, cierra tu aplicación. Nota: Algunas veces al iniciar la aplicación, el video no se mostraráen Full S creen. P ara lograr que se muestre en Full S creen,pá usalo y luego reinícialo. Reproducir un Video usando el Objeto de Video Incrustado AutoP lay M edia S tudio incluye un objeto de V ideo incrustado. Este objeto es capaz de reproducir cualquier archivo de video que sea soportado por W indows M edia P layer (avi,mpg,wmv,etc). P ara crear un objeto de V ideo: 1 . V e al menú Object > V ideo. 2. S elecciona tu archivo de video. 3. H az click en OK . 55 Nota: Algunos codecs no son descargados automá ticamente por W indows M edia P layer. S i tu archivo de video utiliza un codec especializado, por favor asegúrate incluirlo con tu distribución. Reproducir una Animación Flash AutoP lay M edia S tudio incluye un objeto Flash incorporado para agregar archivos Flash en tu Aplicación P ara lograr esto: 1 . Elige el menú Object > Flash. 2. S elecciona tu película Flash. 3. H az click en OK . Nota: Los objetos Flash de AutoP lay hacen que se utilice el plugin M acromedia Flash (que se puede descargar gratuitamente de www.macromedia.com). P uedes configurar tu aplicación para que detecte automá ticamente Flash en la computadora del usuario y requerir que una versión específica o má s reciente sea instalada (ver el tema “Revisar en Busca de Macromedia Flash”). Responder a Teclas Presionadas En AutoP lay M edia S tudio existe un evento llamado On K ey. Este evento es lanzado cuando una tecla es presionada. Esto es útil si quieres que tu aplicación, por ejemplo, reproduzca un sonido cada vez que el usuario presione una tecla. Otro uso para este evento es hacer algo solamente cuando una tecla específica es presionada. Como un de ejemplo, considera el Explorador de Internet. U n usuario introduce una U R L dentro de una barra de dirección y cuando la tecla enter es presionada,la pá gina que él requirióes cargada. P ara lograr este ejemplo en AutoP lay M edia S tudio: 1 . Crea un objeto input.En su evento On K ey,ingresa el siguiente código: -- e_K ey es una variable incorporada que obtiene lo generado por el evento On K ey. -- 1 3 es el valor del código de tecla virtual para la tecla [Enter]. if e_K ey = = 1 3 then -- Carga la dirección que fue ingresada por el usuario: W eb.LoadU R L("W eb1 ",Input.GetT ext("Input1 ")); end 56 Nota: Este script asume que tienes un objeto Input llamado "Input1 "y un objeto web llamado "W eb1 ". Este script lee cada tecla presionada por el usuario en el input box (recuadro de entrada). Cuando [enter]es presionada,el script carga la U R L. Restaurar un Objeto a su Tamaño Original En el ambiente de diseño de AutoP lay, es posible restaurar un objeto a su tamaño original después de que éste ha sido modificado. Esto es útil cuando quieres, por ejemplo, reanudar el tamaño de un objeto de Imagen a las dimensiones originales del archivo de imagen. P ara restaurar el tamaño original de un objeto: 1 . S elecciona el objeto deseado haciendo click sobre él. 2. H az click derecho en el objeto que acabas de seleccionar. 3. H az click en R estore S ize. Nota: Esto es también útil para el dimensionamiento de un objeto de V ideo que es cargado,a las dimensiones del archivo de video. Revisar en Busca de Internet Explorer AutoP lay M edia S tudio tiene una opción para buscar dependencias en tiempo de ejecución en el sistema del usuario, y opcionalmente puede requerir que las dependencias existan antes de que el programa pueda continuar. P ara buscar Internet Explorer: 1 . V e al menu P roject > D ependencies. 2. S elecciona las dependencias que tu proyecto requiere (en este caso Internet Explorer). 3. H az click en OK . Revisar en Busca de Macromedia Flash AutoP lay M edia S tudio tiene una opción para buscar varias dependencias en tiempo de ejecución en el sistema del usuario, y opcionalmente puede requerir que las dependencias existan antes de que el programa pueda continuar. P ara buscar M acromedia Flash: 1 . V e al menu P roject > D ependencies. 57 2. S elecciona las dependencias que tu proyecto requiere (en este caso M acromedia Flash). 3. H az click en OK . Solicitar al Usuario Confirmación antes de Salir En AutoP lay M edia S tudio es posible detener el cierre de tu aplicación basado en una acción del usuario, incluso después de que el botón “cerrar” ha sido presionado, o la acción Application.Exit ha sido usada. Esto es útil si, por ejemplo, te preocupa que el usuario accidentalmente cierre tu aplicación, o si quieres permitir que el usuario guarde sus cambios antes de salir. P ara lograr esto, debes incluir una función (Q ueryAllowP rojectClose)en tus Funciones Globales (P roject > Global Functions) que devuelva un “true” si el programa debiera cerrarse,o un “false”si no lo tenga que hacer: function Q ueryAllowP rojectClose() --esta función serállamada cuando el programa se esté cerrando confirmation = D ialog.M essage("¿Está s S eguro?","¿Está s seguro que quieres salir?", M B_Y ES NO,M B_ICONEXCLAM AT ION,M B_D EFBU T T ON1 ); if confirmation = = 6 then -- El botón “Y ES ”fue presionado,permitiendo cerrar el programa (devuelve un “true”) return true; else -- El botón “Y ES ”no fue presionado,evitando cerrar el programa (devuelve un “false”) return false; end end Nota: Esta función es llamada internamente por tu aplicación cuando se le pide salir.S i “true” es devuelto, tu aplicación se cerrará . S i “false” es devuelto, tu programa no se cerrará . P ara usar esta función,deberías usar un script similar a éste: if Q ueryAllowP rojectClose()then Application.Exit(); end 58 Trabajar con Tablas y Archivos En AutoP lay M edia S tudio, las tablas son frecuentemente utilizadas cuando se trabaja con archivos. Específicamente, observaremos cómo son almacenados en una tabla los resultados de una acción D ialog.FileBrowse, y cómo es posible trabajar con un archivo de texto cargado dentro de una tabla. Las tablas, en su forma bá sica, simplemente son variables con muchas filas. La acción D ialog.FileBrowse almacena una ruta de archivo por fila en una tabla.Cuando se lee un archivo de texto dentro de una tabla, cada línea en el archivo de texto es una fila separada en la tabla. Ejemplo 1 U sando la acción D ialog.FileBrowse, permitiremos al usuario explorar una carpeta y seleccionar múltiples archivos.Abriremos cada archivo con su aplicación por defecto: -- P resenta al usuario un diá logo explorador de archivos (con el ajuste de selección múltiple a true) tFiles = D ialog.FileBrowse(true,"M ultiple S elect","","All Files(*.*)|*.*|","","",true, true); -- Asegura que tFiles contiene algo if tFiles then -- V erifica si el usuario presionó"Cancel" if tFiles[1 ]= = "CANCEL"then -- El usuario presionó cancelar,no hacer nada else -- El usuario no presionócancelar,viaja a través de la tabla de archivos. for nIndex,sFile in tFiles do -- Abre el archivo con el programa por defecto. File.Open(sFile,"",S W _S H OW NOR M AL); end end end En el ejemplo anterior,la acción D ialog.FileBrowse regresa una tabla conteniendo todos los archivos que fueron seleccionados. S i el botón cancelar es presionado, la primer fila en la tabla (referenciada por tFiles[1 ])es ajustada a ' CANCEL' . En caso contrario, cada fila en la tabla contiene la ruta de un archivo. Ejemplo 2 U sando las acciones T extFile,cargaremos el contenido de un archivo de texto dentro de una tabla, e insertaremos el texto "¡¡La línea dos es la mejor de todas!!" dentro de la segunda línea del archivo de texto: -- P resenta al usuario un diá logo explorador de archivos (con el ajuste de selección multiple a false) tFiles = D ialog.FileBrowse(true,"S ingle S elect","","All Files(*.*)|*.*|","","",false, 59 true); -- Asegura que tFiles contiene algo if tFiles then -- V erifica si el usuario presionó"Cancel" if tFiles[1 ]~= "CANCEL"then -- El usuario no presionócancelar,continuar -- Lee el archivo de texto seleccionado a una tabla tT extFileContents = T extFile.R eadT oT able(tFiles[1 ]); -- Inserta el texto dentro de la línea (fila)dos T able.Insert(tT extFileContents,2,"¡¡La línea dos es la mejor de todas!!"); -- Escribe la tabla alterada de regreso en el archivo de texto seleccionado (es decir, agregarála frase "¡¡La línea dos es la mejor de todas!!"en el segundo renglón del archivo de texto seleccionado) T extFile.W riteFromT able(tFiles[1 ],tT extFileContents,false); end end Utilizar el Diálogo de Estado En AutoP lay M edia S tudio es posible desplegar un diá logo de estado a tus usuarios utilizando acciones incorporadas. Esto es útil, por ejemplo, si tu aplicación utiliza un bucle que le toma bastante tiempo para completarse. Como un ejemplo, crearemos un bucle que cuente hasta 20,000 y despliegue una ventana de estado permitiendo al usuario saber el progreso de la cuenta 1 . Crea un objeto de Botón,y añade el siguiente código en su evento On Click: --ajusta los valores mínimo y má ximo minimum_value = 0; maximum_value = 20000; --configuración de la ventana del estado de diá logo S tatusD lg.S how();--muestra la ventana del estado de diá logo S tatusD lg.S etT itle("Contando de "..minimum_value .."a "..maximum_value); -ajusta el título S tatusD lg.S etM eterR ange(minimum_value,maximum_value);--ajusta el rango del contador --conteo en bucle loop_control = minimum_value;--ajusta la variable de control bucle while loop_control <= maximum_value do --mientras que la variable de control bucle sea menor o igual al valor má ximo S tatusD lg.S etM eterP os(loop_control);--ajusta la posición del contador a la variable 60 de control bucle S tatusD lg.S etS tatusT ext("Actualmente contando ...("..loop_control .."of ".. maximum_value ..")"); --ajusta el estado del texto para reflejar el número actual loop_control = loop_control + 1 ;--incrementa la variable de control bucle end Nota: El código anterior cuando es ejecutado contaráhasta 20,000 y desplegaráun diá logo de estado mostrando el progreso del bucle. Utilizar Eventos Timer Cuando hay una acción que debería repetirse en un intervalo predeterminado, utiliza un evento On T imer en AutoP lay M edia S tudio 1. 2. 3. 4. H az doble click en la superficie de la pá gina. Elige la pestaña S cript. H az click en la pestaña del evento On T imer. Añade tu acción aquí. P ara que inicie la ejecución de las acciones en el evento On T imer, utiliza la siguiente acción P age.S tartT imer(5000)-- lanza las acciones On T imer una vez cada 5 segundos Esta acción es normalmente ejecutada ya sea por el evento On Click de un objeto, o como una acción en el evento On S how de la pá gina. Nota: La acción P age.S tartT imer solo tiene que ser ejecutada una vez para iniciar el timer. Las acciones en el evento On T imer continuará n siendo ejecutadas hasta que la acción S topT imer sea llamada. Nota 2: P ara detener la acción timer desde su inicio,utiliza la acción P age.S topT imer(); Utilizar un FSCommand para Provocar una Acción En AutoP lay M edia S tudio es posible provocar una acción usando un FS Command flash. Esto es útil si, por ejemplo, quieres que tu aplicación haga algo específico al final de tu animación flash. Como un ejemplo, crearemos una animación flash en S wish (programa para hacer animaciones Flash sin el Flash, muy sencillo y fá cil de usar) que mande un FS Command cuando ésta finalice de reproducirse. Cuando la animación flash llegue al final de su reproducción,desplegaremos un mensaje de diá logo. En S wish: 61 1 . En S wish, haz click derecho en el último fotograma de la animación y elige FS Command del M enú Contextual. En el panel Action, verá s el FS Command añadido. 2. H az click en ' FS Command'para mostrar los cuadros command/argument por debajo de éste. 3. En el cuadro command (el de arriba de los dos cuadros), teclea lo siguiente como un comando: S plashFinished. 4. Guarda la animación como un archivo swf. En AutoP lay M edia S tudio: 1 . Crea un objeto flash y carga el archivo swf que creaste en S wish. 2. Añade las siguientes acciones en el evento On FS Command (en la pestaña script): if (e_FS Command = = "S plashFinished")then D ialog.M essage("T u T ítulo Aquí","T u M ensaje Aquí"); end Nota: e_FS Command es una variable incorporada conteniendo el último FS Command lanzado dentro del objeto Flash. Verificar si un Programa en Particular está Corriendo A manera de ejemplo, asumamos que quieres correr tu programa (autorun.exe) sólo si no hay otro autorun.exe corriendo en el sistema. P ara lograr esto, utiliza la acción W indow.EnumerateP rocesses y coteja en cada proceso el nombre de archivo autorun.exe. 1 .Inserta el siguiente código en el evento On S how de tu pá gina: -- Inicializar variables instances_of_file = 0; file_to_check_for = "autorun.exe";--poner todo en minúsculas processes = W indow.EnumerateP rocesses(); -- Ir directamente a la tabla de proceso for j,file_path in processes do -- D ivide la ruta para obtener el nombre del archivo file = S tring.S plitP ath(file_path); -- compara el nombre del archivo con el archivo especificado en la variable de inicialización if (S tring.Lower(file.Filename..file.Extension))= = file_to_check_for then -- El proceso coteja,e incrementa la cuenta en 1 . instances_of_file = instances_of_file + 1 ; end 62 end -- V erificar si por lo menos un archivo concuerda if instances_of_file > 0 then -- H ubo por lo menos una concordancia,oculte la ventana de esta aplicación,muestre el error,y ciérrelo. W indow.H ide(Application.GetW ndH andle()); D ialog.M essage("Error","Another instance of Autorun.exe is already open."); W indow.Close(Application.GetW ndH andle(),CLOS EW ND _T ER M INAT E); end Volver a Cargar los Objetos de Imagen en Tiempo de Ejecución P ara cargar una imagen dentro de un objeto de Imagen en tiempo de ejecución,utiliza la acción Image.Load. Como ejemplo, cargaremos la imagen ejemplo.jpg (desde el directorio de Imá genes de la carpeta de distribución del proyecto)dentro del objeto de Imagen “Image1 ”: Image.Load("Image1 ","AutoP lay\\Images\\ejemplo.jpg"); Nota: P ara cargar esta imagen en tiempo de ejecución,introduce el código anterior en el evento On S how de la pá gina que contiene tu objeto de Imagen. 63