Flash JSFL,如何用不同名称的图像文件替换/更新位图项

时间:2014-12-18 12:45:07

标签: flash jsfl

我有很多FLA。对于每个fla,我需要用本地图像文件替换一些图像。这些本地图像文件与原始导入的文件名不同。

我知道可以手动完成:右键单击库中的项目 - >属性 - >导入。

但是,有太多的FLA和太多的图像。一旦FLA发生变化,我需要一次又一次地进行替换。所以,我打算写一个jsfl去做那个重复的任务。我可以使用地图配置替换(itemName-> replaceingFileUri)。但是,我不知道如何使用jsfl重新导入图像。

我试过这个:

var itemName = 'name of the item to be replaced';
var imageFileUri = 'uri of the replacing local image file';
var lib = fl.getDocumentDOM().library;
lib.selectItem(itemName);
var item = lib.getSelectedItems()[0];
item.sourceFilePath = imageFileUri; // this do not work
lib.setItemProperty('sourceFilePath', imageFileUri); // this do not work too
lib.updateItem(item.name);

1 个答案:

答案 0 :(得分:0)

你应该尝试用导入的项目替换libdrary项目中存在的项目 在这个例子中,你在IDE中的子文件夹中选择一些img,然后运行脚本并选择要导入的外部图像,然后它们将被替换。

var doc = fl.getDocumentDOM();
var lib = doc.library;
var item = lib.getSelectedItems()[0];
re = /(.*)(\/)(.*$)/;
var itemstr = re.exec( item.name );
var cname = itemstr[3];
var cpath = itemstr[1];

var fileURL = fl.browseForFileURL("select"); 
re = /(.*\/)(.*$)/;
var filestr = re.exec( fileURL);
doc.importFile(fileURL, true);
lib.selectItem( filestr[2] );
lib.renameItem( cname );
lib.moveToFolder( cpath, cname,  true )