我需要将不同文件夹中的大量位图文件导入到fla文件库中,并将文件夹结构保存在fla文件中。
例如,我有这样的文件结构:
mainFolder - > folder1 - > png1.png
mainFolder - > folder1 - > folder11 - > png2.png
mainFolder - > folder2 - > png3.png
mainFolder - > folder2 - > png4.png
我需要在库中的fla文件中使用相同的结构:
folder1 - > png1.png
folder1 - > folder11 - > png2.png
folder2 - > png3.png
folder2 - > png4.png
现在我想创建这个代码:
var dom = fl.getDocumentDOM();
var URI = fl.browseForFileURL("select", "Import File");
var success = dom.importFile(URI);
if(success)
{
fl.trace(flash.documents[0].name);
var indexOfFileName = URI.lastIndexOf("/");
var folderStructure = URI.slice(URI.indexOf(flash.documents[0].name),indexOfFileName);
dom.library.newFolder(folderStructure);
var fileName = URI.slice(indexOfFileName + 1,URI.length);
dom.library.moveToFolder(folderStructure, fileName, true);
}
//我的案例中的mainFolder是fla文件的名称(带.fla扩展名)
此代码创建了我需要的文件夹结构,但我还不知道如何只是指向主文件夹一次加载多个文件,例如由fl.browseForFolderURL("Select a folder.")
答案 0 :(得分:2)
最后我做到了。如果有人需要这样的东西,这是我的解决方案:
fl.outputPanel.clear()
var folderURI = fl.browseForFolderURL("Select a folder.");
fileList = new Array()
function listFile(paths){
var files=[]
var folds=[]
var files=FLfile.listFolder(paths,"files");
for(i=0;i<files.length;i++)
{
if(paths.lastIndexOf("/") != paths.length -1 )
{
paths+="/";
}
fileList.push(paths + files[i]);
}
var folds = FLfile.listFolder(paths , "directories");
for(var j=0;j<folds.length;j++)
{
var subPath = paths + folds[j] + "/"
listFile(subPath);
//make sure that this stops at a reasonable point.
if (fileList.length > 1000)
return;
}
}
function importFile(URI)
{
var success = dom.importFile(URI);
if(success)
{
var indexOfFileName = URI.lastIndexOf("/");
var documentName = flash.documents[0].name;
var folderStructure = URI.slice(URI.indexOf(documentName) + documentName.length + 1,indexOfFileName);
if(folderStructure)
dom.library.newFolder(folderStructure);
var fileName = URI.slice(indexOfFileName + 1,URI.length);
dom.library.moveToFolder(folderStructure, fileName, true);
}
return;
}
listFile(folderURI);
for(i=0;i<fileList.length;i++)
{
fl.trace("fileList["+i+"]="+ fileList[i]);
importFile(fileList[i])
}
带照片的主文件夹的名称必须与fla的名称相同 例如,文件夹必须具有名称test.fla