2010-10-06 15 views
7

Tengo un juego que escribí en Actionscript 3 Estoy buscando portar a iOS. El juego tiene aproximadamente 9k LOC distribuidos en 150 clases, la mayoría de las clases son para modelos de datos, manejo de estados y generación de niveles, todos los cuales deberían ser fáciles de portar.Convirtiendo la sintaxis de Actionscript al Objetivo C

Sin embargo, la idea de rehacer la sintaxis a mano en todos estos archivos no es muy atractiva. ¿Hay herramientas que pueden ayudarme a acelerar este proceso?

No estoy buscando una herramienta mágica aquí, ni estoy buscando un compilador cruzado, solo quiero ayuda para convertir mis archivos fuente.

+0

Supongo que la herramienta CS5 export to iPhone no es adecuada? – Allan

+0

Lo he intentado, pero como * es * un compilador cruzado con todo lo que eso conlleva, por lo que no es exactamente inteligente en cuanto al rendimiento. – grapefrukt

+0

en mi experiencia, iOS 4 no es lo que yo llamaría ágil para empezar, con todo menos el último hardware. personalmente, tuve que cambiar a la versión anterior con mi iPod touch 2G, y eso fue solo para usar aplicaciones de stock. ¿Has probado el proyecto de iPhone Packager en un nuevo dispositivo? Sé que no es realmente una solución ideal, ya que muchas personas tienen hardware antiguo, pero tengo curiosidad más que nada por el rendimiento del iPhone Packager. – TheDarkIn1978

Respuesta

1

No conozco una herramienta, pero esta es la forma en que trataría de atacar su problema si realmente hay una gran cantidad de código (simple) para convertir. Estoy seguro de que mi sugerencia no es tan útil en partes del código que son muy específicas del flash (¿todas las cosas de DisplayObject?) Y tampoco son útiles en mucha lógica. ¡Pero sería divertido de construir! :-)

conversión automática parcial debería ser posible, sobre todo si los objetos son sólo contenedores de datos '', mirar hacia fuera para traer demasiada AS3-idioma a Objective-C, sin embargo, que podría no siempre sea un buen ajuste.

A menos que desee crear su propio (semi) analizador para as3, necesitará algún tipo de analizador, aparentemente FlexPMD tiene uno (nunca lo usó), y probablemente haya otros.

Después de poner sus manos en un analizador, tiene que encontrar la manera de sugerir al sistema qué partes se pueden convertir automáticamente. Podría tratar de agregar reglas al script del analizador/generador para el caso general. Para casos más específicos, utilizaría metadatos personalizados en la clase/propiedad/método real, suponiendo que un analizador as3 real los analizaría correctamente.

Ahora parte de su trabajo pasará de archivos de conversión manual a archivos de anotación manual, pero eso podría estar bien para usted.

Haz que el analizador analice tus clases y defina las acciones basadas en tus metadatos que determinarán qué tipo de clase objetivo-c generar. Si logras que funcione, al menos puedes obtener todas tus clases, sus propiedades simples y firmas de métodos (conseguir que el cuerpo de los métodos sea convertido podría ser demasiado pedir, pero podrías incluirlo como comentario para que tengas una buena referencia mientras se traduce a mano).

PD: si hace esto en un proceso de una manera, asegúrese de no volver a generarlo más tarde; sería malo si descubre que ha estado modificando el código generado y de alguna manera necesita vuelve a generar todas esas clases, ¡eso significa que tendrás que volver a hacer todo tu trabajo!

0

Echa un vistazo a Sparrow Framework. Se supone que fue diseñado con los desarrolladores de ActionScript en mente, recreando clases que emulan la lista de visualización y cosas por el estilo. Tendrá que sumergirse en algún "rejiggering" para asegurarse de que no importa lo que haga si no quiere usar el paquete CS5.

http://www.sparrow-framework.org/

0

incluso si existe alguna solución, tenga en cuenta que la lógica arquitectónica es diferente, y muchos más otros detalles. De todos modos, incluso si es posible, tendrá un híbrido extraño. Vuelvo de WWDC2012, y el mensaje es (como siempre ...) el rendimiento y la gran experiencia del usuario.

Por lo tanto, debe volver a escribir utilizando un modelo de programación diferente.

1

Comencé a poner una herramienta en conjunto para sacar el borde de los aspectos secundarios de este proceso.

Estoy tratando de averiguar si hay suficiente interés para hacerlo lo suficientemente limpio y estable como para que otros lo utilicen. Puedo hacerlo de todos modos.

http://meanwhileatthelab.blogspot.com.au/2012/08/automating-process-of-converting-as3-to.html

está tan lejos me ahorra mucho tiempo, mientras que portar uno de mis bastante grandes juegos de AS3 a objc.