nasMenuII.txt

-------------------------------------------------------------------------------
このスクリプトは、nasManu.jsx の後継ランチャーです。
nasMenu.jsx　はマルチパレット型のスクリプトランチャーです。
同　II- および II は シングルウインドウ動作をします。
AE8以降のアップデートで幾分GUIのコードの書き方が変わりましたので、従来版を"II-"として更新を停止して
AE8以降の環境の方は nsaMenuIIをご使用いただけるようお願いいたします。

AE8以降のパネル起動に対応しておりますので、"ScriptUI Panels"フォルダに配置していただくと
パネル動作で使用可能です。

これ以降はnasMenuIIのみが機能更新の対象とさせていただきます。

設定ファイルは　nasMenu/II-/II ともに共通ですので、よろしければ後継バージョンをご使用ください。

2009/11/11

-------------------------------------------------------------------------------

*パレットメニュー2の使い方

AE8(CS3)で新しくドッキングパネル内にユーザースクリプトを登録する機能がつきました。
スクリプトランチャーが最も需要が高いと判断して、まずこれを対応することにしました。

シングルウインドウ動作を行うので、従来の"nasMenu.jsx"はそのまま残して"nasManuII.jsx"として作成してあります。

2007/10/11

拡張された機能に対する記述を追加しました

2011.09.21

**メニューアイテムの登録
メニューアイテムは、基本的に自動登録です。設定ファイル群はすべて従来の"nasMenu.jsx"と共用です。
メニュー登録の方式等も互換がありますので、従来の"nasMenu.jsx"をご使用の方は、そのまま置き替えて使用することが可能です。

-nas/ フォルダに置かれたファイル/フォルダが自動でチェックされてメニューに登録されます。

''NasMenu.jsx　に対する変更点''
このフォルダには、従来"_subMenu.jsx"を配置してありませんでしたが、今回から配置可能になりました。
フォルダのカスタマイズは、"-nas/_subMenu.jsx"を作成して行ってください。


-nas/フォルダ配下に置かれたファイル・フォルダも再帰的にメニューに登録されます。
	使用単位ごとに必要なスクリプトを集めたフォルダを作成して配置しておくと便利です

-設定ファイルによって検索を中止することもできます。
	自動登録されたくないスクリプトファイルの冒頭にコメントを置いて登録を抑制することができます

-それ以外の場所のファイル/フォルダを登録したい場合は、後述の方法でスクリプトを書き換えて自分で登録してください。

-フォルダを検出して、そのなかに''_subMenu.jsx''ファイルがあった場合でファイル内の指定で拒否されていない場合は、そのフォルダを基点にサブメニューパレットを作成します。

-ショートカットおよびエイリアスを検出してメニューボタンに登録します。

- *.jsx *.js *.ffx ファイルを検出して、メニューボタンに登録します。

-*.jsxまたは *.js ファイルの場合、ファイルの第一行を"//no launch"で始めると、メニュー登録の際に無視されます。

-スクリプトファイルの第一行目に"/*(アイテム名)"と書き込んでおくと、そのアイテム名をメニューのボタンラベルとして使用します。

-画像ボタン表示モードの場合　スクリプトファイルの第二行目に"<アイコンID>"が書き込まれている場合、システム内のアイコンデータベースにあるアイコンIDを検索してボタンアイコンとして表示します。

-画像ボタン表示モードの場合　同一ディレクトリ内に jsx js ffx ファイルと同名の pngファイルが有る場合は、そのファイルをボタンアイコンとして使用します。

-"()"括弧でかこまれたフォルダも検索の対象です。( →AEのファイルメニューには表示されないボタンを作成できます。)

-一般のフォルダや、ファイルを検出した場合は、システムで実行するボタンをメニューに登録します。(ファインダやエクスプローラで開きます。)

ボタンの数が多くて表示しきれない場合はスクロールバーが表示されますのでこれを操作して必要なボタンを表示してください。

メニューの左上方にもスクロールボタンが表示されますので、こちらもご利用いただけます。

スクロール不要なパネルではスクロールボタンは表示されません。

-フォルダ内に_subMenu.jsx または　_subMenu.js が存在して、そのファイルの第一行目が"//actionFolder"であった場合、そのフォルダはアクションフォルダとしてパレットメニューに登録されます。

アクションフォルダに対する詳細は actionFolderReadme.txt をご覧ください。


**フォルダの移動
自動検索対象のフォルダにあるフォルダは再帰的に自動登録されます。
従来はサブメニューパレットが親パレットと別に開いていましたが、パネル動作を行う為同一ウインドウ内でボタンの書き換えを行う様に変更されました。
ボタン名の冒頭に◆および◇があるボタンは次のメニュー階層(フォルダ)への移動ボタンになります。

パレット(パネル)のいちばん左上にある小さなボタンがメニュー移動ボタンです。

ボタンをクリックするとひとつ上の階層へ移動します。

パス表示での移動は…そのうち


**コマンドボタンの登録
ボタン登録の方式は、従来のメニューと互換です。

従来の設定ファイルがそのまま使用できます。

***ボタンは基本的に自動登録です。
自動登録の対象は、デフォルトでNasMenu.jsxのあるフォルダの *.jsxファイル　です。
オプションで　(tools)　フォルダ以下の 全てのファイルを登録します。

''登録の際に、AEスクリプトのファイル第一行目をチェックしています。''
----
ファイルの第一行目が
	//no launch
