01)スクリプトの読み方

| コメント(0)
市川せうぞーさんの名もないテクノ手の せうぞーさんの「セル内のオーバーフローを解消するスクリプト」 http://d.hatena.ne.jp/seuzo/20080923/1222106561 の読み方です。すいません。スクリプト全文掲載させていただきます。 (メールでは許可とったつもり) せうぞーさんのこのスクリプトは便利な上に10行しかなくてソースも奇麗なのでカスタマイズや説明には最高の題材です。せうぞーさんありがとうございます。 スクリプトは上から順に実行されていきます。なので下記スクリプトも上から読んでいけばいいわけです。varとついているのは変数が最初に出てくるところです。
var sel = app.activeDocument.selection[0];
for (var i = 0; i < sel.cells.length; i++) {
	var txtObj = sel.cells[i];
	var danraku = txtObj.paragraphs[-1];
	for (var w=danraku.horizontalScale; w >= 10; w--){
		txtObj.recompose();//★ここ
		if (txtObj.overflows == false) {break}
		danraku.horizontalScale = w;
	}	
}
var sel = app.activeDocument.selection[0];
変数selにアクティブドキュメントの選択されたものの0番目を入れています。JavaScriptでは1番目からでなく0番目が最初です。
for (var i = 0; i < sel.cells.length; i++) {
forは繰り返しです。 var i = 0;  変数iは0からスタート i < sel.cells.length;  変数iが選択されたセルの数より少ない間まで繰り返す。 i++  1回繰り返すごとに変数iに1を足していく。 と言う意味です。対応する"}"は●1です。
	var txtObj = sel.cells[i];
変数txtObjに選択されたセルのi番目を入れる。
	var danraku = txtObj.paragraphs[-1];
変数danrakuに上のtxtObjの最終段落を入れる。[-1];は最後のという事です。AdobeInDesignScript独特の書き方です。普通のJavaScriptではエラーが出ます。
	for (var w=danraku.horizontalScale; w >= 10; w--){
こちらもforがあるので繰り返し文ひとつづつバラすと var w=danraku.horizontalScale;  変数wにdanrakuの水平方向の比率(たぶん100)を入れる。  それがスタートの値 w >= 10;  変数wが10より大きい間実行(長体が10%で止まるという事ですね。) w--  1回繰り返すごとに変数wから1を引いていく。 対応する"}"は●2です。
		txtObj.recompose();//★ここ
これはオーバーフローしているかどうかを再評価するコマンド(サブルーチン)です。 コマンド(サブルーチン)は();で終わっているのが特徴です。 ()の中に何か入っている場合があります。
		if (txtObj.overflows == false) {break}
もしオーバーフローしていなければこの繰り返しを抜けます。●2に行きます。 もしもの処理はif文といいます。if(もしも文が正しいなら){実行内容} となっています。
		danraku.horizontalScale = w;
オーバーフローしているとこの行が実行されます。 段落danrakuの長体を変数wにセットします。 このwは繰り返しがつづくごとに-1されていきます。
	}	
閉じ}●2です
}
閉じ}●1です
Comments are nofollow setting

コメントする

エントリー一覧

OpenID対応しています OpenIDについて
漢字イラストロジック-脳トレ京
FREE ONLINE SUDOKU