题
我试图使用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显示警告对话框
不隶属于 StackOverflow