ふわふわぷかぷか

最近はイラレとAeにはまってます。

【Illustratorスクリプト】プレビューを表示する。

Windows10、CS4

イラレスクリプトでプレビューを表示する方法です。

チェックボックスなんて必要ない! チェックを判定するのが難しかった...

ダイアログを開いたら常にプレビューを表示します。

 以下サンプル

#target "illustrator"  

		function setRGBColor(r,g,b){
			var tmpColor = new RGBColor();
			tmpColor.red = r;
			tmpColor.green = g;
			tmpColor.blue = b;
			return tmpColor;
}
			
		function main(){
		var n =  eval(length.text);
		docObj = activeDocument.activeLayer;
		square = docObj.pathItems.rectangle(0,0,n,-n);
		square.filled = true; // 塗りあり
		square.stroked = false; // 線なし
		square.fillColor = setRGBColor(160,200,230);
				}

	//ダイアログの設定
		var dialog = new Window("dialog","正方形のサイズを入力",[0,0,190,120]);

		dialog.add ("statictext", [10,20,60,40], "辺の長さ");
		var length = dialog.add("edittext",[60,15,150,40],"300");//数の入力
		var btnOK = dialog.add("button",[10,70,80,100],"OK",{name:'ok'});//OK
		var btnCancel = dialog.add("button",[100,70,170,100],"cancel",{name:'cancel'});//CANCEL
		length.active = true;	//テキストエリアをフォーカスする
		
		dialog.onShow = function() {
		main();
		app.redraw(); //ドキュメントを再描画
		app.undo(); //アンドゥ
		}
		length.onChanging  = function(){
		main();
		app.redraw(); //ドキュメントを再描画
		app.undo(); //アンドゥ
		}

	//キャンセルの処理
		btnCancel.onClick = function(){ dialog.close(); }
		
	//OKの処理
		btnOK.onClick = function(){
		dialog.close(); //ダイアログを閉じる
		main();
	}

		dialog.center();//ダイアログ表示位置をモニターの中心に移動
		dialog.show();//作成したダイアログを表示

//----[ここまで]----

 

説明

まずプレビューの処理を作っておきます。

function main(){
		 //プレビューに必要な処理
		 }

dialog.onShowでダイアログを表示した際にイベントを発生させる。

参考:Adobe CS4 バージョンJavaScript ファレンス

dialog.onShow = function() { 
		main();
		app.redraw(); //ドキュメントを再描画 
		app.undo(); //アンドゥ 
		}

 
さっき作ったmainの内容と、redraw();、undo();を実行します。
redraw();を消したらイラレでオブジェクトが塗れなくなって元に戻らなくなりました。再起動で直りましたが、2度と味わいたくない冷や汗が出るので消すのはおすすめしません。
undo();で処理を消して2重に描画されないようにします。

 

length.onChangingでテキストを変更したときもイベントを発生させる。

 

参考:Adobe Illustrator JavaScript UIでのプレビュー表示 - Qiita

 

 

 イラストダウンロードサイト【イラストAC】でフリー素材を投稿しています。よろしければご覧ください。

プロフィールページ:イラストレーター ふわぷかさんのプロフィール