であった場合は、パレットに登録しないでスキップします。登録したくないファイルの冒頭に指定してください。
	/*(ボタン名)
上の形式の場合は、括弧内の文字列をボタンラベルに使用します。
ラベルが指定されていないファイルは、ファイル名から拡張子を取り去ったものがボタンラベルとなります。

スクリプトと同じ階層の　jsx ファイルは、AEスクリプトのコマンドとして登録されます。

(tools)フォルダには、AEスクリプトの他に通常のファイルをおくことも出来ます。

またサブパレットメニューでは拡張子が".js"であってもボタンに登録されます。

デバッグなどにご利用下さい。

''拡張子 jsx/js 以外のファイルは、システムで実行するように設定されます。''

たとえば、(windowsの場合)notepad.exeのショートカットを"(tools)/ "フォルダにコピーすると、AEのボタンランチャからノートパッドを起動することが出来ます。
データファイルを置くと、システム設定のアプリケーションで開くことが出来ます。
	ちなみにこのファイルは、そうやってボタン登録してあります。
ヘルプをそのうち作ったら　ここから起動する予定。

ファイルの動作はシステムでダブルクリックした時の動作と同じです。(建前上はそうなっているらしい…あやしいけど)

''拡張子 ffx のファイルは、アニメーションテンプレートとして現在のアクティブなレイヤに対して適用されます。''

アクティブなレイヤが無い場合は、アクティブなコンポに、それも無い場合は何もアクションは行われません。

**手動でファイルを登録
手動でスクリプトに設定を書き加えると、任意のフォルダの任意のスクリプトおよびAEスクリプトの関数をボタンに登録することが出来ます。
また、URL(URI)を登録して、ブラウザでWEBページを開くこともできます。

ソース内の手動登録部分を参考に各自でお好きなメニューアイテムを付け加えて下さい。
ボタンのコマンドを保持しているオブジェクトは''nas.ToolBox.ItemList''配列です。
配列の1要素がメニューアイテムひとつに相当します。

''nas.ToolBox.ItemList''配列は、パレットの処理一回ごとの一時変数です。
直接読み出しは保証されません。


***サブパレットフォルダの登録
''nas.ToolBox.ItemList''配列にFolderオブジェクトを登録すると、そのフォルダを基点としてサブメニューパレットを作成します。
サブメニューに設定したいフォルダがあれば登録してください。
	nas.ToolBox.ItemList.push(Folderオブジェクト);
メニューにラベルを設定する場合は、以下の様にプロパティで指定してください。
	nas.ToolBox.ItemList[nas.ToolBox.ItemList.length].btTitle="ボタン名";
指定がない場合は、フォルダ名がアイテムのラベルになります。

自動登録対象のフォルダの下にフォルダを作成した場合は、自動登録されますのでそれ以外の場所のフォルダを登録するのに使用します。

***スクリプトファイルの登録
''nas.ToolBox.ItemList''配列に要素3つの配列を登録するとスクリプトボタンになります。

以下のように、pushメソッドで追加していただくと良いと思います。
	nas.ToolBox.ItemList.push([ボタンラベル,スクリプトのパス,スクリプトのファイル名]);	
***関数の登録
''nas.ToolBox.ItemList''配列に要素2つの配列を登録すると関数ボタンになります。

以下のように、pushメソッドで追加していただくと良いと思います。
	nas.ToolBox.ItemList.push([ボタンラベル,実行する関数オブジェクト]);	

***一般ファイル
一般のファイルは、関数ボタンとして登録します。
NasMenuスクリプト内に一般のファイルをシステムから起動する関数 nas.otomeExec()メソッドがありますので以下のように手動で登録して下さい。

	nas.ToolBox.ItemList.push([ボタンラベル,function(){otomeExec("起動したいファイルのパス")});
パスは、絶対パスでも相対パスでも大丈夫ですが、絶対パスの方が安全かしら？

**ボタン列数の変更
スクリプトの中から以下の部分を検索して書き換えるとボタンの列数と幅を変更できます。
お好きなサイズのボタンランチャーでご使用下さいね。

各階層ごとのサイズ指定は、サブメニューフォルダ内の''_subMenu.jsx''で同様の指定が可能です。

パネル動作時は、パネルのサイズから自動判別してボタンが配置されますので、この指定は無効になります。

---(
//	ボタンパレットのサイズ
	var buttonColumn=1;//ボタン列数
	var buttonWidth=2.5;//ボタン幅
---)
ボタン列数の指定は、表示最大列数の指定となります。
パネル動作時は、無視されます。

ボタンの幅は、lib/nas_GUIlib.js　で設定されている単位になります。

特に変更がなければ1ユニットあたり　60px となってます。

ライブラリ側で書き換えるとレンダー乙女全体で変更、こちらで変更するとボタンパレットのみの変更となります。

----

AE8(CS3)でアイコンボタンが使用可能になりましたが、まだ対応していません。
バグが多めなのでちょっと様子見を…

このメニューは、従来の"nasMenu.jsx"と共存可能です。お好きな方をご使用ください。

2007/10/11	Nekomataya/kiyo

何点かのバグフィックスを行いウインドウモードとパネルモードで排他的に動作するようにコードを変更しました。
ae cs3 cs4での運用開始に伴い同バージョンでの動作が安定しました(と　思います)

2009/11/11	Nekomataya/kiyo

パレットボタンにアクションフォルダの実行およびアニメーションテンプレートの適用が可能になりました。

2011/09/21	Nekomataya/kiyo
