ライブラリの中のテキストのフォント名を出力するjsfl

Flashで「フォントが見つかりません。代替フォントを指定してください」の警告がでるまではいいのですが、そのフォントを使ったテキストフィールドを見つけ出す方法がわからず、3年がすぎました。助けてください

えーと、解決になってるか分かりませんがとりあえず勢いで作ってみました。
ライブラリ内の文字を一つずつ調べてフォント名を出力パネルに出力します。
検索対象はムービークリップ、ボタン、グラフィックです。適宜使いください。



var dom = fl.getDocumentDOM();
var currLib = dom.library;


function init() {
	var list = fl.getDocumentDOM().library.items 
		for ( var i in list ) { 
		var item = list[i]; 
		//ライブラリの中のMCだけ判定
			if( item.itemType == "graphic" ||item.itemType == "button" ||item.itemType == "movie clip") { 
			var itemTimeline = item.timeline;
		
				traverse(itemTimeline.layers, item.name);
			} 
		}
}
function traverse(layers, itemName) {
	var layerLength = layers.length;
	var layer;
	var frame;
	for (var i =  layerLength; i--;) {
		layer = layers[i];
		var frames = layer.frames;
		
		var frameLength = frames.length;
		for (var j = frameLength; j--;) {
			frame = frames[j];
			var element=frame.elements
			
			var elemLength = element.length;
			for (var k = elemLength; k--;) {
				var ele=element[k];
			if(ele.elementType=="text" ){	
			//静止テキストのみ	if(ele.elementType=="text" && ele.textType=="static"){
				//文字列をなめる処理
				fl.trace("-------------------------------------------")
					fl.trace( itemName+":"+layer.name+"/フレーム"+frame.duration)
					lsp(ele);
				}
				
			}

		}
		
	}
	
}

function lsp(ele){
			
//////////////////////////////////////////////face start
	for(i=0;i<ele.length;i++){
					//テキストを判定
					var txt=ele.getTextString(i, i+1);
					//フォント名を取得
					var face=ele.getTextAttr("face",i);
			
					//出力
					fl.trace(txt+" "+face);
				}
//////////////////////////////////////////////////////////face end
				

}

init();//スタート

関連する記事:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

名前 *