Programando en serio con AMS

Ejemplos y plantillas para Autoplay Media Studio.
Hola, el titulo de este post solo está pretendiendo enseñar mejores practicas a la hora de hacer aplicaciones. Por supuesto lo digo desde mi relativa opinión.

Antes que nada me gusta LUA por estar tan integrado con C, es libre, multiplataforma y "sencillo". Como algunos sabrán me gusta utilizar AMS como ayuda a la hora de escribir algo en LUA para Windows porque es fácil construir la interfaz, simplemente por comodidad ante otras alternativas como iup o wxlua. Cualquiera que se haya topado con este software se podrá dar cuenta que no es muy cómodo tener que estar dando click a cada botón siempre que quiera modificar un codigo.

Imagen

Ahora un mini tutorial de lo que hago para poder programar con AMS desde mi IDE preferido Sublime Text.

Lo principal es separar nuestro código en archivos fuente como lo haria cualquier persona normal en vez de tenerlo todo metido en un archivo XML como nos propone AMS.

A mi me gusta hacerlo de la siguiente forma:
main.lua - En este archivo estará lo que se ejecuta al inicio de la aplicación
events.lua - Desde este archivo llamaremos los eventos de cada objeto (xButton, Label, Image, etc.)

Dentro de AMS, en Global Functions importamos nuestros archivos fuente
require "main"
require "events"
Ahora podemos empezar a agregar codigo desde nuestro editor de codigo favorito y no tenemos que hacer "Build" desde autoplay cada que hagamos un cambio, simplemente abrir el ejecutable y listo.

Ahora necesitamos ejecutar cosas con los botones, imagenes y demás objetos. Para esto hacemos lo siguiente:

Por ejemplo tenemos nuestro objeto "xButton1" en el evento OnClick, ponemos esto:
xButton1_onclick(this);
Esta función la definimos en el archivo de eventos (events.lua) escribiendo:
function xButton1_onclick(this) then
	Dialog.Message("LUA", "Hola mundo desde ".. this);
end
Otra forma de enlazar nuestros objetos con los archivos de codigo es con las funciones:
Application.SetPageScript; Page.SetObjectScript y DialogEx.SetObjectScript
Page.SetObjectScript("xButton1", "On Click",  "xButton1_onclick(this)" )
Y esto lo hacemos con cada objeto, cada evento, cada pagina que necesitemos. Una vez hecho esto podremos empezar a depender menos de AMS y utilizar LUA cada vez mas.

El archivo main.lua nos servirá para definir funciones globales, variables ejecutar procesos al inicio de la aplicación, importar otros módulos o lo que sea que se nos ocurra.

Aqui dejo la apz para que vean como funciona:
HIDE: ON
Hidebb Message Hidden Description


Este método es muy util, pueden organizar sus aplicaciones y escribir cada apartado (modulo) en un archivo diferente y hacer cosas bastante buenas, yo por ejemplo llevo el control de mis proyectos con git y con este metodo si que es más fácil cambiar entre versiones. Pero eso será en otro post. Imagen

Fuente: thedary.tumblr.com

:yeah: :yeah: :yeah: muy buenos ticks para lua/ams , la programación por modulos en lua es el sistema ,aunque ams esta pensado para darlo todo masticado a un coste muy grande pero bueno....

Un saludo.

Buena forma de mantener un proyecto en orden claro si el proyecto en código es grande :ohyeah:

es mas sencillo si te vas a

C:\Program Files (x86)\AutoPlay Media Studio 8\Data\Includes

o como este en tu pc, y editas _error_messages.lua

ese archivo se incrusta en cualquier proyecto generado con ams por lo que si ya le inyectas ahi las referencias a tus archivos e incluso algun enumerador de eventos de objetos con page.getobjects puedes hacer toda la interfaz con pcall y luego definir solo las funciones que necesites.

thanks

Re:

Pabloko escribió:es mas sencillo si te vas a

C:\Program Files (x86)\AutoPlay Media Studio 8\Data\Includes

o como este en tu pc, y editas _error_messages.lua

ese archivo se incrusta en cualquier proyecto generado con ams por lo que si ya le inyectas ahi las referencias a tus archivos e incluso algun enumerador de eventos de objetos con page.getobjects puedes hacer toda la interfaz con pcall y luego definir solo las funciones que necesites.
Gracias, ni idea que existía ese directorio :pc:

yo lo usaba para definir funciones globales que podía utilizar en mis proyectos después.

Re:

Pabloko escribió:es mas sencillo si te vas a

C:\Program Files (x86)\AutoPlay Media Studio 8\Data\Includes

o como este en tu pc, y editas _error_messages.lua

ese archivo se incrusta en cualquier proyecto generado con ams por lo que si ya le inyectas ahi las referencias a tus archivos e incluso algun enumerador de eventos de objetos con page.getobjects puedes hacer toda la interfaz con pcall y luego definir solo las funciones que necesites.
El page.getobject lo uso para definir el lenguaje de la aplicación pero nunca se me ocurrio hacer lo que dices con ese archivo. A ver que se me ocurre.

Gracias

Gracias

excelente aporte
muy bueno bro
gracias
:lol: :lol: :lol: :lol: :lol: :lol:
gracias
thanks
thanksssssss