MTASC: Compilando v2 sin -mx

MTASC con el componente Alert de la v2 y sin usar -mx

Increible pero cierto. Igor Sadovsky a distribuido un fichero diff que parchea las classes de los componentes v2 de Macromedia y consigue que podamos compilar sin necesidad de usar la opción -mx de MTASC. Podeis encontrar la solución y los ficheros en el wiki de osflash. La prueba del algodón la acabo de realizar con el ejemplo básico de la página de MTASC y ¡ha funcionado! :).

Os paso a describir que es lo que yo hice pues la cosa tiene cierta complicación:

  1. Despues de instalar el programita que realiza los parches (yo usé la versión win32 de patch.exe que recomienda Igor en su post), debeis de hacer una copia de vuestros ficheros originales por si acaso. Yo copié todo el directorio Classes a la carpeta C:\FAMES\lib
  2. La estructura de directorios que usé finalmente a efectos de aplicar el parche fué: C:\FAMES\lib\mx\original\mx(esta última carpeta mx es la carpeta padre de las classes de MM) debido a que si os fijais es la misma que aparece en el fichero que contiene los parches (mx.patch).
  3. finalmente usé la siguiente linea de comandos al igual que muestra la imagen: patch -i mx.patch -d C:\FAMES\lib -p 0.

Linea de comandos que usé para aplicar el parche

La verdad es que me costó llegar a esa solución porque no habí­a manera de conseguir que funcionase…la clave está en usar “-p 0” para que tome el camino relativo hasta las clases correctamente.

Por último hice el ejemplo de mtasc.org modificando algo la linea de comandos (y por supuesto sin usar -mx ;)). Debido a que hay classes que se usan en el SWF pero no están declaradas en ninguna clase de dicho SWF hay que usar -pack (o crear una clase con la declaración de dichas clases para que estas se compilen en el SWF final) y la linea de comandos queda de la siguiente manera:

mtasc -cp C:\FAMES\lib\mx_classes -swf test.swf Test.as -pack mx/skins/halo -pack mx/managers -pack mx/core/ext

Por último decir que aún así­ salia un molesto warning en la linea 8 de la clase mx.halo.skins.ActivatorSkin.as acerca de una clase no usada que eliminé inmediatamente. El resultado fué una compilación sin errores ni warnings.

Ahora me falta hacer pruebas con un proyecto grande…si todo funciona como hasta ahora es un gran paso adelante :).

6 Comentarios

  1. Se que los componentes no funcionan demasiado bien con MTASC, pero que diferencia hay entre usar -mx y no hacerlo con este patch? se corrge la sarta de warnings?

    saludos

  2. Hola Miguel,

    -mx es un apaño mediante el cual MTASC no compila todo lo que este por debajo del paquete mx, que es donde están las clases de Macromedia. Esto es debido a que el código es de extrema mala calidad.

    Con el parche conseguimos que las clases sean compilables por MTASC, de esta manera si necesitas hacer algún cambio, insertar alguna clase dentro del paquete mx, esto ya es posible. Incluso puedes usar SWFMILL para crear un SWF con los componentes y compilar solo con MTASC.

    Es una cuestión de comodidad, de manera que si quieres reparar algún fallo de la v2 puedes ver los cambios rápidamente con MTASC.

  3. Carlos te queria hacer una consulta relacionada con los componentes. si yo descargo el patch para MTASC puedo crear swfs con componentes pero sin instalar el ide de MM? la intencion es hacer algo 100% libre. vi en tus transparencias que algo de dependencia existe. pero que pasa si no quiero (o no puedo por diferencias de paridad entre nuestra moneda y el dolar) comprar una licencia de flash? hay componentes libres tambien? vivo en argentina.

    Saludos.

  4. Carlos, soy yo de nuevo 😛 ya obtuve la respuesta acerca de la licencia para los componentes de MM en la pagina de actionstep:

    “… and a really dreadful licensing policy (you can only use V2 components if you own the Flash IDE)..”

    bueno, habra que empezar a experimentar con ActionStep 🙂

    Saludos y felicitaciones por la conferencia.

  5. Hola Nacho, siento decirte que no es posible. Si usas los componentes de Macromedia es porque has comprado una licencia del Flash IDE. El que luego uses MTASC solo o te ayudes del IDE de Macromedia ya es una cuestión personal de como mejorar tu propio workflow para ser más productivo a la hora de desarrollar.

    Por eso cuando hablamos de código de Macromedia, no merece la pena ser muy purista con el tema del Open Source.

    En tu caso me bajarí­a ActionStep, que si es Open Source (aunque todaví­a no hay una versión de release y sigue en Alpha) o ASWing. De esta manera s puedes construir un SWF totalmente Open Source.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *