2008-11-04 34 views
9

En nuestro proyecto tenemos un gran número (cientos) de archivos FLA creados por los artistas en CS3, desde los cuales compilamos SWF para usar en nuestra aplicación Flex/AS3.¿Es posible publicar un FLA desde la línea de comando?

Como parte de un sistema simplificado de compilación/implementación, sería realmente útil poder automatizar la publicación de todos estos FLA y, de manera ideal, desplegar también los SWF. Encontré algunas formas de hacer la publicación por lotes desde CS3 utilizando JSFL, pero me sorprendió descubrir que CS3 aparentemente no tiene ninguna funcionalidad de línea de comandos para esto.

Esto está en un sistema Linux por lo que vale, ¿no tengo experiencia con JSFL para saber si puede ejecutar scripts desde la línea de comandos de alguna manera?

nota: Debería haber dicho "Linux es preferido" ... No uso Linux pero nuestro servidor/PC es Linux ... No me di cuenta de que CS3 no era compatible, así que supongo que puede hacer esta parte en Windows.

Respuesta

2

¿Cómo está ejecutando Flash CS3 en Linux? no puede ejecutar JSFL desde la línea de comandos, pero la compilación de un archivo FLA debe ser posible

un viejo ejemplo http://www.mikechambers.com/blog/2003/11/01/flashcommand-flash-2004-command-line-compiler/

nuevas cosas de Mike Cámaras http://code.google.com/p/flashcommand/ para OSX

lo que es definitivamente posible parece sólo a través de semi publicación automática IDE,

es una lástima que el compilador Flex no sea capaz de tal cosa, junto con las tareas ANT es un asesino ... con el editor FDT t hings son bastante buenos y automatizado

8

Ejecutar las secuencias de comandos JSFL desde la línea de comandos como ésta:

en Windows: "c:\program files\macromedia\flash 8\flash.exe" myscript.jsfl

en Mac: open myscript.jsfl

Creo versiones anteriores de Flash corrió en No hay problema, pero no estoy tan seguro de CS3.

para iterar sobre un lote de archivos locales, intentar algo como esto (en JSFL):

var importFolder = fl.browseForFolderURL('Select a folder with existing FLA files'); 
var importFolderContents = FLfile.listFolder(importFolder); 
for (i = 0; i <importFolderContents.length; i++) { 
    file = importFolderContents[i]; 
    fl.openDocument(file); // and so on 
} 

y algunos otros métodos es probable que desee para investigar son ..

fl.getDocumentDOM() document.exportSWF() document.publish() fl.closeDocument()

0

Sí, absolutamente. De hecho, he creado una solución de extremo a extremo que, con un solo clic, actualizará los archivos de clase con un sello de tiempo de versión, abrirá Flash si aún no está abierto, abrirá archivos individuales para publicación, señalará el programa de automatización a través de comunicación entre procesos cuando cada archivo ha completado la publicación para que no se encuentre con problemas de tiempo e implemente archivos específicos en la web una vez finalizados (después de realizar automáticamente copias de seguridad y sellado de los nombres de los archivos) y todo el proceso completa en menos de 10 segundos.

Ver mi Q & Una aquí: Automating publishing of FLA files; calling Process.Start multiple times

0

Como ya se dijo, es posible que ver con guiones JSFL, a pesar de que todavía tiene que tener la herramienta de línea de comandos que se comunica con Adobe Flash Professional para registrar el proceso de en stdout y el código de salida de suministro basado en el resultado de la compilación.

Terminé escribiendo esta herramienta yo mismo https://www.npmjs.com/package/flc. Básicamente es una interfaz de línea de comando que abstrae Adobe Flash Professional. Probado contra Flash Pro 2014 y 2015.

Cuestiones relacionadas