パネル形式のスクリプトはワークスペースに保存でき、
いちいちマウスでメニューから呼び出す必要がないので非常に便利です。
ところが、コーディングによってはワークスペースが呼び出された瞬間に問題が発生して、
AEが落ちたりワークスペースが破壊されたりすることがわかりました。
画像はワークスペースが破壊され、AEを起動する度にプロジェクトウィンドウが増殖状態になったものです。
こうなるとワークスペースの環境設定ファイルを一度捨てる必要があります。
以下のフォルダはバックアップしておくと良いです。
C:\Users\XXX\AppData\Roaming\Adobe\After Effects\XXX
※XXXは各ユーザーとAEのバージョン
・ModifiedWorkspaces-J
・OriginalUserWorkspaces-J
原因
ワークスペースのセットから、パネルとして呼び出された瞬間に、app.project.showWindow(true);
が呼び出されると、落ちるようです。
また、winObj.show();を呼び出すタイミングによっても落ちるようです。
以下のような記述にすれば落ちません。
(function (thisObj)
{
this.exec = function()
{
var winObj = (thisObj instanceof Panel) ? thisObj : new Window(“palette”,”test”,[100,100,200,200], {resizeable: false});
winObj.ok = winObj.add(“button”,[20,20,150,40],”ok”)
return winObj;
}
var retWinObj = this.exec();
if (retWinObj instanceof Window)
{
retWinObj.center();
retWinObj.show();
}
})(this);
他のコーディングでも問題ないやり方はたくさんあると思いますが、
開発時はワークスペースから呼び出しても問題無いか確認する必要がありそうです。
なお、上記の現象はWindows CS6のみで検証しています。
他のバージョンでは不明です。
An answer from an expert! Thanks for conruibtting.