1

さまざまなフォルダーから多くのビットマップ ファイルを fla ファイルのライブラリにインポートし、フォルダー構造を fla ファイルに保持する必要があります。

たとえば、次のようなファイルの構造があります。

mainFolder -> folder1 -> png1.png
mainFolder -> folder1 -> folder11 -> png2.png
mainFolder -> folder2 -> png3.png
mainFolder -> folder2 -> png4.png

ライブラリのflaファイルに同じ構造が必要です:

フォルダ
1 -> png1.png フォルダ1 -> フォルダ11 -> png2.png フォルダ2 -> png3.png フォルダ2
-
> 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.")

4

1 に答える 1

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である必要があります。

于 2012-08-31T10:48:53.950 に答える