FlashAICBアセットフォルダーは、FlashへPhotoshopやIllustratorからコピー&ペーストを行うと増殖する困り者です。
このJSFLは、そのFlashAICBアセットフォルダーを単一のフォルダーにマージするためのものです。FlashAICBアセットフォルダーの中身は、リネームされてフォルダー内に移動されます。
/**
* ライブラリ内のFlashAICBフォルダを_materialという新規フォルダにマージします。
* 既知の問題点
* ・フォルダ名に"/"の含まれているものがあると、移動に失敗します(@2009.01.30)
* →アイテムが誤って消去されることはありませんが、_materialに移動せず元のフォルダに残ります。
*
* @version 2009.01.30
*/
fl.showIdleMessage(false);
main();
function main()
{
fl.trace("");
fl.trace("FlashAICB Folders ..........");
var flaFolderName = "FlashAICB";
var materialFolderName = "_material";
var tempFolderName = "__MovingTmpFolder";
var doc = fl.getDocumentDOM();
var lib = doc.library;
lib.newFolder( materialFolderName );
lib.newFolder( tempFolderName);
var folderItems = getFolderItems( lib, flaFolderName);
var materialItems = getFolderItems( lib, materialFolderName );
var folderItems = folderItems.concat( materialItems );
//現_materialフォルダ内のオブジェクトを退避
var n = materialItems.length ;
for ( var i = 0; i < n; i++ )
{
lib.selectItem( materialItems[i].name );
lib.moveToFolder( tempFolderName );
}
renameAndMove( lib, folderItems, "movie clip",materialFolderName, "<MovieClip>_");
renameAndMove( lib, folderItems, "bitmap",materialFolderName, "<image>_");
renameAndMove( lib, folderItems, "component",materialFolderName, "<component>_");
renameAndMove( lib, folderItems, "graphic",materialFolderName, "<graphic>_");
renameAndMove( lib, folderItems, "button",materialFolderName, "<button>_");
renameAndMove( lib, folderItems, "font",materialFolderName, "<font>_");
renameAndMove( lib, folderItems, "sound",materialFolderName, "<sound>_");
renameAndMove( lib, folderItems, "compiled clip",materialFolderName, "<compiled clip>_");
renameAndMove( lib, folderItems, "screen",materialFolderName, "<screen>_");
renameAndMove( lib, folderItems, "video",materialFolderName, "<video>_");
lib.deleteItem(tempFolderName);
fl.trace("Command Complete.");
}
/**
* ライブラリの特定フォルダ内にあるアイテムを検索する処理
* @param lib Libraryオブジェクト
* @param flaFolderName 検索対象となるフォルダパス
* @return Array Itemオブジェクト,Folderオブジェクトは含まないs
* @since 2009.01.30
* @version 2009.01.30
*/
function getFolderItems(lib, flaFolderName)
{
var folderItems = [];
var n = lib.items.length;
var i = 0;
for ( i = 0; i < n; i ++)
{
var tmpItem = lib.items[i];
if( tmpItem.itemType != "folder" )
{
var nameIndex = tmpItem.name.indexOf( flaFolderName );
if( nameIndex == 0 ) folderItems.push(tmpItem);
}
}
return folderItems;
}
/**
* ライブラリアイテムを種類ごとにリネームしつつフォルダに移動
* @param lib Libraryオブジェクト
* @param items 移動するアイテムの配列
* @param type 移動するアイテムの種類
* @param folderPath 異動先フォルダパス
* @param nameHeader リネームヘッダ
* @since 2009.01.30
* @version 2009.01.30
*/
function renameAndMove( lib, items, type, folderPath, nameHeader )
{
var count = 1;
var n = items.length;
for ( var i = 0; i < n; i++ )
{
var tmpItem = items[i];
if( tmpItem.itemType == type)
{
lib.selectItem( tmpItem.name );
lib.renameItem( "*********renamingItem");
lib.moveToFolder( folderPath);
lib.selectItem( tmpItem.name );
var strCount = "000000" + count;
strCount = strCount.substr( strCount.length - 4 , strCount.length);
lib.renameItem( nameHeader + strCount );
count++;
}
}
}