0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

FlashAICBアセットフォルダーの整理.jsfl

Last updated at Posted at 2012-12-26

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++;
		}
	}
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?