我试图使用JSFL制作脚本,但我有以下问题...

要了解我想要做什么,首先我用脚本在库中导出所有图像,因为我需要向所有PNG文件进行进程。

现在我想重新插入库上的图像。

如果我创建一个新项目,我会丢失所有引用,这没有用,我有重复的项目。

我需要做的是重新导入每个项目的图像。 我的意思是,当右键单击库项目 - >属性 - >导入...

时,我也是如此

我试图使用这个脚本,但它不起作用。任何人都可以帮助我吗?

var folderURI = fl.browseForFolderURL('Select folder where all images should be exported as *.PNG');
var doc = fl.getDocumentDOM();

if(doc)
{
    fl.outputPanel.trace("Start");
    var library = doc.library;
    var allLibItems = library.items;
    var item;
    var itemName;

    for (var i = 0; i<allLibItems.length; ++i) 
    {
        item = allLibItems[i];//only images will be processed
        if(item.itemType == "bitmap")
        {
            itemName = item.name.slice(item.name.lastIndexOf("/")+1,item.name.lastIndexOf("."));
            //Find proccesed image on the directory selected before
            //and replace the sourceFilePath (I think this is what I need to use a new image but is not working)
            item.sourceFilePath = folderURI + "/" + itemName +".png"

            //This returns 'false'
            fl.outputPanel.trace(library.updateItem(item.name));
            //item.sourceFilePath has the old value, I don't understand why it was not changed
            fl.outputPanel.trace(folderURI + "/" + itemName +".png" + " = " + item.sourceFilePath);
        }

    }
}
.

有帮助吗?

解决方案

最后,我解开了FLA文件,就像一个zip,我里面有所有图像,所以它很容易替换它们。

我第一次的问题是,由于在Flash中,您可以选择在创建SWF时压缩图像的选项,这就是我没有看到最终结果的任何更改的原因。(右键单击库中的图像 - >属性 - >压缩)

我使用了JSFL来迭代所有图像(如上示例)并设置压缩:“无损”而不是“照片(JPG)”。

显然这只是对我来说只是一个很好的解决方案,因为我是我使用外部工具,用一个非常出色的分辨率和低尺寸压缩图像。

您可以使用JSFL迭代所有图像并设置压缩:“照片(JPG)”到所有图像,具有所需的质量,但可能结果将不同。

关于

其他提示

试试这个

  doc.importFile(currentFileURI, true, false, false);
  doc.library.selectItem(currentFileName);
  doc.library.moveToFolder(libraryPath, currentFileName, true);
.

但如果项目存在,则flash显示警告对话框

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top