2010年 3月 の記事

フレームラベル名入力でジャンプする jsfl

タイムラインアニメーションやってると、フレームの行き来がめんどくさいですよね。
フレームラベル名入力でジャンプできる jsfl とかないかなーとググッたんですが、見つからなかったので作りました。

【使い方】
1. 下記のコードをテキストエディタにコピペして、 “jumpToFrameLabel.jsfl” という名前で保存。


// タイムラインを取得
var timeline = fl.getDocumentDOM().getTimeline();
// 選択中のレイヤーを取得
var selectedLayer = timeline.getSelectedLayers();
// ジャンプ先のフレームラベル名を入力
var targetLabel = prompt("input jump to frame label", "");
// 入力されたフレームラベルが存在するかどうかの判定用
var found = false;
// 走査するフレーム数
var l = timeline.layers[selectedLayer].frames.length;
// 目的地のフレーム番号
var n = 0;

// フレームラベルを 1 フレームずつ走査
for(var i = 0; i < l; i++) {
	if(targetLabel == timeline.layers[selectedLayer].frames[i].name) {
		n = i;
		found = true;
		break;
	}
}

if(found) {
	// 目的地へジャンプ
	timeline.setSelectedFrames([0, n, n + 1]);
}else {
	// エラー処理
	fl.trace("not found");
}


2. /Users/ユーザー名/Library/Application Support/Adobe/Flash CS4/language/Configuration/Commands に入れる。
( win は Document and Setting\Application Data とかそんな感じのとこに同じような階層があります )

3. 以下実行手順
・フレームラベルのレイヤー選択
ss1

・コマンド実行
ss2

・フレームラベル名入力
ss3

・ジャンプ!
ss4


以上!
注意点は 1 フレームずつ走査するので、数 1000 フレーム超えたりしてると処理が重くなります。最悪 Flash が落ちるかも?
改善案あったら教えてくださいー。

MovieClip のインスタンス名を一括設定する jsfl

こういう jsfl があるのを教えてもらいました。
Instance_setMcName.jsfl

これの機能はレイヤーに配置してある MovieClip のインスタンス名をライブラリのシンボル名に一括変更してくれるという優れものです。キーフレームがあろうがなかろうが関係ないので便利だなーと思ったのも束の間、ライブラリをフォルダ分けしてある場合はインスタンス名に “フォルダ名 / シンボル名” というように階層まで書かれてしまいます。

これではあまり使えないなと思い、少し改造してみることにしました。シンボル名に置き換えるのではなく、自分で入力した文字列に置き換えるようにすればいいんじゃねと思って調べる内に下記のメソッドを発見しました。

prompt("", "")

これを実行すると、ポップアップでテキスト入力フィールドが出てきます。第 1 引数はポップアップウィンドウに表示する説明文、第 2 引数はテキスト入力フィールドの初期値です。例えば以下を実行すると画像のようになります。

prompt("input instance name", "hogehoge")

ss1
ではこれを Instance_setMcName.jsfl に組み込みます。

//=====================================================	
// Instance : setMcName1.0
// hisayuki takagi | www.wildcard.jp.org
//=====================================================	
var cur_doc = fl.getDocumentDOM();
var str = prompt("input instance name", "");
for(var i1=0; i1<cur_doc.selection.length; i1++){
	if(cur_doc.selection[i1].elementType == "instance"){
		cur_doc.selection[i1].name = str;
		//cur_doc.selection[i1].name = cur_doc.selection[i1].libraryItem.name
	}
}

【使い方】
/Users/ユーザー名/Library/Application\ Support/Adobe/Flash\ CS4/ja/Configuration/Commands/ に入れます。
そして画像のように設定したあと、レイヤー名のところをクリックし、コマンド -> Instance_setMcName を実行すると、レイヤーに配置されたインスタンス名を一括変更できます。
ss2

以上!

trace をターミナルで見るときの文字化け解消

ずっと悩まされ続けていた問題をとうとう解決できました!

ターミナル > 環境設定 > 設定 > 詳細タブ > 言語環境設定 > 日本語 (Mac OS)

ss

trace 文の出力の仕方はコチラ
※デバッグ版の Flash Player 必須

Return top