2008-11-04 11 views
9

Dans notre projet, nous avons un grand nombre (des centaines) de fichiers FLA créés par les artistes dans CS3, à partir de laquelle nous compilons SWF à utiliser dans notre application Flex/AS3. Dans le cadre d'un système de build/deploy rationalisé, il serait très pratique de pouvoir automatiser la publication de toutes ces FLA et, idéalement, de déployer les SWF. J'ai trouvé quelques façons de faire la publication par lots à partir de CS3 en utilisant JSFL, mais j'ai été surpris de découvrir que CS3 n'a apparemment aucune fonctionnalité de ligne de commande pour cela?Est-il possible de publier un fichier FLA à partir de la ligne de commande?

Ceci est sur un système Linux pour ce que ça vaut, je n'ai pas d'expérience avec JSFL pour savoir si vous pouvez exécuter des scripts à partir de la ligne de commande en quelque sorte? : J'aurais dû dire "Linux est préféré" ... Je n'utilise pas Linux mais notre serveur/build PC est Linux ... Je ne savais pas que CS3 n'était pas compatible donc je suppose que nous peut faire cette partie sur Windows.

Répondre

2

Comment fonctionne Flash CS3 sous Linux? vous ne pouvez pas exécuter JSFL de la ligne de commande, mais la compilation d'un fichier FLA devrait être possible

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

plus récents trucs de Mike Chambers http://code.google.com/p/flashcommand/ pour OSX

il est certainement possible semble que par demi édition IDE automatisée,

trop mauvais compilateur Flex n'est pas capable d'une telle chose, avec des tâches ANT c'est un tueur ... avec l'éditeur FDT t hings sont assez cool et automatisée

8

exécuter vos scripts JSFL à partir de la ligne de commande comme ceci:

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

sur Mac: open myscript.jsfl

Je crois que les anciennes versions de Flash ont couru sur Vin pas de problème mais pas aussi sûr de CS3.

itérer sur un lot de fichiers locaux, essayer quelque chose comme ça (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 
} 

Et d'autres méthodes que vous aurez probablement envie d'enquêter sont ..

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

0

Oui, absolument. En fait, j'ai construit une solution de bout en bout qui, au clic d'un seul bouton, mettra à jour les fichiers de classe avec un horodatage de version, ouvrira Flash s'il n'est pas déjà ouvert, ouvrira des fichiers individuels pour publication, signalera le programme d'automatisation via la communication inter-processus lorsque chaque fichier a terminé la publication afin de ne pas rencontrer de problèmes de timing et de déployer des fichiers spécifiques sur le Web (après les avoir sauvegardés automatiquement et horodatés) et tout le processus se termine en moins de 10 secondes.

Voir mon Q & A ici: Automating publishing of FLA files; calling Process.Start multiple times

0

Comme il a déjà été dit, il est possible de faire avec des scripts JSFL, bien que vous devez toujours avoir l'outil de ligne de commande qui communique avec Adobe Flash Professional pour connecter le processus dans stdout et fournir le code de sortie en fonction du résultat de la compilation.

J'ai fini par écrire cet outil moi-même https://www.npmjs.com/package/flc. Il s'agit essentiellement d'une interface de ligne de commande qui résout Adobe Flash Professional. Testé contre Flash Pro 2014 et 2015.