J'ai besoin d'exporter FLA en tant que séquence d'images PNG en utilisant JSFL.Flash CS4, JSFL: modification des paramètres pour l'exportationPNG
Le premier problème que j'ai rencontré est que je ne peux pas appeler document.importPublishProfileString pour changer le profil de publication actuel, il échoue toujours (renvoie 0). Maintenant, je crée un profil de publication séparé, en le supprimant s'il existe déjà. Je ne sais pas pourquoi cela n'est pas mentionné dans la documentation.
Le deuxième problème est plus grave. Le profil de publication est ignoré lorsque j'appelle document.exportPNG(). La largeur et la hauteur que j'ai utilisées pour la dernière fois dans la boîte de dialogue "Fichier> Exporter> Exporter un film" sont utilisées à la place. Le profil est créé avec les paramètres corrects, je peux les voir en utilisant l'interface utilisateur. Maintenant, même la publication via l'interface utilisateur (Fichier> Publier) utilise les paramètres de l'exportation de film.
fl.outputPanel.clear();
var doc = fl.getDocumentDOM();
var profile = new XML(doc.exportPublishProfileString());
[email protected] = 'Game';
profile.PublishFormatProperties.png = 1;
profile.PublishFormatProperties.flash = 0;
profile.PublishFormatProperties.generator = 0;
profile.PublishFormatProperties.projectorWin = 0;
profile.PublishFormatProperties.projectorMac = 0;
profile.PublishFormatProperties.html = 0;
profile.PublishFormatProperties.gif = 0;
profile.PublishFormatProperties.jpeg = 0;
profile.PublishFormatProperties.qt = 0;
profile.PublishFormatProperties.rnwk = 0;
[email protected] = 'true';
profile.PublishPNGProperties.Width = 500;
profile.PublishPNGProperties.Height = 500;
profile.PublishPNGProperties.Interlace = 0;
profile.PublishPNGProperties.Transparent = 1;
profile.PublishPNGProperties.Smooth = 1;
profile.PublishPNGProperties.DitherSolids = 0;
profile.PublishPNGProperties.RemoveGradients = 0;
profile.PublishPNGProperties.MatchMovieDim = 0;
profile.PublishPNGProperties.DitherOption = 'None';
profile.PublishPNGProperties.FilterOption = 'None';
profile.PublishPNGProperties.MatchMovieDim = 0;
profile.PublishPNGProperties.BitDepth = '24-bit with Alpha';
fl.trace(profile);
if (doc.publishProfiles.indexOf('Game') != -1) {
doc.currentPublishProfile = 'Game';
doc.deletePublishProfile();
}
doc.addNewPublishProfile('Game');
fl.trace(doc.importPublishProfileString(profile));
var exportFileName = doc.pathURI.replace(/%20/g, " ").replace(doc.name, "1/" + doc.name.replace(/\.fla$/, "") + ".png"); // temporary hack
fl.trace(exportFileName);
doc.exportPNG(exportFileName, true, false);
Existe-t-il un moyen de faire en sorte que les paramètres de respect de l'exportPNG soient pris en compte dans le profil?