我试图使用JSFL创建一个脚本,但我有以下问题......
要了解我想要做什么,首先我使用脚本导出库中的所有图像,因为我需要对所有PNG文件进行处理。
现在我想将图像重新插入库中。
如果我创建了一个新项目,我将丢失所有引用,这没有用,我有重复的项目。
我需要做的是重新导入每个项目的图像。 我的意思是,当我右键点击库项目> properties->导入...时,我也是这样做的。
我试图使用此脚本,但它不起作用。有人可以帮帮我吗?
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);
}
}
}
答案 0 :(得分:0)
最后,我解压缩了FLA文件,它就像一个拉链,里面有所有图像,所以很容易替换它们。
我首先遇到的问题是图像没有改变,因为在Flash中你可以选择在创建swf时压缩图像,这就是为什么我没有看到最终结果的任何变化。 (右键单击库中的图像 - &gt;属性 - &gt;压缩)
我使用JSFL迭代所有图像(如上例所示)并设置压缩:“无损”而不是“Photo(JPG)”。
显然这对我来说只是一个很好的解决方案,因为我使用外部工具以非常高的分辨率和较小的尺寸压缩图像。
您可以使用JSFL迭代所有图像并将压缩:“Photo(JPG)”设置为所有图像,具有您想要的质量,但结果可能会有所不同。
此致
答案 1 :(得分:0)
试试这个
doc.importFile(currentFileURI, true, false, false);
doc.library.selectItem(currentFileName);
doc.library.moveToFolder(libraryPath, currentFileName, true);
但如果项目存在,则FLASH显示警告对话框