Participating Frequently
August 29, 2023
Answered
new Windowで作ったウインドウを閉じずに関数を動かしたい
- August 29, 2023
- 3 replies
- 2101 views
初めて投稿します。
illustrator スクリプトも独学で初めて日が浅く、知識不足でお見苦しい点があったら申し訳ありません。
こちらしか頼れる場所がなく、投稿させていただきます。
【環境】
OS→Mac OS 13.4.1
実行するソフト→Adobe Illustartor 2023(27.8.1)
言語→JSX
【困っていること】
new Windowで作ったウインドウ内のボタンから、ウインドウを閉じずに関数を動かしたいです。
【現状】
◯new Window("dialog" を指定した場合→
ボタン1を押すと、alert( "ロック解除が終わりました" );が先に出て、ウインドウを閉じないとfunction allnolock()の処理が始まらない
◯new Window("palette"か"window" を指定した場合→
ボタン1を押しても何も動かない。(アラートも出ない)
【現状のコード】
//ターゲットエンジン指定(←を入れないとdialog以外のウインドウが開かない?)
#target "illustrator"
#targetengine 'nyuko'
// ダイアログ作成
var objDlg = new Window("window", "入稿チェックリスト", [0,0,400,600]);
// 固定テキスト
var objStText01 = objDlg.add("statictext", [20,20,300,40], "上から順にチェックする");
//ボタン
var button1= objDlg.add("button", [20, 40, 350, 55], "ボタン1");
var button2= objDlg.add("button", [20, 60, 350, 80], "ボタン2");
//イベント
button1.onClick = function allnolock()
{var allLayer= app.activeDocument.layers;
//全てのレイヤーをロック解除
try{
for(var i=0; i<allLayer.length; i++){
if(allLayer[i].locked=false)
{allLayer[i].locked=true;}
}}
catch(e){;}
//すべてのアイテムをロック解除
var pitems = app.activeDocument.pageItems;
for(var i=0; i<pitems.length; i++)
{if(pitems[i].locked=false)
{pitems[i].locked=true;}}
alert( "ロック解除が終わりました" );
}
//目視チェック項目(塗り足しや情報の正誤など)
var Chkbox01= objDlg.add("checkbox", [20, 90, 350, 110], "目視チェック項目1");
var Chkbox02= objDlg.add("checkbox", [20, 120, 350, 140], "目視チェック項目2");
var Chkbox03= objDlg.add("checkbox", [20, 150, 350, 170], "目視チェック項目3");
//チェックボックスが10個ほど並ぶ
objDlg.add("button", [350, 450, 400, 480], "閉じる", {name:"cancel"});
// ダイアログ表示
objDlg.show();
objDlg.center();
以上です。
お知恵をおかりできますと幸いです。
【やろうとしていること(補足)】
◯Illustrator内で使える入稿データ制作補助スクリプトを作ろうと考えています。
◯様々な習熟度のデザイナーが使用するので、極力シンプルに、上から順にチェックするだけで、時間のない中でも比較的ミスの少ない入稿データを制作することを目的としています。
◯入稿データ制作に役立つ関数が、ボタンで起動できる。
◯関数の内容は全てのロック解除や不要なスウォッチや特色の破棄、塗り足しを見やすくするオブジェクト自動生成などの、さまざまな自動処理。(アクションやショートカットへの理解が浅いオペレーターの使用も視野に入れているため)
◯目視でしかチェックできない項目はチェックボックスを置きます。
◯添付スクショのようなイメージです
◯全ての項目をチェックし終わったら、手動でウインドウを閉じる流れにしたいです。
