仕上げ
次に具体的にコードを書いていきます。
- まずWindowのインスタンスを作ります。
- ve2ae( )の引数Boundsはカラにしておきます。
dlg = new Window("dialog","New Compo",ve2ae( ));
続いて各要素を追加するメソッドを書きます。
- オレンジの部分はCopy&PasteしたTextです。
pnlName=dlg.add("panel",ve2ae( ),"Comp Name");
edtName=pnlName.add("edittext",ve2ae( ));
pnlSize=dlg.add("panel",ve2ae( ),'Size');
以下省略
最後に引数BoundsをCopy&Pasteします。
- VEに戻って[JavaBean]でコンポーネントをクリックするとその要素のイニシャライズ・メソッドが表示されます。下図
- そこに Rectangle(○○,××,△△,◎◎)という記述があります。図の赤枠
- そこから配列部分をコピーして、対応するAEスクリプト・ve2ae( )のカッコ内にペーストします。
- 要素の数だけこれを繰り返します。
- 最後に dlg.show( ) を書き足して結果を確認します。
- 意図に反してWindowのサイズが違っています。
- WindowのBoundsの値がVEではウィンドウの外側、AfteFxでは内側のサイズになっているのが原因です。
- 対応策として、AEスクリプト・Windowのイニシャライズで外枠(幅4、高さ30)を引きます。
ve2ae(0,0,220-4,320-30));
- これでGUIのコーディングは終了です。
- あとは設定のイニシャライズとOKボタンをクリックした時の処理を書き足して完成です。

最後に
- とりあえず形にしてみましたが、Visual Editorのコードをもっと効率良く使う方法がありそうです。
- CS3以降はAutomatic Layoutを使うことが多くなりそうな気がしますが、古いバージョンでは使えません。
- どちらにしても実際にウィンドウエレメントを配置してチェックできるメリットはあると思います。


前のページへ