繁体   English   中英

Flash CS4,JSFL:更改exportPNG的设置

[英]Flash CS4, JSFL: changing settings for exportPNG

我需要使用JSFL将FLA导出为PNG图像序列。

我面临的第一个问题是我无法调用document.importPublishProfileString来更改当前的发布配置文件,它总是失败(返回0)。 现在,我创建一个单独的发布配置文件,如果已经存在则将其删除。 我不知道为什么文档中没有提到它。

第二个问题更加严重。 当我调用document.exportPNG()时,发布配置文件将被忽略。 我最后在对话框“文件>导出>导出影片”中使用的宽度和高度被使用。 该配置文件是使用正确的设置创建的,我可以使用UI看到它们。 现在,即使通过UI进行发布(“文件”>“发布”),也使用影片导出中的设置。

fl.outputPanel.clear();

var doc = fl.getDocumentDOM();
var profile = new XML(doc.exportPublishProfileString());

profile.@name = '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;

profile.PublishPNGProperties.@enabled = '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);

有什么方法可以使profile中的exportPNG遵守设置吗?

我认为PNG发布设置实际上是指已发布的SWF中未经JPG压缩的图像。

或者,如果要从SWF面板启动脚本,则可以使用发布设置导出SWF,将其检索,将其加载到面板中,然后使用AS3CoreLib之类的方法为每个帧生成PNG。 由于您使用的是CS4,因此Flash Player 10应该可以保存到本地驱动器。

我只是将您的脚本更改为先关闭MatchMovieDim,然后再尝试设置宽度和高度,它对我有用。 我认为在关闭MatchMovieDim之前,“宽度”和“高度”设置将被拒绝。

profile.PublishPNGProperties.MatchMovieDim = 0;
profile.PublishPNGProperties.Width = 500;
profile.PublishPNGProperties.Height = 500;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM