Bueno, despues de tener problemas con las fuentes en LuaPlayer HM 8 he desistido, y he vuelto al HM 7.
El problema esta en que quiero tener algunas de las funciones del Lua Player HM 8 cargando los PRX (del HM8) en el HM 7. Todo se carga correctamente, el problema llega al usar la fucnion System.homePopup(0), me da un el error de:
Error: Script.lua:3 Attempt to call field 'homePopup' (a nil value)
Press start to restart
Os pongo aqui la parte del codigo que nos interesa:
System.assign("flash1:","lflash0:0,1","flashfat1:") --Asigna la Flash 1 System.loadPrx("flash1:/LPHMDRIVER/syslib.prx") --Carga el PRX desde la Flash 1 System.homePopup(0) -- Desactiva el Popup que aparece al pulsar HOME
Hay dos posibilidades:
¿Alguna respuesta?
-----[[7 años en Scenebeta, con la misma ilusión que la del primer día]]----
pensando...
Bueno, aunque mi conocimiento en Lua sea mínimo, hay una cosa en el código curiosa. A ver si lo he entendidod bien.
En la segunda linea cargas la unidad System de la versión 8. ¿no?
El problema es que El "System." que estás usando es el 7, incluso después de usar la segunda linea, System no ha cambiado (1)
Al llegar a la tercera linea sigues con el "System" de la versión 7.
Puede que esté ahí el problema.
(1)Aunque no estoy seguro, me imagino que se System se inicializa al comenzar la aplicación, por eso no cambia su valor en mitad de la misma.
LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.
Se supone que el programa
Lee el codigo de linea a linea y lo ejecuta, es decir:
Asi que en teoria deberia de funcionar... ¿No?
Pero creo que es imposible.
-----[[7 años en Scenebeta, con la misma ilusión que la del primer día]]----
Bueno, es lo que te comento.
Bueno, es lo que te comento. Por eso decía que es un código curioso. de eso que parecen simples pero se salen de lo común.
Voy a ver si me explico mejor.
Tenemos la variable (yo le voy a llamar objeto) System. Este system es un objeto que se inicializar al lanzarse el programa *antes* de ejecutar cualquier instrucción.De hecho esto se puede comprobar que es cierto porque System no se ha inicializado explícitamente, tú no le has dado ningún valor. y puede usarse sin problemas.
Bien, al llegar la primera instrucción está claro que System es el bjeto system de la versión 7. Todo ok
En la segunda linea, se supone que tu haces una carga de un modulo/librería/o como se llame en Lua, versión 8. *Pero* hemos visto que System se inicializa al principio de la aplicación, la aplicación ya está lanzada, ese System está en otro espacio de trabajo (seguramente dentro del módulo que cargas sólamente). Así que no se inicializa.
Es más si se inicializará sería seguramente un cuelgue, porque System a dejado de apuntar a donde estaba en el momento de llamar a loadPrx. Entonces piensalo. Al retornar de loadPrx en la linea 2 aún estaríamos apuntando al de la versión 7, el que haría el tratamiento de fin de función, pero si apuntara a 8, sería un desbordamiento de memoria. ¿cómo sabe el intérprete que debe apuntar al System 7 todavía en la linea 2 (habiendo cargado otro System) y luego en la siguiente al System 8?. No puede saberlo, es una ambiguedad. Es decir:
No conozco ningún lenguaje que permita eso que quieres hacer, no se puede cambiar un objeto a sí mismo mientras está ejecutando un método (en este caso loadPrx) sin colapsar la aplicación.
PD: El hecho de que no te error, significa que lo que haces está bien, pero no puedes volver a inicializar el objeto System en el módulo en el que estás.
PD2: Aunque lo dudo mucho, puede que haya otra forma de hacer eso que quieres, pero escapa a mis conocimientos. El problema de Lua es que no admite punteros. En un lenguaje con punteros se podría hacer, aunque sería MUY peligroso y hay que tener bien planificado qué es lo que se quiere hacer.
LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.
¿Insinuas que...?
¿Insinuas que al iniciar el System con una funcion de HM7 (loadPRX() en este caso) no lo puedo transformar en un System de funcion de HM8 (System.Popup() la funcion que quiero usar), no?
Pues viendolo de ese modo, lo que intento yop hacer es realmente imposible (lo que yo me temía).
Supongo que por ahora me quedaré con LuaPlayer HM 7 y sus limitaciones.
-----[[7 años en Scenebeta, con la misma ilusión que la del primer día]]----
Buenas
¿Y si haces una miniaplicacion en C cargando el PRX y acto seguido cargas el eboot del lphm7? Quizá funcione ;)
Salu2
¡Visca el Barça y Viva España!
No encuentro solución a lo
No encuentro solución a lo que pides, pero siempre te puedo decir lo mismo que al el__Qat, cuando necesites el eboot de hmv2(te recomiendo mas que el otro), puedes cargarlo, y cuando no, no lo carges, siempre que acabes carga otra vez el 7.
Saludos
¡Iníciate en Linux fácilmente! Sólo entra aquí y comprueba que distribución se adapta mejor a tí.
Mi review: iPod Touch 4G